diff options
Diffstat (limited to 'docker/heat/heat-api')
| -rw-r--r-- | docker/heat/heat-api/Dockerfile | 18 | ||||
| -rwxr-xr-x | docker/heat/heat-api/check.sh | 16 | ||||
| -rwxr-xr-x[-rw-r--r--] | docker/heat/heat-api/start.sh | 33 |
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 |
