aboutsummaryrefslogtreecommitdiff
path: root/docker/common/heat
diff options
context:
space:
mode:
authorHarm Weites <harm@weites.com>2015-07-02 21:15:14 +0200
committerHarm Weites <harm@weites.com>2015-07-02 21:16:45 +0200
commitb07bb59c2d0ec5c8f2d3fd36a7c85e3d63bb31f3 (patch)
treec721a9e88144fdab491096ff8c098ffafa47fbea /docker/common/heat
parent3a4500c1220f11aa01faabf3ae4e74b6697861c0 (diff)
downloadkolla-b07bb59c2d0ec5c8f2d3fd36a7c85e3d63bb31f3.tar.gz
kolla-b07bb59c2d0ec5c8f2d3fd36a7c85e3d63bb31f3.zip
Add config-internal/config-external to Heat containers
Partially Implements: Blueprint standard-start Change-Id: Ia353ea4292e1f183949e8fc1c68ed345d1edc884
Diffstat (limited to 'docker/common/heat')
-rwxr-xr-xdocker/common/heat/heat-api-cfn/config-external.sh10
-rwxr-xr-xdocker/common/heat/heat-api-cfn/config-internal.sh28
-rwxr-xr-xdocker/common/heat/heat-api-cfn/start.sh31
-rwxr-xr-xdocker/common/heat/heat-api/config-external.sh10
-rwxr-xr-xdocker/common/heat/heat-api/config-internal.sh29
-rwxr-xr-xdocker/common/heat/heat-api/start.sh32
-rwxr-xr-xdocker/common/heat/heat-engine/config-external.sh10
-rwxr-xr-xdocker/common/heat/heat-engine/config-internal.sh28
-rwxr-xr-xdocker/common/heat/heat-engine/start.sh34
9 files changed, 144 insertions, 68 deletions
diff --git a/docker/common/heat/heat-api-cfn/config-external.sh b/docker/common/heat/heat-api-cfn/config-external.sh
new file mode 100755
index 000000000..91d5742f1
--- /dev/null
+++ b/docker/common/heat/heat-api-cfn/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/heat-api-cfn/heat.conf"
+TARGET="/etc/heat/heat.conf"
+OWNER="heat"
+
+if [[ -f "$SOURCE" ]]; then
+ cp $SOURCE $TARGET
+ chown ${OWNER}: $TARGET
+ chmod 0644 $TARGET
+fi
diff --git a/docker/common/heat/heat-api-cfn/config-internal.sh b/docker/common/heat/heat-api-cfn/config-internal.sh
new file mode 100755
index 000000000..bcd72250b
--- /dev/null
+++ b/docker/common/heat/heat-api-cfn/config-internal.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-heat.sh
+
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+ HEAT_CFN_KEYSTONE_USER HEAT_CFN_KEYSTONE_PASSWORD \
+ KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \
+ ADMIN_TENANT_NAME HEAT_API_CFN_SERVICE_HOST \
+ HEAT_API_CFN_SERVICE_PORT
+
+fail_unless_os_service_running keystone
+
+export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
+
+crux user-create -n ${HEAT_CFN_KEYSTONE_USER} \
+ -p ${HEAT_CFN_KEYSTONE_PASSWORD} \
+ -t ${ADMIN_TENANT_NAME} \
+ -r admin
+
+crux endpoint-create --remove-all -n ${HEAT_CFN_KEYSTONE_USER} -t cloudformation \
+ -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \
+ -P "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \
+ -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1"
+
+exec /usr/bin/heat-api-cfn
diff --git a/docker/common/heat/heat-api-cfn/start.sh b/docker/common/heat/heat-api-cfn/start.sh
index bcd72250b..716527c80 100755
--- a/docker/common/heat/heat-api-cfn/start.sh
+++ b/docker/common/heat/heat-api-cfn/start.sh
@@ -1,28 +1,13 @@
#!/bin/bash
-set -e
+set -o errexit
-. /opt/kolla/kolla-common.sh
-. /opt/kolla/config-heat.sh
+CMD="/usr/bin/heat-api-cfn"
+ARGS=""
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
- HEAT_CFN_KEYSTONE_USER HEAT_CFN_KEYSTONE_PASSWORD \
- KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \
- ADMIN_TENANT_NAME HEAT_API_CFN_SERVICE_HOST \
- HEAT_API_CFN_SERVICE_PORT
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-fail_unless_os_service_running keystone
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
-
-crux user-create -n ${HEAT_CFN_KEYSTONE_USER} \
- -p ${HEAT_CFN_KEYSTONE_PASSWORD} \
- -t ${ADMIN_TENANT_NAME} \
- -r admin
-
-crux endpoint-create --remove-all -n ${HEAT_CFN_KEYSTONE_USER} -t cloudformation \
- -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \
- -P "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1" \
- -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_CFN_SERVICE_HOST}:${HEAT_API_CFN_SERVICE_PORT}/v1"
-
-exec /usr/bin/heat-api-cfn
+exec $CMD $ARGS
diff --git a/docker/common/heat/heat-api/config-external.sh b/docker/common/heat/heat-api/config-external.sh
new file mode 100755
index 000000000..ca5d73e90
--- /dev/null
+++ b/docker/common/heat/heat-api/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/heat-api/heat-api.conf"
+TARGET="/etc/heat/heat-api.conf"
+OWNER="heat"
+
+if [[ -f "$SOURCE" ]]; then
+ cp $SOURCE $TARGET
+ chown ${OWNER}: $TARGET
+ chmod 0644 $TARGET
+fi
diff --git a/docker/common/heat/heat-api/config-internal.sh b/docker/common/heat/heat-api/config-internal.sh
new file mode 100755
index 000000000..b57aaa710
--- /dev/null
+++ b/docker/common/heat/heat-api/config-internal.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+set -e
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-heat.sh
+
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+ HEAT_KEYSTONE_USER HEAT_KEYSTONE_PASSWORD \
+ KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \
+ HEAT_API_SERVICE_HOST PUBLIC_IP
+
+fail_unless_os_service_running keystone
+
+export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
+crux user-create -n ${HEAT_KEYSTONE_USER} \
+ -p ${HEAT_KEYSTONE_PASSWORD} \
+ -t ${ADMIN_TENANT_NAME} \
+ -r admin
+
+crux endpoint-create --remove-all -n ${HEAT_KEYSTONE_USER} -t orchestration \
+ -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" \
+ -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8004/v1/%(tenant_id)s" \
+ -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s"
+
+# will use crux after https://github.com/larsks/crux/issues/1 is implemented
+openstack role list --os-token="${KEYSTONE_ADMIN_TOKEN}" --os-url $SERVICE_ENDPOINT -f csv | tail -n +2 | awk -F, '{print $2}' | grep heat_stack_user || keystone role-create --name heat_stack_user
+
+exec /usr/bin/heat-api
diff --git a/docker/common/heat/heat-api/start.sh b/docker/common/heat/heat-api/start.sh
index b57aaa710..6dd14d17e 100755
--- a/docker/common/heat/heat-api/start.sh
+++ b/docker/common/heat/heat-api/start.sh
@@ -1,29 +1,13 @@
#!/bin/bash
-set -e
+set -o errexit
-. /opt/kolla/kolla-common.sh
-. /opt/kolla/config-heat.sh
+CMD="/usr/bin/heat-api"
+ARGS=""
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
- HEAT_KEYSTONE_USER HEAT_KEYSTONE_PASSWORD \
- KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \
- HEAT_API_SERVICE_HOST PUBLIC_IP
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-fail_unless_os_service_running keystone
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
-crux user-create -n ${HEAT_KEYSTONE_USER} \
- -p ${HEAT_KEYSTONE_PASSWORD} \
- -t ${ADMIN_TENANT_NAME} \
- -r admin
-
-crux endpoint-create --remove-all -n ${HEAT_KEYSTONE_USER} -t orchestration \
- -I "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s" \
- -P "${KEYSTONE_AUTH_PROTOCOL}://${PUBLIC_IP}:8004/v1/%(tenant_id)s" \
- -A "${KEYSTONE_AUTH_PROTOCOL}://${HEAT_API_SERVICE_HOST}:8004/v1/%(tenant_id)s"
-
-# will use crux after https://github.com/larsks/crux/issues/1 is implemented
-openstack role list --os-token="${KEYSTONE_ADMIN_TOKEN}" --os-url $SERVICE_ENDPOINT -f csv | tail -n +2 | awk -F, '{print $2}' | grep heat_stack_user || keystone role-create --name heat_stack_user
-
-exec /usr/bin/heat-api
+exec $CMD $ARGS
diff --git a/docker/common/heat/heat-engine/config-external.sh b/docker/common/heat/heat-engine/config-external.sh
new file mode 100755
index 000000000..bde0ffe0d
--- /dev/null
+++ b/docker/common/heat/heat-engine/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/heat-engine/heat.conf"
+TARGET="/etc/heat/heat.conf"
+OWNER="heat"
+
+if [[ -f "$SOURCE" ]]; then
+ cp $SOURCE $TARGET
+ chown ${OWNER}: $TARGET
+ chmod 0644 $TARGET
+fi
diff --git a/docker/common/heat/heat-engine/config-internal.sh b/docker/common/heat/heat-engine/config-internal.sh
new file mode 100755
index 000000000..0cafbc480
--- /dev/null
+++ b/docker/common/heat/heat-engine/config-internal.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-heat.sh
+. /openrc
+
+check_required_vars HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD \
+ INIT_HEAT_DB HEAT_DOMAIN_PASS
+fail_unless_db
+
+if [ "${INIT_HEAT_DB}" == "true" ]; then
+ mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
+CREATE DATABASE IF NOT EXISTS ${HEAT_DB_NAME} DEFAULT CHARACTER SET utf8;
+GRANT ALL PRIVILEGES ON ${HEAT_DB_NAME}.* TO
+ '${HEAT_DB_USER}'@'%' IDENTIFIED BY '${HEAT_DB_PASSWORD}'
+EOF
+
+ /usr/bin/heat-manage db_sync
+
+ # If the database needs to be created, assume keystone-setup is allowed to
+ # run as well.
+ heat-keystone-setup-domain \
+ --stack-user-domain-name heat_user_domain \
+ --stack-domain-admin heat_domain_admin \
+ --stack-domain-admin-password ${HEAT_DOMAIN_PASS}
+fi
+
+exec /usr/bin/heat-engine
diff --git a/docker/common/heat/heat-engine/start.sh b/docker/common/heat/heat-engine/start.sh
index 0cafbc480..155a0f46c 100755
--- a/docker/common/heat/heat-engine/start.sh
+++ b/docker/common/heat/heat-engine/start.sh
@@ -1,28 +1,20 @@
#!/bin/bash
+set -o errexit
-. /opt/kolla/kolla-common.sh
-. /opt/kolla/config-heat.sh
-. /openrc
+CMD="/usr/bin/heat-engine"
+ARGS=""
-check_required_vars HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD \
- INIT_HEAT_DB HEAT_DOMAIN_PASS
-fail_unless_db
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-if [ "${INIT_HEAT_DB}" == "true" ]; then
- mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
-CREATE DATABASE IF NOT EXISTS ${HEAT_DB_NAME} DEFAULT CHARACTER SET utf8;
-GRANT ALL PRIVILEGES ON ${HEAT_DB_NAME}.* TO
- '${HEAT_DB_USER}'@'%' IDENTIFIED BY '${HEAT_DB_PASSWORD}'
-EOF
+# Config-internal script exec out of this function, it does not return here.
+set_configs
- /usr/bin/heat-manage db_sync
-
- # If the database needs to be created, assume keystone-setup is allowed to
- # run as well.
- heat-keystone-setup-domain \
- --stack-user-domain-name heat_user_domain \
- --stack-domain-admin heat_domain_admin \
- --stack-domain-admin-password ${HEAT_DOMAIN_PASS}
+# 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/bash -c "/usr/bin/heat-manage db_sync" heat
+ exit 0
fi
-exec /usr/bin/heat-engine
+exec $CMD $ARGS