diff options
| author | Lars Kellogg-Stedman <lars@redhat.com> | 2014-10-10 11:33:43 -0400 |
|---|---|---|
| committer | Lars Kellogg-Stedman <lars@redhat.com> | 2014-10-13 14:41:37 -0400 |
| commit | a19e1cdd00f0b3394f9146eab8cb7f7fe2b6e0f2 (patch) | |
| tree | b6f647e755e76e440a890d7567946dd862c418b3 | |
| parent | 6ac10ca545fd23f8f6dcd04d21357b41e0c852aa (diff) | |
| download | kolla-a19e1cdd00f0b3394f9146eab8cb7f7fe2b6e0f2.tar.gz kolla-a19e1cdd00f0b3394f9146eab8cb7f7fe2b6e0f2.zip | |
keystone: exit on errors; cleanup
Cause keystone start script to exit on any errors (permitting kubernetes
to reschedule the pod).
Closes-bug: 1379057
Change-Id: Ide2eac6495250c8cba91cf9b7409dcb313f6f74b
| -rwxr-xr-x | docker/keystone/start.sh | 47 |
1 files changed, 18 insertions, 29 deletions
diff --git a/docker/keystone/start.sh b/docker/keystone/start.sh index 7b0897eb0..aa90cc092 100755 --- a/docker/keystone/start.sh +++ b/docker/keystone/start.sh @@ -1,20 +1,15 @@ #!/bin/bash -# Exit the container if MariaDB is not yet up - then depend on kube to restart -if [ -z "$MARIADB_PORT_3306_TCP_PORT" ]; then - exit 1 -fi +set -e : ${KEYSTONE_ADMIN_PASSWORD:=kolla} : ${ADMIN_TENANT_NAME:=admin} -if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then - KEYSTONE_ADMIN_TOKEN=$(openssl rand -hex 15) -fi - -if ! [ "$KEYSTONE_DB_PASSWORD" ]; then - KEYSTONE_DB_PASSWORD=$(openssl rand -hex 15) -fi +. /opt/kolla/kolla-common.sh +check_for_db +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \ + KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME +dump_vars mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF CREATE DATABASE IF NOT EXISTS keystone; @@ -25,7 +20,7 @@ EOF crudini --set /etc/keystone/keystone.conf \ database \ connection \ - "mysql://keystone:${KEYSTONE_DB_PASSWORD}@${MARIADB_PORT_3306_TCP_ADDR}:${MARIADB_PORT_3306_TCP_PORT}/keystone" + "mysql://keystone:${KEYSTONE_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/keystone" crudini --set /etc/keystone/keystone.conf \ DEFAULT \ admin_token \ @@ -38,42 +33,36 @@ crudini --del /etc/keystone/keystone.conf \ log_dir crudini --set /etc/keystone/keystone.conf DEFAULT use_stderr True -cat /etc/keystone/keystone.conf - /usr/bin/keystone-manage db_sync /usr/bin/keystone-manage pki_setup --keystone-user keystone --keystone-group keystone -MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') | - awk '$4 == "src" {print $5}') -if [ -z "$KEYSTONE_ADMIN_PORT_35357_TCP_ADDR" ]; then - KEYSTONE_ADMIN_PORT_35357_TCP_ADDR=$MY_IP -fi -if [ -z "$KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR" ]; then - KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR=$MY_IP -fi - /usr/bin/keystone-all & PID=$! export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="http://127.0.0.1:35357/v2.0" -SERVICE_ENDPOINT_ADMIN="http://${KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}:35357/v2.0" -SERVICE_ENDPOINT_USER="http://${KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}:5000/v2.0" +export SERVICE_ENDPOINT="http://${MY_IP}:35357/v2.0" -# wait for keystone to become active 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 "${SERVICE_ENDPOINT_USER}" \ - -A "${SERVICE_ENDPOINT_ADMIN}" + -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 |
