aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Kellogg-Stedman <lars@redhat.com>2014-10-08 12:48:31 -0400
committerLars Kellogg-Stedman <lars@redhat.com>2014-10-13 09:53:56 -0400
commita4069300aa285c747846c2aa47d514a282297a65 (patch)
tree7b19670bd62bf3094dcb529c924600d77105c64d
parentcb05bb513bc5dbb2aa0a10a569ee5032515ea382 (diff)
downloadkolla-a4069300aa285c747846c2aa47d514a282297a65.tar.gz
kolla-a4069300aa285c747846c2aa47d514a282297a65.zip
correct various issues with glance images and configs
- update keystone endpoints/user on boot (to avoid problems caused by, e.g., a stale password or invalid endpoint urls) - require GLANCE_DB_PASSWORD and GLANCE_KEYSTONE_PASSWORD in the environment, since we start multiple containers Change-Id: I31214b81280ed34409f92e79003c1116d5737d2e
-rwxr-xr-xdocker/glance/glance-api/start.sh21
-rw-r--r--docker/glance/glance-base/config-glance.sh25
-rwxr-xr-xdocker/glance/glance-registry/start.sh6
-rw-r--r--k8s/pod/glance-pod.json120
4 files changed, 97 insertions, 75 deletions
diff --git a/docker/glance/glance-api/start.sh b/docker/glance/glance-api/start.sh
index 81cd51909..e0cc37d4f 100755
--- a/docker/glance/glance-api/start.sh
+++ b/docker/glance/glance-api/start.sh
@@ -10,14 +10,19 @@ fi
export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}:35357/v2.0"
-crux user-create -n "${GLANCE_KEYSTONE_USER}" \
- -p "${GLANCE_KEYSTONE_PASSWORD}" \
- -t "${ADMIN_TENANT_NAME}" \
- -r admin
+while ! curl -o /dev/null -s --fail ${SERVICE_ENDPOINT}; do
+ echo "waiting for keystone..."
+ sleep 1;
+done
-crux endpoint-create -n glance -t image \
- -I "http://${GLANCE_API_PORT_9292_TCP_ADDR}:9292" \
- -P "http://${PUBLIC_IP}:9292" \
- -A "http://${GLANCE_API_PORT_9292_TCP_ADDR}:9292"
+crux user-create --update -n "${GLANCE_KEYSTONE_USER}" \
+ -p "${GLANCE_KEYSTONE_PASSWORD}" \
+ -t "${ADMIN_TENANT_NAME}" \
+ -r admin
+
+crux endpoint-create --remove-all -n glance -t image \
+ -I "http://${GLANCE_API_PORT_9292_TCP_ADDR}:9292" \
+ -P "http://${PUBLIC_IP}:9292" \
+ -A "http://${GLANCE_API_PORT_9292_TCP_ADDR}:9292"
exec /usr/bin/glance-api
diff --git a/docker/glance/glance-base/config-glance.sh b/docker/glance/glance-base/config-glance.sh
index 2f78464bd..0675a7879 100644
--- a/docker/glance/glance-base/config-glance.sh
+++ b/docker/glance/glance-base/config-glance.sh
@@ -14,14 +14,14 @@ MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') |
: ${KEYSTONE_AUTH_PROTOCOL:=http}
: ${PUBLIC_IP:=$MY_IP}
-if ! [ "$GLANCE_DB_PASSWORD" ]; then
- GLANCE_DB_PASSWORD=$(openssl rand -hex 15)
- export GLANCE_DB_PASSWORD
+if [ -z "$GLANCE_DB_PASSWORD" ]; then
+ echo "ERROR: missing GLANCE_DB_PASSWORD" >&2
+ exit 1
fi
-if ! [ "$GLANCE_KEYSTONE_PASSWORD" ]; then
- GLANCE_KEYSTONE_PASSWORD=$(openssl rand -hex 15)
- export GLANCE_KEYSTONE_PASSWORD
+if [ -z "$GLANCE_KEYSTONE_PASSWORD" ]; then
+ echo "ERROR: missing GLANCE_KEYSTONE_PASSWORD" >&2
+ exit 1
fi
if ! [ -f /startconfig ]; then
@@ -37,6 +37,13 @@ GLANCE_KEYSTONE_PASSWORD=${GLANCE_KEYSTONE_PASSWORD}
EOF
fi
+cat > /openrc <<EOF
+export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}:5000/v2.0"
+export OS_USERNAME="${GLANCE_KEYSTONE_USER}"
+export OS_PASSWORD="${GLANCE_KEYSTONE_PASSWORD}"
+export OS_TENANT_NAME="${ADMIN_TENANT_NAME}"
+EOF
+
for cfg in /etc/glance/glance-api.conf /etc/glance/glance-registry.conf; do
crudini --del $cfg \
DEFAULT \
@@ -49,17 +56,13 @@ for cfg in /etc/glance/glance-api.conf /etc/glance/glance-registry.conf; do
done
crudini --set $cfg \
- DEFAULT \
- bind_host \
- $MY_IP
- crudini --set $cfg \
keystone_authtoken \
auth_uri \
"http://${KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}:5000/"
crudini --set $cfg \
keystone_authtoken \
admin_tenant_name \
- "${ADMIN_TENANT_NAME}"
+ "${ADMIN_TENANT_NAME}"
crudini --set $cfg \
keystone_authtoken \
admin_user \
diff --git a/docker/glance/glance-registry/start.sh b/docker/glance/glance-registry/start.sh
index d6eb6c101..7e43bfbce 100755
--- a/docker/glance/glance-registry/start.sh
+++ b/docker/glance/glance-registry/start.sh
@@ -2,6 +2,12 @@
. /opt/glance/config-glance.sh
+# wait for mysql to start
+while ! mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root -p${DB_ROOT_PASSWORD} -e "select 1" mysql > /dev/null 2>&1; do
+ echo "waiting for mysql..."
+ sleep 1
+done
+
mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
CREATE DATABASE IF NOT EXISTS ${GLANCE_DB_NAME} DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON ${GLANCE_DB_NAME}.* TO
diff --git a/k8s/pod/glance-pod.json b/k8s/pod/glance-pod.json
index 94da934c6..359de4bf2 100644
--- a/k8s/pod/glance-pod.json
+++ b/k8s/pod/glance-pod.json
@@ -1,60 +1,68 @@
{
- "desiredState": {
- "manifest": {
- "containers": [
- {
- "env": [
- {
- "name": "DB_ROOT_PASSWORD",
- "value": "password"
- },
- {
- "name": "GLANCE_DB_PASSWORD",
- "value": "password"
- },
- {
- "name": "KEYSTONE_ADMIN_TOKEN",
- "value": "ADMINTOKEN"
- }
- ],
- "image": "kollaglue/fedora-rdo-glance-registry",
- "name": "glance-registry",
- "ports": [
- {
- "containerPort": 9191
- }
- ]
- },
- {
- "env": [
- {
- "name": "DB_ROOT_PASSWORD",
- "value": "password"
- },
- {
- "name": "GLANCE_DB_PASSWORD",
- "value": "password"
- },
- {
- "name": "KEYSTONE_ADMIN_TOKEN",
- "value": "ADMINTOKEN"
- }
- ],
- "image": "kollaglue/fedora-rdo-glance-api",
- "name": "glance-api",
- "ports": [
- {
- "containerPort": 9292
- }
- ]
- }
- ],
- "id": "glance-1",
- "version": "v1beta1"
+ "labels": {
+ "name": "glance"
+ },
+ "id": "glance",
+ "desiredState": {
+ "manifest": {
+ "version": "v1beta1",
+ "id": "glance-1",
+ "containers": [
+ {
+ "ports": [
+ {
+ "containerPort": 9191
+ }
+ ],
+ "name": "glance-registry",
+ "image": "kollaglue/fedora-rdo-glance-registry",
+ "env": [
+ {
+ "value": "password",
+ "name": "DB_ROOT_PASSWORD"
+ },
+ {
+ "value": "password",
+ "name": "GLANCE_DB_PASSWORD"
+ },
+ {
+ "value": "password",
+ "name": "GLANCE_KEYSTONE_PASSWORD"
+ },
+ {
+ "value": "ADMINTOKEN",
+ "name": "KEYSTONE_ADMIN_TOKEN"
+ }
+ ]
+ },
+ {
+ "ports": [
+ {
+ "containerPort": 9292
+ }
+ ],
+ "name": "glance-api",
+ "image": "kollaglue/fedora-rdo-glance-api",
+ "env": [
+ {
+ "value": "password",
+ "name": "DB_ROOT_PASSWORD"
+ },
+ {
+ "value": "password",
+ "name": "GLANCE_DB_PASSWORD"
+ },
+ {
+ "value": "password",
+ "name": "GLANCE_KEYSTONE_PASSWORD"
+ },
+ {
+ "value": "ADMINTOKEN",
+ "name": "KEYSTONE_ADMIN_TOKEN"
+ }
+ ]
}
- },
- "id": "glance",
- "labels": {
- "name": "glance"
+ ]
}
+ }
}