diff --git a/README.md b/README.md index 7c1c3e7edf..3d52602d37 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ services: * Ceilometer * Horizon * Zaqar +* Magnum ``` $ sudo docker search kollaglue diff --git a/compose/magnum-api-conductor.yml b/compose/magnum-api-conductor.yml new file mode 100644 index 0000000000..b7da90ef44 --- /dev/null +++ b/compose/magnum-api-conductor.yml @@ -0,0 +1,14 @@ +magnumapi: + image: kollaglue/centos-rdo-magnum-api:kilo + name: magnum-api + net: "host" + restart: always + env_file: + - openstack.env +magnumconductor: + image: kollaglue/centos-rdo-magnum-conductor:kilo + name: magnum-conductor + net: "host" + restart: always + env_file: + - openstack.env diff --git a/docker/magnum/magnum-api/Dockerfile b/docker/magnum/magnum-api/Dockerfile new file mode 100644 index 0000000000..84efa2a92d --- /dev/null +++ b/docker/magnum/magnum-api/Dockerfile @@ -0,0 +1,11 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%magnum-base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +RUN yum -y install \ + openstack-magnum-api \ + && yum clean all + +ADD ./start.sh /start.sh +ADD ./check.sh /check.sh + +CMD ["/start.sh"] diff --git a/docker/magnum/magnum-api/build b/docker/magnum/magnum-api/build new file mode 120000 index 0000000000..43944faa00 --- /dev/null +++ b/docker/magnum/magnum-api/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/magnum/magnum-api/check.sh b/docker/magnum/magnum-api/check.sh new file mode 100755 index 0000000000..ee03dc6d23 --- /dev/null +++ b/docker/magnum/magnum-api/check.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +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/magnum/magnum-api/start.sh b/docker/magnum/magnum-api/start.sh new file mode 100755 index 0000000000..00a51b3cdf --- /dev/null +++ b/docker/magnum/magnum-api/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e + +. /opt/kolla/kolla-common.sh +. /opt/kolla/config-magnum.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + MAGNUM_KEYSTONE_USER MAGNUM_KEYSTONE_PASSWORD \ + KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \ + MAGNUM_API_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \ + MAGNUM_API_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 ${MAGNUM_KEYSTONE_USER} \ + -p ${MAGNUM_KEYSTONE_PASSWORD} \ + -t ${ADMIN_TENANT_NAME} \ + -r admin + +crux endpoint-create --remove-all -n ${MAGNUM_KEYSTONE_USER} -t container \ + -I "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ + -P "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" \ + -A "${KEYSTONE_AUTH_PROTOCOL}://${MAGNUM_API_SERVICE_HOST}:${MAGNUM_API_SERVICE_PORT}/v1" + +exec /usr/bin/magnum-api diff --git a/docker/magnum/magnum-base/Dockerfile b/docker/magnum/magnum-base/Dockerfile new file mode 100644 index 0000000000..c9c3db08b7 --- /dev/null +++ b/docker/magnum/magnum-base/Dockerfile @@ -0,0 +1,9 @@ +FROM %%KOLLA_NAMESPACE%%/%%KOLLA_PREFIX%%base:%%KOLLA_TAG%% +MAINTAINER Kolla Project (https://launchpad.net/kolla) + +# Magnum is not yet in upstream RDO packaging + +RUN curl https://copr.fedoraproject.org/coprs/sdake/openstack-magnum/repo/epel-7/sdake-openstack-magnum-epel-7.repo -o /etc/yum.repos.d/sdake-openstack-magnum-epel-7.repo + +RUN mkdir -p /opt/kolla +COPY config-magnum.sh /opt/kolla/config-magnum.sh diff --git a/docker/magnum/magnum-base/build b/docker/magnum/magnum-base/build new file mode 120000 index 0000000000..43944faa00 --- /dev/null +++ b/docker/magnum/magnum-base/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/magnum/magnum-base/config-magnum.sh b/docker/magnum/magnum-base/config-magnum.sh new file mode 100755 index 0000000000..03599d359e --- /dev/null +++ b/docker/magnum/magnum-base/config-magnum.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +. /opt/kolla/kolla-common.sh + +check_required_vars MAGNUM_DB_PASSWORD MAGNUM_KEYSTONE_PASSWORD \ + KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_PUBLIC_SERVICE_PORT \ + MAGNUM_KEYSTONE_USER ADMIN_TENANT_NAME \ + MAGNUM_DB_USER MAGNUM_DB_NAME KEYSTONE_AUTH_PROTOCOL \ + KEYSTONE_PUBLIC_SERVICE_PORT RABBITMQ_SERVICE_HOST \ + VERBOSE_LOGGING DEBUG_LOGGING + +fail_unless_db +dump_vars + +cat > /openrc < - The RabbitMQ user name RABBIT_PASSWORD= - The RabbitMQ password RABBIT_USERID= - The RabbitMQ user id on the host + MAGNUM_DB_NAME= - The Magnum database name + MAGNUM_DB_PASSWORD= - The Magnum database password + MAGNUM_KEYSTONE_PASSWORD= - The Magnum keystone password + MAGNUM_API_SERVICE_HOST= - The Magnum Host IP address + MAGNUM_API_SERVICE_PORT=<9511> - The Magnum port + [Minimum environment variable setup guide.](https://github.com/stackforge/kolla/blob/master/docs/minimal-environment-vars.md) diff --git a/tools/genenv b/tools/genenv index ecd648e5a5..483c792ddc 100755 --- a/tools/genenv +++ b/tools/genenv @@ -117,6 +117,13 @@ HEAT_API_SERVICE_HOST=$HOST_IP HEAT_API_CFN_SERVICE_HOST=$HOST_IP HEAT_API_CFN_URL_HOST=$HOST_IP +# Magnum +MAGNUM_DB_NAME=magnum +MAGNUM_DB_PASSWORD=kolla +MAGNUM_KEYSTONE_PASSWORD=magnum +MAGNUM_API_SERVICE_HOST=$HOST_IP +MAGNUM_API_SERVICE_PORT=9511 + cat > ./openrc <