From ab96e4a51eaf260dc2ec6050afded536ac81007f Mon Sep 17 00:00:00 2001 From: digambar <digambarpatil15@yahoo.co.in> Date: Fri, 3 Jul 2015 15:21:57 +0530 Subject: [PATCH] Add config-internal/config-external to Zaqar containers Partially Implements: Blueprint standard-start Co-Authored-By: Swapnil Kulkarni <me@coolsvap.net> Change-Id: I4623f2495365e3178d3cd7f453683c2ceaf16b02 --- docker/centos/binary/zaqar/Dockerfile | 2 + docker/centos/binary/zaqar/config-external.sh | 1 + docker/centos/binary/zaqar/config-internal.sh | 1 + docker/common/zaqar/config-external.sh | 10 +++ docker/common/zaqar/config-internal.sh | 64 ++++++++++++++++ docker/common/zaqar/start.sh | 73 ++++--------------- docs/minimal-environment-vars.md | 6 +- 7 files changed, 94 insertions(+), 63 deletions(-) create mode 100644 docker/centos/binary/zaqar/config-external.sh create mode 100644 docker/centos/binary/zaqar/config-internal.sh create mode 100644 docker/common/zaqar/config-external.sh create mode 100644 docker/common/zaqar/config-internal.sh diff --git a/docker/centos/binary/zaqar/Dockerfile b/docker/centos/binary/zaqar/Dockerfile index 956f908254..ddb198fe39 100644 --- a/docker/centos/binary/zaqar/Dockerfile +++ b/docker/centos/binary/zaqar/Dockerfile @@ -6,4 +6,6 @@ RUN yum -y install openstack-zaqar && yum clean all ADD ./start.sh /start.sh ADD ./check.sh /check.sh +COPY config-internal.sh config-external.sh /opt/kolla/ + CMD ["/start.sh"] diff --git a/docker/centos/binary/zaqar/config-external.sh b/docker/centos/binary/zaqar/config-external.sh new file mode 100644 index 0000000000..3459a6f72e --- /dev/null +++ b/docker/centos/binary/zaqar/config-external.sh @@ -0,0 +1 @@ +../../../../common/zaqar/config-external.sh diff --git a/docker/centos/binary/zaqar/config-internal.sh b/docker/centos/binary/zaqar/config-internal.sh new file mode 100644 index 0000000000..10b7affb76 --- /dev/null +++ b/docker/centos/binary/zaqar/config-internal.sh @@ -0,0 +1 @@ +../../../../common/zaqar/config-internal.sh diff --git a/docker/common/zaqar/config-external.sh b/docker/common/zaqar/config-external.sh new file mode 100644 index 0000000000..7ed6da2eb4 --- /dev/null +++ b/docker/common/zaqar/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/zaqar/zaqar.conf" +TARGET="/etc/zaqar/zaqar.conf" +OWNER="zaqar" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/zaqar/config-internal.sh b/docker/common/zaqar/config-internal.sh new file mode 100644 index 0000000000..6c68fccf22 --- /dev/null +++ b/docker/common/zaqar/config-internal.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +set -e + +. /opt/kolla/kolla-common.sh + +: ${ADMIN_TENANT_NAME:=admin} +: ${ZAQAR_KEYSTONE_USER:=zaqar} +: ${KEYSTONE_AUTH_PROTOCOL:=http} + +check_required_vars ZAQAR_KEYSTONE_PASSWORD ZAQAR_SERVER_SERVICE_HOST \ + KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_TOKEN \ + PUBLIC_IP +dump_vars + +#check_for_mongodb +check_for_keystone + +cat > /openrc <<EOF +export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" +export OS_USERNAME="${ZAQAR_KEYSTONE_USER}" +export OS_PASSWORD="${ZAQAR_KEYSTONE_PASSWORD}" +export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" +EOF + +cfg=/etc/zaqar/zaqar.conf + +crudini --set $cfg DEFAULT log_file \ + "" +crudini --set $cfg DEFAULT use_stderr \ + true + +crudini --set $cfg drivers storage \ + sqlite + +crudini --set $cfg keystone_authtoken admin_password \ + "${ZAQAR_KEYSTONE_PASSWORD}" +crudini --set $cfg keystone_authtoken admin_user \ + "${ZAQAR_KEYSTONE_USER}" +crudini --set $cfg keystone_authtoken admin_tenant_name \ + "${ADMIN_TENANT_NAME}" +crudini --set $cfg keystone_authtoken auth_uri \ + "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" +crudini --set $cfg keystone_authtoken auth_protocol \ + "${KEYSTONE_AUTH_PROTOCOL}" +crudini --set $cfg keystone_authtoken auth_host \ + "${KEYSTONE_PUBLIC_SERVICE_HOST}" +crudini --set $cfg keystone_authtoken auth_port \ + 5000 + + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" +crux user-create -n ${ZAQAR_KEYSTONE_USER} \ + -p ${ZAQAR_KEYSTONE_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux endpoint-create --remove-all -n ${ZAQAR_KEYSTONE_USER} -t messaging \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${ZAQAR_SERVER_SERVICE_HOST}:8888" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8888" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${ZAQAR_SERVER_SERVICE_HOST}:8888" + +exec /usr/bin/zaqar-server diff --git a/docker/common/zaqar/start.sh b/docker/common/zaqar/start.sh index 6c68fccf22..4d3f752380 100755 --- a/docker/common/zaqar/start.sh +++ b/docker/common/zaqar/start.sh @@ -1,64 +1,21 @@ -#!/bin/sh +#!/bin/bash -set -e +set -o errexit -. /opt/kolla/kolla-common.sh +CMD="/usr/bin/zaqar-server" +ARGS="" -: ${ADMIN_TENANT_NAME:=admin} -: ${ZAQAR_KEYSTONE_USER:=zaqar} -: ${KEYSTONE_AUTH_PROTOCOL:=http} +# Loading common functions. +source /opt/kolla/kolla-common.sh -check_required_vars ZAQAR_KEYSTONE_PASSWORD ZAQAR_SERVER_SERVICE_HOST \ - KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_TOKEN \ - PUBLIC_IP -dump_vars +# Config-internal script exec out of this function, it does not return here. +set_configs -#check_for_mongodb -check_for_keystone +# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases +# of the KOLLA_BOOTSTRAP variable being set, including empty. +if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then + su -s /bin/sh -c "zaqar-manage db_sync" cinder + exit 0 +fi -cat > /openrc <<EOF -export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -export OS_USERNAME="${ZAQAR_KEYSTONE_USER}" -export OS_PASSWORD="${ZAQAR_KEYSTONE_PASSWORD}" -export OS_TENANT_NAME="${ADMIN_TENANT_NAME}" -EOF - -cfg=/etc/zaqar/zaqar.conf - -crudini --set $cfg DEFAULT log_file \ - "" -crudini --set $cfg DEFAULT use_stderr \ - true - -crudini --set $cfg drivers storage \ - sqlite - -crudini --set $cfg keystone_authtoken admin_password \ - "${ZAQAR_KEYSTONE_PASSWORD}" -crudini --set $cfg keystone_authtoken admin_user \ - "${ZAQAR_KEYSTONE_USER}" -crudini --set $cfg keystone_authtoken admin_tenant_name \ - "${ADMIN_TENANT_NAME}" -crudini --set $cfg keystone_authtoken auth_uri \ - "${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_PUBLIC_SERVICE_HOST}:5000/v2.0" -crudini --set $cfg keystone_authtoken auth_protocol \ - "${KEYSTONE_AUTH_PROTOCOL}" -crudini --set $cfg keystone_authtoken auth_host \ - "${KEYSTONE_PUBLIC_SERVICE_HOST}" -crudini --set $cfg keystone_authtoken auth_port \ - 5000 - - -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" -crux user-create -n ${ZAQAR_KEYSTONE_USER} \ - -p ${ZAQAR_KEYSTONE_PASSWORD} \ - -t ${ADMIN_TENANT_NAME} \ - -r admin - -crux endpoint-create --remove-all -n ${ZAQAR_KEYSTONE_USER} -t messaging \ - -I "${KEYSTONE_AUTH_PROTOCOL}://${ZAQAR_SERVER_SERVICE_HOST}:8888" \ - -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8888" \ - -A "${KEYSTONE_AUTH_PROTOCOL}://${ZAQAR_SERVER_SERVICE_HOST}:8888" - -exec /usr/bin/zaqar-server +exec $CMD $ARGS diff --git a/docs/minimal-environment-vars.md b/docs/minimal-environment-vars.md index 8e11781a3a..b106e2e89f 100644 --- a/docs/minimal-environment-vars.md +++ b/docs/minimal-environment-vars.md @@ -503,8 +503,4 @@ In order for each service to function, there is a minimum set of required variab # Zaqar - KEYSTONE_ADMIN_SERVICE_HOST - KEYSTONE_ADMIN_TOKEN - PUBLIC_IP - ZAQAR_KEYSTONE_PASSWORD - ZAQAR_SERVER_SERVICE_HOST + None