From 25cfe7022670f44b130b4b3c341daca44f4f438b Mon Sep 17 00:00:00 2001 From: Lars Kellogg-Stedman <lars@redhat.com> Date: Thu, 18 Sep 2014 21:41:38 -0400 Subject: [PATCH] added a bunch of glance stuff --- docker/glance/build-all | 10 ++++ docker/glance/glance-api/Dockerfile | 7 +-- docker/glance/glance-api/start.sh | 59 +--------------------- docker/glance/glance-base/Dockerfile | 12 +++++ docker/glance/glance-base/config-glance.sh | 55 ++++++++++++++++++++ docker/glance/glance-registry/Dockerfile | 7 +-- docker/glance/glance-registry/start.sh | 40 +++++++++++++++ docker/glance/glance.json | 56 ++++++++++++++++++++ 8 files changed, 177 insertions(+), 69 deletions(-) create mode 100644 docker/glance/build-all create mode 100644 docker/glance/glance-base/Dockerfile create mode 100644 docker/glance/glance-base/config-glance.sh create mode 100644 docker/glance/glance-registry/start.sh create mode 100644 docker/glance/glance.json diff --git a/docker/glance/build-all b/docker/glance/build-all new file mode 100644 index 0000000000..2de2ae6920 --- /dev/null +++ b/docker/glance/build-all @@ -0,0 +1,10 @@ +#!/bin/sh + +for image in glance-base glance-api glance-registry; do +( + cd $image + docker build -t docker.usersys.redhat.com/larsks/${image}:latest . + docker push docker.usersys.redhat.com/larsks/${image}:latest +) +done + diff --git a/docker/glance/glance-api/Dockerfile b/docker/glance/glance-api/Dockerfile index d89ad15497..10e713fa58 100644 --- a/docker/glance/glance-api/Dockerfile +++ b/docker/glance/glance-api/Dockerfile @@ -1,11 +1,6 @@ -FROM docker.usersys.redhat.com/lhh1/rhel-osp-base +FROM docker.usersys.redhat.com/larsks/glance-base MAINTAINER Lars Kellogg-Stedman <lars@redhat.com> -yum -y install \ - openstack-utils \ - openstack-glance \ - mariadb; yum clean all - ADD ./start.sh /start.sh CMD ["/start.sh"] diff --git a/docker/glance/glance-api/start.sh b/docker/glance/glance-api/start.sh index d297a08ff6..dbd1ae2e96 100644 --- a/docker/glance/glance-api/start.sh +++ b/docker/glance/glance-api/start.sh @@ -1,60 +1,5 @@ -#!/bin/bash +#!/bin/sh -: ${GLANCE_DB_USER:=glance} -: ${GLANCE_DB_NAME:=glance} -: ${KEYSTONE_ADMIN_PASSWORD:=redhat} - -if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then - echo "*** Missing KEYSTONE_ADMIN_TOKEN." - exit 1 -fi - -if ! [ "$GLANCE_DB_PASSWORD" ]; then - GLANCE_DB_PASSWORD=$(openssl rand -hex 15) -fi - -if ! [ "$GLANCE_KEYSTONE_PASSWORD" ]; then - GLANCE_KEYSTONE_PASSWORD=$(openssl rand -hex 15) -fi - -mysql -h ${MARIADBMASTER_PORT_3306_TCP_ADDR} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF -CREATE DATABASE IF NOT EXISTS glance; -GRANT ALL PRIVILEGES ON glance* TO - 'glance'@'%' IDENTIFIED BY '${GLANCE_DB_PASSWORD}' -EOF - -for service in api registry; do - crudini --set /etc/glance/glance-$service \ - database \ - connection \ - mysql://${GLANCE_DB_USER}:${GLANCE_DB_PASSWORD}@${MARIADBMASTER_PORT_3306_TCP_ADDR}/${GLANCE_DB_NAME} - - crudini --set /etc/glance/glance-$service \ - keystone_authtoken \ - admin_password \ - "$GLANCE_KEYSTONE_PASSWORD" - - crudini --set /etc/glance/glance-$service \ - keystone_authtoken \ - auth_uri \ - "http://${KEYSTONEMASTER_5000_PORT_5000_TCP_ADDR}:5000/" - - for option in auth_host auth_port auth_protocol; do - crudini --del /etc/glance/glance-$service \ - keystone_authtoken \ - $optoin - done -done - -/usr/bin/glance-manage db sync - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="http://${KEYSTONEMASTER_35357_PORT_35357_TCP_ADDR}:35357/v2.0" - -/bin/keystone user-create --name admin --pass ${KEYSTONE_ADMIN_PASSWORD} -/bin/keystone role-create --name admin -/bin/keystone tenant-create --name admin -/bin/keystone user-role-add --user admin --role admin --tenant admin +sh /opt/glance/config-glance.sh api exec /usr/bin/glance-api - diff --git a/docker/glance/glance-base/Dockerfile b/docker/glance/glance-base/Dockerfile new file mode 100644 index 0000000000..d9967cd7b9 --- /dev/null +++ b/docker/glance/glance-base/Dockerfile @@ -0,0 +1,12 @@ +FROM docker.usersys.redhat.com/lhh1/rhel-osp-base +MAINTAINER Lars Kellogg-Stedman <lars@redhat.com> + +RUN yum -y install \ + openstack-utils \ + openstack-glance \ + python-keystoneclient \ + mariadb; 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 new file mode 100644 index 0000000000..ae15b1a782 --- /dev/null +++ b/docker/glance/glance-base/config-glance.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# +# usage config-glance.sh ( api | registry ) + +service=$1 +cfg=/etc/glance/glance-${service}.conf + +: ${GLANCE_DB_USER:=glance} +: ${GLANCE_DB_NAME:=glance} +: ${GLANCE_KEYSTONE_USER:=glance} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${ADMIN_TENANT_NAME:=admin} + +if ! [ "$GLANCE_DB_PASSWORD" ]; then + echo "*** Missing GLANCE_DB_PASSWORD" >&2 + exit 1 +fi + +crudini --del $cfg \ + DEFAULT \ + log_file \ +crudini --set $cfg \ + keystone_authtoken \ + admin_password \ + "${GLANCE_KEYSTONE_PASS}" + +for option in auth_protocol auth_host auth_Port; do + crudini --del $cfg \ + keystone_authtoken \ + $option +done + +crudini --set $cfg + keystone_authtoken \ + auth_uri \ + "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONEMASTER_5000_PORT_5000_TCP_ADDR}:5000/" +crudini --set $cfg + keystone_authtoken \ + admin_tenant_name \ + "${ADMIN_TENANT_NAME}" +crudini --set $cfg + keystone_authtoken \ + admin_user \ + "${GLANCE_KEYSTONE_USER}" +crudini --set $cfg + keystone_authtoken \ + admin_password \ + "${GLANCE_KEYSTONE_PASS}" + +crudini --set $cfg \ + database \ + connection \ + "mysql://${GLANCE_DB_USER}:${GLANCE_DB_PASSWORD}@${MARIADBMASTER_PORT_3306_TCP_ADDR}:${MARIADBMASTER_PORT_3306_TCP_PORT}/${GLANCE_DB_NAME}" + + diff --git a/docker/glance/glance-registry/Dockerfile b/docker/glance/glance-registry/Dockerfile index d89ad15497..10e713fa58 100644 --- a/docker/glance/glance-registry/Dockerfile +++ b/docker/glance/glance-registry/Dockerfile @@ -1,11 +1,6 @@ -FROM docker.usersys.redhat.com/lhh1/rhel-osp-base +FROM docker.usersys.redhat.com/larsks/glance-base MAINTAINER Lars Kellogg-Stedman <lars@redhat.com> -yum -y install \ - openstack-utils \ - openstack-glance \ - mariadb; yum clean all - ADD ./start.sh /start.sh CMD ["/start.sh"] diff --git a/docker/glance/glance-registry/start.sh b/docker/glance/glance-registry/start.sh new file mode 100644 index 0000000000..4c362fc24e --- /dev/null +++ b/docker/glance/glance-registry/start.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +: ${GLANCE_DB_USER:=glance} +: ${GLANCE_DB_NAME:=glance} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${GLANCE_KEYSTONE_USER:=glance} +: ${ADMIN_TENANT_NAME:=admin} + +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 + +mysql -h ${MARIADBMASTER_PORT_3306_TCP_ADDR} -u root \ + -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${GLANCE_DB_NAME}; +GRANT ALL PRIVILEGES ON glance* TO + '${GLANCE_DB_USER}'@'%' IDENTIFIED BY '${GLANCE_DB_PASSWORD}' +EOF + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONEMASTER_35357_PORT_35357_TCP_ADDR}:35357/v2.0" + +/bin/keystone user-create --name ${GLANCE_KEYSTONE_USER} --pass ${GLANCE_ADMIN_PASSWORD} +/bin/keystone role-create --name ${GLANCE_KEYSTONE_USER} +/bin/keystone user-role-add --user ${GLANCE_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} + +exec /usr/bin/glance-registry diff --git a/docker/glance/glance.json b/docker/glance/glance.json new file mode 100644 index 0000000000..57abad7b4b --- /dev/null +++ b/docker/glance/glance.json @@ -0,0 +1,56 @@ +{ + "id": "glance", + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "glance-1", + "containers": [ + { + "name": "glance-registry", + "image": "docker.usersys.redhat.com/larsks/glance-registry", + "ports": [ + {"containerPort": 9292}, + ], + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "GLANCE_DB_PASSWORD", + "value": "glancedbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + }, + ] + }, + { + "name": "glance-api", + "image": "docker.usersys.redhat.com/larsks/glance-api", + "ports": [ + {"containerPort": 9292}, + ], + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "GLANCE_DB_PASSWORD", + "value": "glancedbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + }, + ] + }, + ] + } + }, + "labels": { + "name": "keystone-master" + } +}