From d28f83dace10de52cc54d019a05a27859115fbdc Mon Sep 17 00:00:00 2001 From: Lars Kellogg-Stedman Date: Sun, 5 Oct 2014 09:54:53 -0400 Subject: fix issues with glance scripts - glance was using wrong var name for admin_password - also missing "\" in several places, breaking multi-line crudini commands. - glance was using wrong tenant name - in the registry container, glance-manage appears to reference glance-api.conf - the glance.json config file was not spawning a registry container Change-Id: I280d1db3ed576988f2bf29ea665e1922a37f8752 --- docker/glance/glance-api-service.json | 4 +- docker/glance/glance-api/start.sh | 20 +++++++- docker/glance/glance-base/Dockerfile | 5 +- docker/glance/glance-base/config-glance.sh | 73 ++++++++++++++++++++---------- docker/glance/glance-registry-service.json | 4 +- docker/glance/glance-registry/start.sh | 29 +----------- docker/glance/glance.json | 42 ++++++++--------- 7 files changed, 97 insertions(+), 80 deletions(-) diff --git a/docker/glance/glance-api-service.json b/docker/glance/glance-api-service.json index 03a4896cd..c77873c5b 100644 --- a/docker/glance/glance-api-service.json +++ b/docker/glance/glance-api-service.json @@ -1,10 +1,10 @@ { - "id": "glanceapimaster", + "id": "glance-api", "kind": "Service", "apiVersion": "v1beta1", "port": 9292, "containerPort": 9292, "selector": { - "name": "glance-api-master" + "name": "glance" } } diff --git a/docker/glance/glance-api/start.sh b/docker/glance/glance-api/start.sh index dbd1ae2e9..81cd51909 100755 --- a/docker/glance/glance-api/start.sh +++ b/docker/glance/glance-api/start.sh @@ -1,5 +1,23 @@ #!/bin/sh -sh /opt/glance/config-glance.sh api +if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then + echo "*** Missing KEYSTONE_ADMIN_TOKEN" >&2 + exit 1 +fi + +. /opt/glance/config-glance.sh + +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 + +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" exec /usr/bin/glance-api diff --git a/docker/glance/glance-base/Dockerfile b/docker/glance/glance-base/Dockerfile index 026ac3d2e..23c46ec3a 100644 --- a/docker/glance/glance-base/Dockerfile +++ b/docker/glance/glance-base/Dockerfile @@ -1,11 +1,14 @@ FROM kollaglue/fedora-rdo-base MAINTAINER Dan Radez +RUN yum -y install dnf dnf-plugins-core; yum clean all +RUN dnf copr enable -y larsks/crux RUN yum -y install \ openstack-utils \ openstack-glance \ python-keystoneclient \ - mariadb; yum clean all + mariadb crux \ + ; yum clean all RUN mkdir /opt/glance COPY config-glance.sh /opt/glance/config-glance.sh diff --git a/docker/glance/glance-base/config-glance.sh b/docker/glance/glance-base/config-glance.sh index 494d49704..2f78464bd 100644 --- a/docker/glance/glance-base/config-glance.sh +++ b/docker/glance/glance-base/config-glance.sh @@ -2,53 +2,76 @@ # # usage config-glance.sh ( api | registry ) -service=$1 -cfg=/etc/glance/glance-${service}.conf +[ -f /startconfig ] && . /startconfig -: ${GLANCE_DB_USER:=glance} +MY_IP=$(ip route get $(ip route | awk '$1 == "default" {print $3}') | + awk '$4 == "src" {print $5}') + +: ${ADMIN_TENANT_NAME:=admin} : ${GLANCE_DB_NAME:=glance} +: ${GLANCE_DB_USER:=glance} : ${GLANCE_KEYSTONE_USER:=glance} : ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${ADMIN_TENANT_NAME:=admin} +: ${PUBLIC_IP:=$MY_IP} if ! [ "$GLANCE_DB_PASSWORD" ]; then - echo "*** Missing GLANCE_DB_PASSWORD" >&2 - exit 1 + GLANCE_DB_PASSWORD=$(openssl rand -hex 15) + export GLANCE_DB_PASSWORD +fi + +if ! [ "$GLANCE_KEYSTONE_PASSWORD" ]; then + GLANCE_KEYSTONE_PASSWORD=$(openssl rand -hex 15) + export GLANCE_KEYSTONE_PASSWORD fi -crudini --del $cfg \ +if ! [ -f /startconfig ]; then + cat > /startconfig <<-EOF +ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME} +GLANCE_DB_NAME=${GLANCE_DB_NAME} +GLANCE_DB_USER=${GLANCE_DB_USER} +GLANCE_KEYSTONE_USER=${GLANCE_KEYSTONE_USER} +KEYSTONE_AUTH_PROTOCOL=${KEYSTONE_AUTH_PROTOCOL} +PUBLIC_IP=${PUBLIC_IP} +GLANCE_DB_PASSWORD=${GLANCE_DB_PASSWORD} +GLANCE_KEYSTONE_PASSWORD=${GLANCE_KEYSTONE_PASSWORD} +EOF +fi + +for cfg in /etc/glance/glance-api.conf /etc/glance/glance-registry.conf; do + crudini --del $cfg \ DEFAULT \ - log_file \ -crudini --set $cfg \ - keystone_authtoken \ - admin_password \ - "${GLANCE_KEYSTONE_PASS}" + log_file -for option in auth_protocol auth_host auth_Port; do + for option in auth_protocol auth_host auth_port; do crudini --del $cfg \ - keystone_authtoken \ - $option -done + keystone_authtoken \ + $option + done -crudini --set $cfg + crudini --set $cfg \ + DEFAULT \ + bind_host \ + $MY_IP + crudini --set $cfg \ keystone_authtoken \ auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}:5000/" -crudini --set $cfg + "http://${KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR}:5000/" + crudini --set $cfg \ keystone_authtoken \ admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg + "${ADMIN_TENANT_NAME}" + crudini --set $cfg \ keystone_authtoken \ admin_user \ "${GLANCE_KEYSTONE_USER}" -crudini --set $cfg + crudini --set $cfg \ keystone_authtoken \ admin_password \ - "${GLANCE_KEYSTONE_PASS}" + "${GLANCE_KEYSTONE_PASSWORD}" -crudini --set $cfg \ + crudini --set $cfg \ database \ connection \ - "mysql://${GLANCE_DB_USER}:${GLANCE_DB_PASSWORD}@${MARIADB_PORT_3306_TCP_ADDR}:${MARIADB_PORT_3306_TCP_PORT}/${GLANCE_DB_NAME}" + "mysql://${GLANCE_DB_USER}:${GLANCE_DB_PASSWORD}@${MARIADB_PORT_3306_TCP_ADDR}/${GLANCE_DB_NAME}" +done diff --git a/docker/glance/glance-registry-service.json b/docker/glance/glance-registry-service.json index 39ceebe69..ec557b4ee 100644 --- a/docker/glance/glance-registry-service.json +++ b/docker/glance/glance-registry-service.json @@ -1,10 +1,10 @@ { - "id": "glanceregistrymaster", + "id": "glance-registry", "kind": "Service", "apiVersion": "v1beta1", "port": 9191, "containerPort": 9191, "selector": { - "name": "glance-registry-master" + "name": "glance" } } diff --git a/docker/glance/glance-registry/start.sh b/docker/glance/glance-registry/start.sh index 2356620d9..d6eb6c101 100755 --- a/docker/glance/glance-registry/start.sh +++ b/docker/glance/glance-registry/start.sh @@ -1,27 +1,6 @@ #!/bin/sh -: ${GLANCE_DB_USER:=glance} -: ${GLANCE_DB_NAME:=glance} -: ${KEYSTONE_AUTH_PROTOCOL:=http} -: ${GLANCE_KEYSTONE_USER:=glance} -: ${GLANCE_TENANT_NAME:=services} - -if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then - echo "*** Missing KEYSTONE_ADMIN_TOKEN" >&2 - exit 1 -fi - -if ! [ "$DB_ROOT_PASSWORD" ]; then - echo "*** Missing DB_ROOT_PASSWORD" >&2 - exit 1 -fi - -if ! [ "$GLANCE_DB_PASSWORD" ]; then - GLANCE_DB_PASSWORD=$(openssl rand -hex 15) - export GLANCE_DB_PASSWORD -fi - -sh /opt/glance/config-glance.sh registry +. /opt/glance/config-glance.sh mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root -p${DB_ROOT_PASSWORD} mysql <