summaryrefslogtreecommitdiff
path: root/docker/keystone/start.sh
blob: afa04ed66c70ee5f1790257438d6ad25d2fa6435 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash

set -e

: ${KEYSTONE_ADMIN_PASSWORD:=kolla}
: ${ADMIN_TENANT_NAME:=admin}

. /opt/kolla/kolla-common.sh
check_for_db
check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \
                    KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \
                    KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST
dump_vars

mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF
CREATE DATABASE IF NOT EXISTS keystone;
GRANT ALL PRIVILEGES ON keystone.* TO
    'keystone'@'%' IDENTIFIED BY '${KEYSTONE_DB_PASSWORD}'
EOF

crudini --set /etc/keystone/keystone.conf \
    database \
    connection \
    "mysql://keystone:${KEYSTONE_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/keystone"
crudini --set /etc/keystone/keystone.conf \
    DEFAULT \
    admin_token \
    "${KEYSTONE_ADMIN_TOKEN}"
crudini --set /etc/keystone/keystone.conf \
    DEFAULT \
    log_file \
    ""
crudini --del /etc/keystone/keystone.conf \
    DEFAULT \
    log_dir
crudini --set /etc/keystone/keystone.conf DEFAULT use_stderr True

cat > /openrc <<EOF
export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0"
export OS_USERNAME=admin
export OS_PASSWORD="${KEYSTONE_ADMIN_PASSWORD}"
export OS_TENANT_NAME=${ADMIN_TENANT_NAME}
EOF

/usr/bin/keystone-manage db_sync
/usr/bin/keystone-manage pki_setup --keystone-user keystone --keystone-group keystone

/usr/bin/keystone-all &
PID=$!

export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="http://${PUBLIC_IP}:35357/v2.0"

while ! curl -o /dev/null -s --fail ${SERVICE_ENDPOINT}; do
    echo "waiting for keystone @ ${SERVICE_ENDPOINT}"
    sleep 1;
done
echo "keystone is active @ ${SERVICE_ENDPOINT}"

crux user-create --update \
    -n admin -p "${KEYSTONE_ADMIN_PASSWORD}" \
    -t admin -r admin
crux endpoint-create --remove-all \
    -n keystone -t identity \
    -I "http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" \
    -A "http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" \
    -P "http://${PUBLIC_IP}:5000/v2.0"

kill -TERM $PID

while curl -o /dev/null -s --fail ${SERVICE_ENDPOINT}; do
    echo "waiting for keystone @ ${SERVICE_ENDPOINT} to exit"
    sleep 1;
done

echo "Running keystone service."
exec /usr/bin/keystone-all