summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Kellogg-Stedman <lars@redhat.com>2014-10-10 11:33:43 -0400
committerLars Kellogg-Stedman <lars@redhat.com>2014-10-13 14:41:37 -0400
commita19e1cdd00f0b3394f9146eab8cb7f7fe2b6e0f2 (patch)
treeb6f647e755e76e440a890d7567946dd862c418b3
parent6ac10ca545fd23f8f6dcd04d21357b41e0c852aa (diff)
downloadkolla-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-xdocker/keystone/start.sh47
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