From 9970519b4ed752b4a33e6125d1d09d51b75b8c5b Mon Sep 17 00:00:00 2001 From: Harm Weites Date: Thu, 2 Jul 2015 14:24:33 +0200 Subject: [PATCH] Add config-internal/config-external to Nova-controller containers Partially Implements: Blueprint standard-start Change-Id: I40a863161bee779a944e9388a1ad7d5d0e7adba7 --- .../nova-controller/nova-api/Dockerfile | 2 + .../nova-api/config-external.sh | 1 + .../nova-api/config-internal.sh | 1 + .../nova-controller/nova-conductor/Dockerfile | 3 ++ .../nova-conductor/config-external.sh | 1 + .../nova-conductor/config-internal.sh | 1 + .../nova-consoleauth/Dockerfile | 2 + .../nova-consoleauth/config-external.sh | 1 + .../nova-consoleauth/config-internal.sh | 1 + .../nova-novncproxy/Dockerfile | 2 + .../nova-novncproxy/config-external.sh | 1 + .../nova-novncproxy/config-internal.sh | 1 + .../nova-controller/nova-scheduler/Dockerfile | 3 ++ .../nova-scheduler/config-external.sh | 1 + .../nova-scheduler/config-internal.sh | 1 + .../nova-api/config-external.sh | 10 ++++ .../nova-api/config-internal.sh | 46 +++++++++++++++++ .../common/nova-controller/nova-api/start.sh | 49 +++---------------- .../nova-conductor/config-external.sh | 10 ++++ .../nova-conductor/config-internal.sh | 26 ++++++++++ .../nova-controller/nova-conductor/start.sh | 32 +++++------- .../nova-consoleauth/config-external.sh | 10 ++++ .../nova-consoleauth/config-internal.sh | 11 +++++ .../nova-controller/nova-consoleauth/start.sh | 14 +++--- .../nova-novncproxy/config-external.sh | 10 ++++ .../nova-novncproxy/config-internal.sh | 22 +++++++++ .../nova-controller/nova-novncproxy/start.sh | 25 +++------- .../nova-scheduler/config-external.sh | 10 ++++ .../nova-scheduler/config-internal.sh | 15 ++++++ .../nova-controller/nova-scheduler/start.sh | 18 +++---- 30 files changed, 237 insertions(+), 93 deletions(-) create mode 120000 docker/centos/binary/nova-controller/nova-api/config-external.sh create mode 120000 docker/centos/binary/nova-controller/nova-api/config-internal.sh create mode 120000 docker/centos/binary/nova-controller/nova-conductor/config-external.sh create mode 120000 docker/centos/binary/nova-controller/nova-conductor/config-internal.sh create mode 120000 docker/centos/binary/nova-controller/nova-consoleauth/config-external.sh create mode 120000 docker/centos/binary/nova-controller/nova-consoleauth/config-internal.sh create mode 120000 docker/centos/binary/nova-controller/nova-novncproxy/config-external.sh create mode 120000 docker/centos/binary/nova-controller/nova-novncproxy/config-internal.sh create mode 120000 docker/centos/binary/nova-controller/nova-scheduler/config-external.sh create mode 120000 docker/centos/binary/nova-controller/nova-scheduler/config-internal.sh create mode 100755 docker/common/nova-controller/nova-api/config-external.sh create mode 100755 docker/common/nova-controller/nova-api/config-internal.sh create mode 100755 docker/common/nova-controller/nova-conductor/config-external.sh create mode 100755 docker/common/nova-controller/nova-conductor/config-internal.sh create mode 100755 docker/common/nova-controller/nova-consoleauth/config-external.sh create mode 100755 docker/common/nova-controller/nova-consoleauth/config-internal.sh create mode 100755 docker/common/nova-controller/nova-novncproxy/config-external.sh create mode 100755 docker/common/nova-controller/nova-novncproxy/config-internal.sh create mode 100755 docker/common/nova-controller/nova-scheduler/config-external.sh create mode 100755 docker/common/nova-controller/nova-scheduler/config-internal.sh diff --git a/docker/centos/binary/nova-controller/nova-api/Dockerfile b/docker/centos/binary/nova-controller/nova-api/Dockerfile index 7abd32087d..fb0581dcee 100644 --- a/docker/centos/binary/nova-controller/nova-api/Dockerfile +++ b/docker/centos/binary/nova-controller/nova-api/Dockerfile @@ -7,4 +7,6 @@ RUN yum -y install \ ADD ./start.sh /start.sh ADD ./check.sh /check.sh +COPY config-internal.sh config-external.sh /opt/kolla/ + CMD ["/start.sh"] diff --git a/docker/centos/binary/nova-controller/nova-api/config-external.sh b/docker/centos/binary/nova-controller/nova-api/config-external.sh new file mode 120000 index 0000000000..a2a68471d2 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-api/config-external.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-api/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-api/config-internal.sh b/docker/centos/binary/nova-controller/nova-api/config-internal.sh new file mode 120000 index 0000000000..cde9e26459 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-api/config-internal.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-api/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-conductor/Dockerfile b/docker/centos/binary/nova-controller/nova-conductor/Dockerfile index f91113bad9..0f4b104b89 100644 --- a/docker/centos/binary/nova-controller/nova-conductor/Dockerfile +++ b/docker/centos/binary/nova-controller/nova-conductor/Dockerfile @@ -5,4 +5,7 @@ RUN yum -y install \ openstack-nova-conductor && yum clean all ADD ./start.sh /start.sh + +COPY config-internal.sh config-external.sh /opt/kolla/ + CMD ["/start.sh"] diff --git a/docker/centos/binary/nova-controller/nova-conductor/config-external.sh b/docker/centos/binary/nova-controller/nova-conductor/config-external.sh new file mode 120000 index 0000000000..4cb26e83e4 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-conductor/config-external.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-conductor/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-conductor/config-internal.sh b/docker/centos/binary/nova-controller/nova-conductor/config-internal.sh new file mode 120000 index 0000000000..836b544364 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-conductor/config-internal.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-conductor/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-consoleauth/Dockerfile b/docker/centos/binary/nova-controller/nova-consoleauth/Dockerfile index 576c91b5a1..51331353cb 100644 --- a/docker/centos/binary/nova-controller/nova-consoleauth/Dockerfile +++ b/docker/centos/binary/nova-controller/nova-consoleauth/Dockerfile @@ -5,4 +5,6 @@ RUN yum -y install openstack-nova-console && yum clean all ADD start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ + CMD ["/start.sh"] diff --git a/docker/centos/binary/nova-controller/nova-consoleauth/config-external.sh b/docker/centos/binary/nova-controller/nova-consoleauth/config-external.sh new file mode 120000 index 0000000000..78785fe3e1 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-consoleauth/config-external.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-consoleauth/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-consoleauth/config-internal.sh b/docker/centos/binary/nova-controller/nova-consoleauth/config-internal.sh new file mode 120000 index 0000000000..07b75b62db --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-consoleauth/config-internal.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-consoleauth/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-novncproxy/Dockerfile b/docker/centos/binary/nova-controller/nova-novncproxy/Dockerfile index 6826258538..3fb1d31ad2 100644 --- a/docker/centos/binary/nova-controller/nova-novncproxy/Dockerfile +++ b/docker/centos/binary/nova-controller/nova-novncproxy/Dockerfile @@ -7,4 +7,6 @@ RUN yum -y install \ ADD start.sh /start.sh +COPY config-internal.sh config-external.sh /opt/kolla/ + CMD ["/start.sh"] diff --git a/docker/centos/binary/nova-controller/nova-novncproxy/config-external.sh b/docker/centos/binary/nova-controller/nova-novncproxy/config-external.sh new file mode 120000 index 0000000000..8755ef4552 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-novncproxy/config-external.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-novncproxy/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-novncproxy/config-internal.sh b/docker/centos/binary/nova-controller/nova-novncproxy/config-internal.sh new file mode 120000 index 0000000000..ddfde08326 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-novncproxy/config-internal.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-novncproxy/config-internal.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-scheduler/Dockerfile b/docker/centos/binary/nova-controller/nova-scheduler/Dockerfile index 2eec475542..49f34f66b0 100644 --- a/docker/centos/binary/nova-controller/nova-scheduler/Dockerfile +++ b/docker/centos/binary/nova-controller/nova-scheduler/Dockerfile @@ -5,4 +5,7 @@ RUN yum -y install \ openstack-nova-scheduler && yum clean all ADD ./start.sh /start.sh + +COPY config-internal.sh config-external.sh /opt/kolla/ + CMD ["/start.sh"] diff --git a/docker/centos/binary/nova-controller/nova-scheduler/config-external.sh b/docker/centos/binary/nova-controller/nova-scheduler/config-external.sh new file mode 120000 index 0000000000..502d246b03 --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-scheduler/config-external.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-scheduler/config-external.sh \ No newline at end of file diff --git a/docker/centos/binary/nova-controller/nova-scheduler/config-internal.sh b/docker/centos/binary/nova-controller/nova-scheduler/config-internal.sh new file mode 120000 index 0000000000..4b4808a79e --- /dev/null +++ b/docker/centos/binary/nova-controller/nova-scheduler/config-internal.sh @@ -0,0 +1 @@ +../../../../common/nova-controller/nova-scheduler/config-internal.sh \ No newline at end of file diff --git a/docker/common/nova-controller/nova-api/config-external.sh b/docker/common/nova-controller/nova-api/config-external.sh new file mode 100755 index 0000000000..d0859893d9 --- /dev/null +++ b/docker/common/nova-controller/nova-api/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-api/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/nova-controller/nova-api/config-internal.sh b/docker/common/nova-controller/nova-api/config-internal.sh new file mode 100755 index 0000000000..7928370a46 --- /dev/null +++ b/docker/common/nova-controller/nova-api/config-internal.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-nova.sh + +check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ + NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ + ADMIN_TENANT_NAME NOVA_API_SERVICE_HOST \ + NOVA_EC2_API_SERVICE_HOST PUBLIC_IP NOVA_DB_NAME +fail_unless_os_service_running keystone +fail_unless_db $NOVA_DB_NAME + +export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" +export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" + +cfg=/etc/nova/nova.conf + +# configure logging +crudini --set $cfg DEFAULT log_file "${NOVA_API_LOG_FILE}" + +crux user-create --update \ + -n "${NOVA_KEYSTONE_USER}" \ + -p "${NOVA_KEYSTONE_PASSWORD}" \ + -t "${ADMIN_TENANT_NAME}" \ + -r admin + +crux endpoint-create --remove-all \ + -n ec2 -t ec2 \ + -I "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Cloud" \ + -P "http://${PUBLIC_IP}:8773/services/Cloud" \ + -A "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Admin" + +crux endpoint-create --remove-all \ + -n nova -t compute \ + -I "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" \ + -P "http://${PUBLIC_IP}:8774/v2/\$(tenant_id)s" \ + -A "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" + +crux endpoint-create --remove-all \ + -n novav3 -t computev3 \ + -I "http://${NOVA_API_SERVICE_HOST}:8774/v3" \ + -P "http://${PUBLIC_IP}:8774/v3" \ + -A "http://${NOVA_API_SERVICE_HOST}:8774/v3" + +exec /usr/bin/nova-api --config-file /etc/nova/nova.conf diff --git a/docker/common/nova-controller/nova-api/start.sh b/docker/common/nova-controller/nova-api/start.sh index 7928370a46..0737ba0b76 100755 --- a/docker/common/nova-controller/nova-api/start.sh +++ b/docker/common/nova-controller/nova-api/start.sh @@ -1,46 +1,13 @@ #!/bin/bash +set -o errexit -set -e +CMD="/usr/bin/nova-api" +ARGS="" -. /opt/kolla/config-nova.sh +# Loading common functions. +source /opt/kolla/kolla-common.sh -check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \ - NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \ - ADMIN_TENANT_NAME NOVA_API_SERVICE_HOST \ - NOVA_EC2_API_SERVICE_HOST PUBLIC_IP NOVA_DB_NAME -fail_unless_os_service_running keystone -fail_unless_db $NOVA_DB_NAME +# Config-internal script exec out of this function, it does not return here. +set_configs -export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}" -export SERVICE_ENDPOINT="http://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0" - -cfg=/etc/nova/nova.conf - -# configure logging -crudini --set $cfg DEFAULT log_file "${NOVA_API_LOG_FILE}" - -crux user-create --update \ - -n "${NOVA_KEYSTONE_USER}" \ - -p "${NOVA_KEYSTONE_PASSWORD}" \ - -t "${ADMIN_TENANT_NAME}" \ - -r admin - -crux endpoint-create --remove-all \ - -n ec2 -t ec2 \ - -I "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Cloud" \ - -P "http://${PUBLIC_IP}:8773/services/Cloud" \ - -A "http://${NOVA_EC2_API_SERVICE_HOST}:8773/services/Admin" - -crux endpoint-create --remove-all \ - -n nova -t compute \ - -I "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" \ - -P "http://${PUBLIC_IP}:8774/v2/\$(tenant_id)s" \ - -A "http://${NOVA_API_SERVICE_HOST}:8774/v2/\$(tenant_id)s" - -crux endpoint-create --remove-all \ - -n novav3 -t computev3 \ - -I "http://${NOVA_API_SERVICE_HOST}:8774/v3" \ - -P "http://${PUBLIC_IP}:8774/v3" \ - -A "http://${NOVA_API_SERVICE_HOST}:8774/v3" - -exec /usr/bin/nova-api --config-file /etc/nova/nova.conf +exec $CMD $ARGS diff --git a/docker/common/nova-controller/nova-conductor/config-external.sh b/docker/common/nova-controller/nova-conductor/config-external.sh new file mode 100755 index 0000000000..ea3b123ec7 --- /dev/null +++ b/docker/common/nova-controller/nova-conductor/config-external.sh @@ -0,0 +1,10 @@ +#!/bin/bash +SOURCE="/opt/kolla/nova-conductor/nova.conf" +TARGET="/etc/nova/nova.conf" +OWNER="nova" + +if [[ -f "$SOURCE" ]]; then + cp $SOURCE $TARGET + chown ${OWNER}: $TARGET + chmod 0644 $TARGET +fi diff --git a/docker/common/nova-controller/nova-conductor/config-internal.sh b/docker/common/nova-controller/nova-conductor/config-internal.sh new file mode 100755 index 0000000000..3bba8cf3a0 --- /dev/null +++ b/docker/common/nova-controller/nova-conductor/config-internal.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -e + +. /opt/kolla/config-nova.sh + +check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD \ + INIT_NOVA_DB +fail_unless_db + +cfg=/etc/nova/nova.conf + +# configure logging +crudini --set $cfg DEFAULT log_file "${NOVA_CONDUCTOR_LOG_FILE}" + +if [ "${INIT_NOVA_DB}" == "true" ]; then + mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <