diff --git a/docker/centos/binary/zaqar/Dockerfile b/docker/centos/binary/zaqar/Dockerfile index 956f908254edc378869a12c8ffdfd0a8ec7e5c16..ddb198fe3925637bee9c56574ab256c29bada727 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 0000000000000000000000000000000000000000..3459a6f72e7f146a732b1ff453bc9c81837b3377 --- /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 0000000000000000000000000000000000000000..10b7affb76d4fc9f1fc0e248ce039f93f150ab6e --- /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 0000000000000000000000000000000000000000..7ed6da2eb402d2d63fb8b70e7a3ccdc5274ce700 --- /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 0000000000000000000000000000000000000000..6c68fccf22e0d941bd10b5e9bd776ab83172e07a --- /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 6c68fccf22e0d941bd10b5e9bd776ab83172e07a..4d3f7523809bc5ee38d8236573aa251fbc2d84cb 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 8e11781a3a537b33fc5e0c6a4fe062b52f8550a1..b106e2e89f2704807c0e3550eeacbbc53de74c78 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