aboutsummaryrefslogtreecommitdiff
path: root/docker/common/nova-controller
diff options
context:
space:
mode:
authorHarm Weites <harm@weites.com>2015-07-02 14:24:33 +0200
committerHarm Weites <harm@weites.com>2015-07-02 21:02:13 +0200
commit9970519b4ed752b4a33e6125d1d09d51b75b8c5b (patch)
treee547a6df05accdf477b2f1fec3b1113594468865 /docker/common/nova-controller
parent3a4500c1220f11aa01faabf3ae4e74b6697861c0 (diff)
downloadkolla-9970519b4ed752b4a33e6125d1d09d51b75b8c5b.tar.gz
kolla-9970519b4ed752b4a33e6125d1d09d51b75b8c5b.zip
Add config-internal/config-external to Nova-controller containers
Partially Implements: Blueprint standard-start Change-Id: I40a863161bee779a944e9388a1ad7d5d0e7adba7
Diffstat (limited to 'docker/common/nova-controller')
-rwxr-xr-xdocker/common/nova-controller/nova-api/config-external.sh10
-rwxr-xr-xdocker/common/nova-controller/nova-api/config-internal.sh46
-rwxr-xr-xdocker/common/nova-controller/nova-api/start.sh49
-rwxr-xr-xdocker/common/nova-controller/nova-conductor/config-external.sh10
-rwxr-xr-xdocker/common/nova-controller/nova-conductor/config-internal.sh26
-rwxr-xr-xdocker/common/nova-controller/nova-conductor/start.sh32
-rwxr-xr-xdocker/common/nova-controller/nova-consoleauth/config-external.sh10
-rwxr-xr-xdocker/common/nova-controller/nova-consoleauth/config-internal.sh11
-rwxr-xr-xdocker/common/nova-controller/nova-consoleauth/start.sh14
-rwxr-xr-xdocker/common/nova-controller/nova-novncproxy/config-external.sh10
-rwxr-xr-xdocker/common/nova-controller/nova-novncproxy/config-internal.sh22
-rwxr-xr-xdocker/common/nova-controller/nova-novncproxy/start.sh25
-rwxr-xr-xdocker/common/nova-controller/nova-scheduler/config-external.sh10
-rwxr-xr-xdocker/common/nova-controller/nova-scheduler/config-internal.sh15
-rwxr-xr-xdocker/common/nova-controller/nova-scheduler/start.sh18
15 files changed, 215 insertions, 93 deletions
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 000000000..d0859893d
--- /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 000000000..7928370a4
--- /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 7928370a4..0737ba0b7 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 000000000..ea3b123ec
--- /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 000000000..3bba8cf3a
--- /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 <<EOF
+CREATE DATABASE IF NOT EXISTS ${NOVA_DB_NAME};
+GRANT ALL PRIVILEGES ON ${NOVA_DB_NAME}.* TO
+ '${NOVA_DB_USER}'@'%' IDENTIFIED BY '${NOVA_DB_PASSWORD}'
+EOF
+
+ nova-manage db sync
+fi
+
+exec /usr/bin/nova-conductor --config-file /etc/nova/nova.conf
diff --git a/docker/common/nova-controller/nova-conductor/start.sh b/docker/common/nova-controller/nova-conductor/start.sh
index 3bba8cf3a..e3a322719 100755
--- a/docker/common/nova-controller/nova-conductor/start.sh
+++ b/docker/common/nova-controller/nova-conductor/start.sh
@@ -1,26 +1,20 @@
#!/bin/bash
+set -o errexit
-set -e
+CMD="/usr/bin/nova-conductor"
+ARGS=""
-. /opt/kolla/config-nova.sh
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD \
- INIT_NOVA_DB
-fail_unless_db
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-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 <<EOF
-CREATE DATABASE IF NOT EXISTS ${NOVA_DB_NAME};
-GRANT ALL PRIVILEGES ON ${NOVA_DB_NAME}.* TO
- '${NOVA_DB_USER}'@'%' IDENTIFIED BY '${NOVA_DB_PASSWORD}'
-EOF
-
- nova-manage db sync
+# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
+# of the KOLLA_BOOTSTRAP variable being set, including empty.
+if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
+ su -s /bin/sh -c "nova-manage db sync" nova
+ exit 0
fi
-exec /usr/bin/nova-conductor --config-file /etc/nova/nova.conf
+exec $CMD $ARGS
diff --git a/docker/common/nova-controller/nova-consoleauth/config-external.sh b/docker/common/nova-controller/nova-consoleauth/config-external.sh
new file mode 100755
index 000000000..1da10d83f
--- /dev/null
+++ b/docker/common/nova-controller/nova-consoleauth/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/nova-consoleauth/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-consoleauth/config-internal.sh b/docker/common/nova-controller/nova-consoleauth/config-internal.sh
new file mode 100755
index 000000000..a1b0864ac
--- /dev/null
+++ b/docker/common/nova-controller/nova-consoleauth/config-internal.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+set -e
+
+. /opt/kolla/config-nova.sh
+
+cfg=/etc/nova/nova.conf
+
+crudini --set $cfg DEFAULT log_file "${NOVA_CONSOLEAUTH_LOG_FILE}"
+
+echo Starting nova-consoleauth
+exec /usr/bin/nova-consoleauth
diff --git a/docker/common/nova-controller/nova-consoleauth/start.sh b/docker/common/nova-controller/nova-consoleauth/start.sh
index a1b0864ac..88f1b7a6b 100755
--- a/docker/common/nova-controller/nova-consoleauth/start.sh
+++ b/docker/common/nova-controller/nova-consoleauth/start.sh
@@ -1,11 +1,13 @@
#!/bin/bash
-set -e
+set -o errexit
-. /opt/kolla/config-nova.sh
+CMD="/usr/bin/nova-consoleauth"
+ARGS=""
-cfg=/etc/nova/nova.conf
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-crudini --set $cfg DEFAULT log_file "${NOVA_CONSOLEAUTH_LOG_FILE}"
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-echo Starting nova-consoleauth
-exec /usr/bin/nova-consoleauth
+exec $CMD $ARGS
diff --git a/docker/common/nova-controller/nova-novncproxy/config-external.sh b/docker/common/nova-controller/nova-novncproxy/config-external.sh
new file mode 100755
index 000000000..fdc33a5bd
--- /dev/null
+++ b/docker/common/nova-controller/nova-novncproxy/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/nova-novncproxy/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-novncproxy/config-internal.sh b/docker/common/nova-controller/nova-novncproxy/config-internal.sh
new file mode 100755
index 000000000..9edafbca3
--- /dev/null
+++ b/docker/common/nova-controller/nova-novncproxy/config-internal.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+set -e
+. /opt/kolla/kolla-common.sh
+
+cfg=/etc/nova/nova.conf
+
+check_required_vars PUBLIC_IP NOVA_NOVNC_PROXY_SERVICE_HOST NOVA_NOVNC_PROXY_PORT \
+ NOVA_NOVNC_BASE_ADDRESS NOVA_VNCSERVER_LISTEN_ADDRESS \
+ NOVA_VNCSERVER_PROXYCLIENT_ADDRESS
+
+crudini --set $cfg DEFAULT log_file "${NOVA_NOVNCPROXY_LOG_FILE}"
+
+# Listen on all interfaces on port $NOVA_NOVNC_PROXY_PORT for incoming novnc
+# requests.
+# The base_url is given to clients to connect to, like Horizon, so this could
+# very well be fancy DNS name.
+echo Configuring VNC...
+crudini --set $cfg DEFAULT vncserver_listen "${NOVA_VNCSERVER_LISTEN_ADDRESS}"
+crudini --set $cfg DEFAULT vncserver_proxyclient_address "${NOVA_VNCSERVER_PROXYCLIENT_ADDRESS}"
+
+echo Starting nova-novncproxy
+exec /usr/bin/nova-novncproxy
diff --git a/docker/common/nova-controller/nova-novncproxy/start.sh b/docker/common/nova-controller/nova-novncproxy/start.sh
index 9edafbca3..aec5ce759 100755
--- a/docker/common/nova-controller/nova-novncproxy/start.sh
+++ b/docker/common/nova-controller/nova-novncproxy/start.sh
@@ -1,22 +1,13 @@
#!/bin/bash
-set -e
-. /opt/kolla/kolla-common.sh
+set -o errexit
-cfg=/etc/nova/nova.conf
+CMD="/usr/bin/nova-novncproxy"
+ARGS=""
-check_required_vars PUBLIC_IP NOVA_NOVNC_PROXY_SERVICE_HOST NOVA_NOVNC_PROXY_PORT \
- NOVA_NOVNC_BASE_ADDRESS NOVA_VNCSERVER_LISTEN_ADDRESS \
- NOVA_VNCSERVER_PROXYCLIENT_ADDRESS
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-crudini --set $cfg DEFAULT log_file "${NOVA_NOVNCPROXY_LOG_FILE}"
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-# Listen on all interfaces on port $NOVA_NOVNC_PROXY_PORT for incoming novnc
-# requests.
-# The base_url is given to clients to connect to, like Horizon, so this could
-# very well be fancy DNS name.
-echo Configuring VNC...
-crudini --set $cfg DEFAULT vncserver_listen "${NOVA_VNCSERVER_LISTEN_ADDRESS}"
-crudini --set $cfg DEFAULT vncserver_proxyclient_address "${NOVA_VNCSERVER_PROXYCLIENT_ADDRESS}"
-
-echo Starting nova-novncproxy
-exec /usr/bin/nova-novncproxy
+exec $CMD $ARGS
diff --git a/docker/common/nova-controller/nova-scheduler/config-external.sh b/docker/common/nova-controller/nova-scheduler/config-external.sh
new file mode 100755
index 000000000..3df0f9b7b
--- /dev/null
+++ b/docker/common/nova-controller/nova-scheduler/config-external.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+SOURCE="/opt/kolla/nova-scheduler/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-scheduler/config-internal.sh b/docker/common/nova-controller/nova-scheduler/config-internal.sh
new file mode 100755
index 000000000..504c049ed
--- /dev/null
+++ b/docker/common/nova-controller/nova-scheduler/config-internal.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+set -e
+
+. /opt/kolla/config-nova.sh
+
+check_required_vars NOVA_DB_NAME
+fail_unless_db $NOVA_DB_NAME
+
+cfg=/etc/nova/nova.conf
+
+# configure logging
+crudini --set $cfg DEFAULT log_file "${NOVA_SCHEDULER_LOG_FILE}"
+
+exec /usr/bin/nova-scheduler --config-file /etc/nova/nova.conf
diff --git a/docker/common/nova-controller/nova-scheduler/start.sh b/docker/common/nova-controller/nova-scheduler/start.sh
index 504c049ed..a578b95a6 100755
--- a/docker/common/nova-controller/nova-scheduler/start.sh
+++ b/docker/common/nova-controller/nova-scheduler/start.sh
@@ -1,15 +1,13 @@
#!/bin/bash
+set -o errexit
-set -e
+CMD="/usr/bin/nova-scheduler"
+ARGS=""
-. /opt/kolla/config-nova.sh
+# Loading common functions.
+source /opt/kolla/kolla-common.sh
-check_required_vars NOVA_DB_NAME
-fail_unless_db $NOVA_DB_NAME
+# Config-internal script exec out of this function, it does not return here.
+set_configs
-cfg=/etc/nova/nova.conf
-
-# configure logging
-crudini --set $cfg DEFAULT log_file "${NOVA_SCHEDULER_LOG_FILE}"
-
-exec /usr/bin/nova-scheduler --config-file /etc/nova/nova.conf
+exec $CMD $ARGS