diff --git a/docker/nova-controller/nova-api/Dockerfile b/docker/nova-controller/nova-api/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..d43db5840502b52a62da7eec52da30a265913b94 --- /dev/null +++ b/docker/nova-controller/nova-api/Dockerfile @@ -0,0 +1,8 @@ +FROM kollaglue/fedora-rdo-nova-controller +MAINTAINER Ryan Hallisey <rhallise@redhat.com> + +RUN yum -y install \ + openstack-nova-api && yum clean all + +ADD ./start.sh /start.sh +CMD ["/start.sh"] diff --git a/docker/nova-controller/nova-api/build b/docker/nova-controller/nova-api/build new file mode 120000 index 0000000000000000000000000000000000000000..43944faa006f278c2090cfeeb7397fc7cd1fc6a4 --- /dev/null +++ b/docker/nova-controller/nova-api/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/nova-controller/nova-api/start.sh b/docker/nova-controller/nova-api/start.sh new file mode 100644 index 0000000000000000000000000000000000000000..ed2c11109c3342a1c41b3494abf8cc665374c0ed --- /dev/null +++ b/docker/nova-controller/nova-api/start.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +: ${NOVA_DB_USER:=nova} +: ${NOVA_DB_NAME:=nova} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${NOVA_KEYSTONE_USER:=admin} +: ${NOVA_ADMIN_PASSWORD:=kolla} +: ${ADMIN_TENANT_NAME:=admin} + +if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then + echo "*** Missing KEYSTONE_ADMIN_TOKEN" >&2 + exit 1 +fi + +if ! [ "$DB_ROOT_PASSWORD" ]; then + echo "*** Missing DB_ROOT_PASSWORD" >&2 + exit 1 +fi + +if ! [ "$NOVA_DB_PASSWORD" ]; then + NOVA_DB_PASSWORD=$(openssl rand -hex 15) + export NOVA_DB_PASSWORD +fi + +sh /opt/nova/config-nova.sh api + +mysql -h ${MARIADBMASTER_PORT_3306_TCP_ADDR} -u root \ + -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${NOVA_DB_NAME}; +GRANT ALL PRIVILEGES ON nova* TO + '${NOVA_DB_USER}'@'%' IDENTIFIED BY '${NOVA_DB_PASSWORD}' +EOF + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONEMASTER_35357_PORT_35357_TCP_ADDR}:35357/v2.0" + +/usr/bin/keystone user-create --name ${NOVA_KEYSTONE_USER} --pass ${NOVA_ADMIN_PASSWORD} +/usr/bin/keystone role-create --name ${NOVA_KEYSTONE_USER} +/usr/bin/keystone user-role-add --user ${NOVA_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} + +exec /usr/bin/nova-api diff --git a/docker/nova-controller/nova-conductor/Dockerfile b/docker/nova-controller/nova-conductor/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..32d1e71ee76db5c47be9239b887594b919621062 --- /dev/null +++ b/docker/nova-controller/nova-conductor/Dockerfile @@ -0,0 +1,8 @@ +FROM kollaglue/fedora-rdo-nova-controller +MAINTAINER Ryan Hallisey <rhallisey@redhat.com> + +RUN yum -y install \ + openstack-nova-conductor && yum clean all + +ADD ./start.sh /start.sh +CMD ["/start.sh"] diff --git a/docker/nova-controller/nova-conductor/build b/docker/nova-controller/nova-conductor/build new file mode 120000 index 0000000000000000000000000000000000000000..43944faa006f278c2090cfeeb7397fc7cd1fc6a4 --- /dev/null +++ b/docker/nova-controller/nova-conductor/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/nova-controller/nova-conductor/start.sh b/docker/nova-controller/nova-conductor/start.sh new file mode 100644 index 0000000000000000000000000000000000000000..38775c3d82ae8724fb463497f0abdcbb7205fd00 --- /dev/null +++ b/docker/nova-controller/nova-conductor/start.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +: ${NOVA_DB_USER:=nova} +: ${NOVA_DB_NAME:=nova} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${NOVA_KEYSTONE_USER:=admin} +: ${NOVA_ADMIN_PASSWORD:=kolla} +: ${ADMIN_TENANT_NAME:=admin} + +if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then + echo "*** Missing KEYSTONE_ADMIN_TOKEN" >&2 + exit 1 +fi + +if ! [ "$DB_ROOT_PASSWORD" ]; then + echo "*** Missing DB_ROOT_PASSWORD" >&2 + exit 1 +fi + +if ! [ "$NOVA_DB_PASSWORD" ]; then + NOVA_DB_PASSWORD=$(openssl rand -hex 15) + export NOVA_DB_PASSWORD +fi + +sh /opt/nova/config-nova.sh conductor + +mysql -h ${MARIADBMASTER_PORT_3306_TCP_ADDR} -u root \ + -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${NOVA_DB_NAME}; +GRANT ALL PRIVILEGES ON nova* TO + '${NOVA_DB_USER}'@'%' IDENTIFIED BY '${NOVA_DB_PASSWORD}' +EOF + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONEMASTER_35357_PORT_35357_TCP_ADDR}:35357/v2.0" + +/usr/bin/keystone user-create --name ${NOVA_KEYSTONE_USER} --pass ${NOVA_ADMIN_PASSWORD} +/usr/bin/keystone role-create --name ${NOVA_KEYSTONE_USER} +/usr/bin/keystone user-role-add --user ${NOVA_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} + +exec /usr/bin/nova-conductor diff --git a/docker/nova-controller/nova-controller.json b/docker/nova-controller/nova-controller.json new file mode 100644 index 0000000000000000000000000000000000000000..5faae5ca9c248d74f1d1ddb5468729b108d98285 --- /dev/null +++ b/docker/nova-controller/nova-controller.json @@ -0,0 +1,98 @@ +{ + "id": "nova", + "desiredState": { + "manifest": { + "version": "v1beta1", + "id": "nova-1", + "containers": [ + { + "name": "nova-controller", + "image": "kollaglue/fedora-rdo-nova-controller", + "ports": [ + {"containerPort": 9292} + ], + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "NOVA_DB_PASSWORD", + "value": "novadbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + } + ] + }, + { + "name": "nova-conductor", + "image": "kollaglue/fedora-rdo-nova-conductor", + "ports": [ + {"containerPort": 9292} + ], + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "NOVA_DB_PASSWORD", + "value": "novadbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + } + ] + }, + { + "name": "nova-scheduler", + "image": "kollaglue/fedora-rdo-nova-scheduler", + "ports": [ + {"containerPort": 9292} + ], + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "NOVA_DB_PASSWORD", + "value": "novadbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + } + ] + }, + { + "name": "nova-api", + "image": "kollaglue/fedora-rdo-nova-api", + "ports": [ + {"containerPort": 9292} + ], + "env": [ + { + "name": "DB_ROOT_PASSWORD", + "value": "password" + }, + { + "name": "NOVA_DB_PASSWORD", + "value": "novadbpassword" + }, + { + "name": "KEYSTONE_ADMIN_TOKEN", + "value": "ADMINTOKEN" + } + ] + } + ] + } + }, + "labels": { + "name": "nova-controller" + } +} diff --git a/docker/nova-controller/nova-controller/Dockerfile b/docker/nova-controller/nova-controller/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2790348244fc2bf459ff779bf25882ba22bce76d --- /dev/null +++ b/docker/nova-controller/nova-controller/Dockerfile @@ -0,0 +1,8 @@ +FROM kollaglue/fedora-rdo-base +MAINTAINER Ryan Hallisey <rhallisey@redhat.com> + +RUN yum -y install openstack-nova-common \ + install python-keystoneclient \ + install python-nova \ + install python-oslo-messaging \ + install python-websockify && yum clean all diff --git a/docker/nova-controller/nova-controller/build b/docker/nova-controller/nova-controller/build new file mode 120000 index 0000000000000000000000000000000000000000..43944faa006f278c2090cfeeb7397fc7cd1fc6a4 --- /dev/null +++ b/docker/nova-controller/nova-controller/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/nova-controller/nova-scheduler/Dockerfile b/docker/nova-controller/nova-scheduler/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..8b28875fc07c4e428a21b547fb9ae036cb39cedd --- /dev/null +++ b/docker/nova-controller/nova-scheduler/Dockerfile @@ -0,0 +1,8 @@ +FROM kollaglue/fedora-rdo-nova-controller +MAINTAINER Ryan Hallisey <rhallise@redhat.com> + +RUN yum -y install \ + openstack-nova-scheduler && yum clean all + +ADD ./start.sh /start.sh +CMD ["/start.sh"] diff --git a/docker/nova-controller/nova-scheduler/build b/docker/nova-controller/nova-scheduler/build new file mode 120000 index 0000000000000000000000000000000000000000..43944faa006f278c2090cfeeb7397fc7cd1fc6a4 --- /dev/null +++ b/docker/nova-controller/nova-scheduler/build @@ -0,0 +1 @@ +../../../tools/build-docker-image \ No newline at end of file diff --git a/docker/nova-controller/nova-scheduler/start.sh b/docker/nova-controller/nova-scheduler/start.sh new file mode 100644 index 0000000000000000000000000000000000000000..8ca13b66ecc96dee263329d94ec3ef31071e96aa --- /dev/null +++ b/docker/nova-controller/nova-scheduler/start.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +: ${NOVA_DB_USER:=nova} +: ${NOVA_DB_NAME:=nova} +: ${KEYSTONE_AUTH_PROTOCOL:=http} +: ${NOVA_KEYSTONE_USER:=admin} +: ${NOVA_ADMIN_PASSWORD:=kolla} +: ${ADMIN_TENANT_NAME:=admin} + +if ! [ "$KEYSTONE_ADMIN_TOKEN" ]; then + echo "*** Missing KEYSTONE_ADMIN_TOKEN" >&2 + exit 1 +fi + +if ! [ "$DB_ROOT_PASSWORD" ]; then + echo "*** Missing DB_ROOT_PASSWORD" >&2 + exit 1 +fi + +if ! [ "$NOVA_DB_PASSWORD" ]; then + NOVA_DB_PASSWORD=$(openssl rand -hex 15) + export NOVA_DB_PASSWORD +fi + +sh /opt/nova/config-nova.sh scheduler + +mysql -h ${MARIADBMASTER_PORT_3306_TCP_ADDR} -u root \ + -p${DB_ROOT_PASSWORD} mysql <<EOF +CREATE DATABASE IF NOT EXISTS ${NOVA_DB_NAME}; +GRANT ALL PRIVILEGES ON nova* TO + '${NOVA_DB_USER}'@'%' IDENTIFIED BY '${NOVA_DB_PASSWORD}' +EOF + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONEMASTER_35357_PORT_35357_TCP_ADDR}:35357/v2.0" + +/usr/bin/keystone user-create --name ${NOVA_KEYSTONE_USER} --pass ${NOVA_ADMIN_PASSWORD} +/usr/bin/keystone role-create --name ${NOVA_KEYSTONE_USER} +/usr/bin/keystone user-role-add --user ${NOVA_KEYSTONE_USER} --role admin --tenant ${ADMIN_TENANT_NAME} + +exec /usr/bin/nova-scheduler