summaryrefslogtreecommitdiff
path: root/docker/heat/heat-api
diff options
context:
space:
mode:
Diffstat (limited to 'docker/heat/heat-api')
-rw-r--r--docker/heat/heat-api/Dockerfile18
-rwxr-xr-xdocker/heat/heat-api/check.sh16
-rwxr-xr-x[-rw-r--r--]docker/heat/heat-api/start.sh33
3 files changed, 52 insertions, 15 deletions
diff --git a/docker/heat/heat-api/Dockerfile b/docker/heat/heat-api/Dockerfile
index 44ff6ed93..2bb25e45e 100644
--- a/docker/heat/heat-api/Dockerfile
+++ b/docker/heat/heat-api/Dockerfile
@@ -1,14 +1,14 @@
-FROM kollaglue/fedora-rdo-base
-MAINTAINER James Labocki <jlabocki@redhat.com>
+FROM kollaglue/fedora-rdo-heat-base
+MAINTAINER Jeff Peeler <jpeeler@redhat.com>
-RUN yum install -y openstack-heat-api \
- openstack-heat-api-cfn \
- openstack-heat-common \
- openstack-heat-api-cloudwatch \
- openstack-utils \
- python-openstackclient \
- && yum clean all
+# TODO: configure cfn and cloudwatch
+# TODO: remove python-openstackclient once crux feature is added in start.sh
+RUN yum -y install \
+ openstack-heat-api \
+ python-openstackclient \
+ ; yum clean all
ADD ./start.sh /start.sh
+ADD ./check.sh /check.sh
CMD ["/start.sh"]
diff --git a/docker/heat/heat-api/check.sh b/docker/heat/heat-api/check.sh
new file mode 100755
index 000000000..eab8ee59b
--- /dev/null
+++ b/docker/heat/heat-api/check.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+RES=0
+
+. /openrc
+if ! keystone token-get > /dev/null; then
+ echo "ERROR: keystone token-get failed" >&2
+ RES=1
+else
+ if ! heat stack-list > /dev/null; then
+ echo "ERROR: heat stack-list failed" >&2
+ RES=1
+ fi
+fi
+
+exit $RES
diff --git a/docker/heat/heat-api/start.sh b/docker/heat/heat-api/start.sh
index 8f73ae3e2..b6565c207 100644..100755
--- a/docker/heat/heat-api/start.sh
+++ b/docker/heat/heat-api/start.sh
@@ -1,13 +1,34 @@
#!/bin/bash
set -e
-: ${IP_ADDRESS:=$IP_ADDRESS}
+. /opt/kolla/kolla-common.sh
+. /opt/kolla/config-heat.sh
-if [ -z "$IP_ADDRESS" ]; then
- echo >&2 'error: IP_ADDRESS is not set.'
- echo >&2 ' Be sure to set IP_ADDRESS so it can be placed in heat configurations'
- exit 1
-fi
+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
+check_for_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"
+
+#crux endpoint-create --remove-all -n ${HEAT_KEYSTONE_USER} -t cloudformation \
+# -I "http://${HEAT_CFN_API_SERVICE_HOST}:8000/v1" \
+# -P "http://${PUBLIC_IP}:8000/v1" \
+# -A "http://${HEAT_CFN_API_SERVICE_HOST}:8000/v1"
+
+# 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