From 91ca8d4b00c632bcf7a2a9903aa4cf584fee27e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Andr=C3=A9?= <martin.andre@kvhasia.com>
Date: Mon, 1 Dec 2014 14:50:58 +0900
Subject: [PATCH] Cleanup required variables checks for all containers

This allows Kubernetes to reschedule containers in case a required
variable is missing, for example when the Kubernetes pod is started
before the service.

The checks were cleaned using the following method:
  * remove duplicates
  * remove check for variables that get a default value in the same file
  * check for all variables used in the file
  * check for required services when it is obvious.

Change-Id: Ib7e0530c410c61f828d36efe8925a20dc9781eab
---
 docker/barbican/start.sh                      | 15 +++++--------
 docker/ceilometer/ceilometer-api/start.sh     |  7 +++++-
 .../ceilometer-base/config-ceilometer.sh      |  6 +++--
 docker/ceilometer/ceilometer-central/start.sh |  4 ++--
 docker/ceilometer/ceilometer-compute/start.sh |  4 ++--
 docker/cinder/start.sh                        | 22 ++++++-------------
 docker/glance/glance-base/config-glance.sh    |  4 +++-
 docker/heat/heat-base/config-heat.sh          |  5 ++++-
 docker/heat/heat-engine/start.sh              |  3 +--
 docker/horizon/start.sh                       |  2 --
 docker/keystone/start.sh                      |  3 ++-
 docker/neutron/agents/dhcp/start.sh           |  2 ++
 docker/neutron/agents/l3/start.sh             |  2 ++
 docker/neutron/agents/linux-bridge/start.sh   |  2 ++
 docker/neutron/agents/metadata/start.sh       |  5 +++++
 docker/neutron/neutron-base/config-neutron.sh |  4 +++-
 docker/neutron/neutron-server/start.sh        |  4 +++-
 docker/nova-base/config-nova.sh               |  7 ++++--
 docker/nova-controller/nova-api/start.sh      |  4 ++++
 .../nova-controller/nova-conductor/start.sh   |  1 +
 docker/swift/swift-account/start.sh           | 17 +++++---------
 docker/swift/swift-container/start.sh         | 17 +++++---------
 docker/swift/swift-object/start.sh            | 17 +++++---------
 docker/zaqar/start.sh                         | 10 +++------
 24 files changed, 84 insertions(+), 83 deletions(-)

diff --git a/docker/barbican/start.sh b/docker/barbican/start.sh
index 676374faa0..c90f66c470 100755
--- a/docker/barbican/start.sh
+++ b/docker/barbican/start.sh
@@ -8,21 +8,16 @@ set -e
 : ${BARBICAN_KEYSTONE_USER:=barbican}
 : ${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 ! [ "$BARBICAN_DB_PASSWORD" ]; then
         BARBICAN_DB_PASSWORD=$(openssl rand -hex 15)
         export BARBICAN_DB_PASSWORD
 fi
 
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT BARBICAN_ADMIN_PASSWORD
+check_for_db
+check_for_keystone
+
 mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF
 CREATE DATABASE IF NOT EXISTS ${BARBICAN_DB_NAME};
 GRANT ALL PRIVILEGES ON barbican.* TO
diff --git a/docker/ceilometer/ceilometer-api/start.sh b/docker/ceilometer/ceilometer-api/start.sh
index 8c9acef5fe..1cd6d4c185 100644
--- a/docker/ceilometer/ceilometer-api/start.sh
+++ b/docker/ceilometer/ceilometer-api/start.sh
@@ -5,7 +5,12 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-ceilometer.sh
 
-check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME KEYSTONE_AUTH_PROTOCOL CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD ADMIN_TENANT_NAME METERING_SECRET CEILOMETER_API_SERVICE_HOST PUBLIC_IP
+check_required_vars CEILOMETER_DB_USER CEILOMETER_DB_NAME \
+                    CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT ADMIN_TENANT_NAME \
+                    CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD \
+                    CEILOMETER_API_SERVICE_HOST PUBLIC_IP
 
 check_for_keystone
 check_for_db
diff --git a/docker/ceilometer/ceilometer-base/config-ceilometer.sh b/docker/ceilometer/ceilometer-base/config-ceilometer.sh
index 87dcac6538..9df45994ab 100644
--- a/docker/ceilometer/ceilometer-base/config-ceilometer.sh
+++ b/docker/ceilometer/ceilometer-base/config-ceilometer.sh
@@ -10,8 +10,10 @@ set -e
 : ${CEILOMETER_ADMIN_PASSWORD:=kolla}
 : ${ADMIN_TENANT_NAME:=admin}
 : ${METERING_SECRET:=ceilometer}
+: ${RABBIT_PASSWORD:=guest}
 
-check_required_vars CEILOMETER_DB_PASSWORD KEYSTONE_ADMIN_TOKEN DB_ROOT_PASSWORD
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT KEYSTONE_PUBLIC_SERVICE_HOST \
 dump_vars
 
 cat > /openrc <<EOF
@@ -27,7 +29,7 @@ crudini --set $cfg \
 crudini --set $cfg \
     DEFAULT rabbit_host ${RABBITMQ_SERVICE_HOST}
 crudini --set $cfg \
-    DEFAULT rabbit_password ${RABBITMQ_PASS}
+    DEFAULT rabbit_password ${RABBIT_PASSWORD}
 
 crudini --set $cfg \
     keystone_authtoken \
diff --git a/docker/ceilometer/ceilometer-central/start.sh b/docker/ceilometer/ceilometer-central/start.sh
index a40a3dde07..ec9951c908 100644
--- a/docker/ceilometer/ceilometer-central/start.sh
+++ b/docker/ceilometer/ceilometer-central/start.sh
@@ -3,10 +3,10 @@
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-ceilometer.sh
 
-check_required_vars KEYSTONE_AUTH_PROTOCOL CEILOMETER_KEYSTONE_USER CEILOMETER_ADMIN_PASSWORD ADMIN_TENANT_NAME
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT
 
 check_for_keystone
-check_for_db
 
 export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
 export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:${KEYSTONE_ADMIN_SERVICE_PORT}/v2.0"
diff --git a/docker/ceilometer/ceilometer-compute/start.sh b/docker/ceilometer/ceilometer-compute/start.sh
index d9b62be823..5b610b28af 100644
--- a/docker/ceilometer/ceilometer-compute/start.sh
+++ b/docker/ceilometer/ceilometer-compute/start.sh
@@ -4,7 +4,7 @@
 . /opt/kolla/config-ceilometer.sh
 
 
-check_required_vars KEYSTONE_ADMIN_TOKEN RABBITMQ_SERVICE_HOST KEYSTONE_AUTH_PROTOCOL CEILOMETER_KEYSTONE_USER ADMIN_TENANT_NAME
+check_required_vars KEYSTONE_ADMIN_TOKEN RABBITMQ_SERVICE_HOST RABBIT_PASSWORD
 
 check_for_keystone
 
@@ -19,7 +19,7 @@ crudini --set /etc/nova/nova.conf DEFAULT notification_driver ceilometer.compute
 cfg=/etc/ceilometer/ceilometer.conf
 crudini --set $cfg publisher_rpc metering_secret ${KEYSTONE_ADMIN_TOKEN}
 crudini --set $cfg rabbit_host ${RABBITMQ_SERVICE_HOST}
-crudini --set $cfg rabbit_password ${RABBITMQ_PASS}
+crudini --set $cfg rabbit_password ${RABBIT_PASSWORD}
 
 
 exec /usr/bin/ceilometer-agent-compute
diff --git a/docker/cinder/start.sh b/docker/cinder/start.sh
index 12dcf3dc17..4508d96f46 100755
--- a/docker/cinder/start.sh
+++ b/docker/cinder/start.sh
@@ -1,29 +1,21 @@
 #!/bin/bash -e                                                                                         
 
-: ${CINDER_DB_USER%:=cinder}
+: ${CINDER_DB_USER:=cinder}
 : ${CINDER_DB_NAME:=cinder}
 : ${KEYSTONE_AUTH_PROTOCOL:=http}
 : ${CINDER_KEYSTONE_USER:=cinder}
 : ${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 ! [ "$CINDER_DB_PASSWORD" ]; then
         CINDER_DB_PASSWORD=$(openssl rand -hex 15)
         export CINDER_DB_PASSWORD
 fi
 
-mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root \
-        -p${DB_ROOT_PASSWORD} mysql <<EOF
-EOF                                                                
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    CINDER_ADMIN_PASSWORD
+check_for_db
+
+mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF
 CREATE DATABASE IF NOT EXISTS ${CINDER_DB_NAME};                                                        
 GRANT ALL PRIVILEGES ON glance* TO                                                                      
         '${CINDER_DB_USER}'@'%' IDENTIFIED BY '${CINDER_DB_PASSWORD}'                                   
@@ -143,7 +135,7 @@ crudini --set /etc/cinder/cinder.conf \
 
 
 export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}:35357/v2.0"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
 
 /bin/keystone user-create --name ${CINDER_KEYSTONE_USER} --pass ${CINDER_ADMIN_PASSWORD}
 /bin/keystone role-create --name ${CINDER_KEYSTONE_USER}
diff --git a/docker/glance/glance-base/config-glance.sh b/docker/glance/glance-base/config-glance.sh
index a6380e5c8d..2a6e54caa1 100644
--- a/docker/glance/glance-base/config-glance.sh
+++ b/docker/glance/glance-base/config-glance.sh
@@ -11,7 +11,9 @@ set -e
 : ${KEYSTONE_AUTH_PROTOCOL:=http}
 : ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR}
 
-check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD
+check_for_db
+check_required_vars GLANCE_DB_PASSWORD GLANCE_KEYSTONE_PASSWORD \
+                    KEYSTONE_PUBLIC_SERVICE_HOST
 dump_vars
 
 cat > /openrc <<EOF
diff --git a/docker/heat/heat-base/config-heat.sh b/docker/heat/heat-base/config-heat.sh
index c2837325c2..3dcb1435aa 100755
--- a/docker/heat/heat-base/config-heat.sh
+++ b/docker/heat/heat-base/config-heat.sh
@@ -13,7 +13,10 @@ set -e
 : ${RABBIT_USER:=guest}
 : ${RABBIT_PASSWORD:=guest}
 
-check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD
+check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD \
+                    KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST
+
+check_for_db
 dump_vars
 
 cat > /openrc <<EOF
diff --git a/docker/heat/heat-engine/start.sh b/docker/heat/heat-engine/start.sh
index 0ab9e48005..e9d3f9e413 100755
--- a/docker/heat/heat-engine/start.sh
+++ b/docker/heat/heat-engine/start.sh
@@ -3,8 +3,7 @@
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-heat.sh
 
-check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD \
-                    HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD
+check_required_vars HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD
 check_for_db
 
 mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
diff --git a/docker/horizon/start.sh b/docker/horizon/start.sh
index d51cac6551..01b1405e79 100755
--- a/docker/horizon/start.sh
+++ b/docker/horizon/start.sh
@@ -5,8 +5,6 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-check_required_vars HORIZON_KEYSTONE_USER
-
 check_for_keystone
 check_for_glance
 check_for_nova
diff --git a/docker/keystone/start.sh b/docker/keystone/start.sh
index afa04ed66c..087cecc36b 100755
--- a/docker/keystone/start.sh
+++ b/docker/keystone/start.sh
@@ -9,7 +9,8 @@ set -e
 check_for_db
 check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \
                     KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \
-                    KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST
+                    KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST \
+                    PUBLIC_IP
 dump_vars
 
 mysql -h ${MARIADB_SERVICE_HOST} -u root -p"${DB_ROOT_PASSWORD}" mysql <<EOF
diff --git a/docker/neutron/agents/dhcp/start.sh b/docker/neutron/agents/dhcp/start.sh
index 81f35dd877..7754532a62 100755
--- a/docker/neutron/agents/dhcp/start.sh
+++ b/docker/neutron/agents/dhcp/start.sh
@@ -9,6 +9,8 @@ set -e
 : ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq}
 : ${USE_NAMESPACES:=false}
 
+check_required_vars VERBOSE_LOGGING DEBUG_LOGGING
+
 cfg=/etc/neutron/dhcp_agent.ini
 
 # Configure dhcp_agent.ini
diff --git a/docker/neutron/agents/l3/start.sh b/docker/neutron/agents/l3/start.sh
index 602bf31935..17a09ad653 100755
--- a/docker/neutron/agents/l3/start.sh
+++ b/docker/neutron/agents/l3/start.sh
@@ -8,6 +8,8 @@ set -e
 : ${INTERFACE_DRIVER:=neutron.agent.linux.interface.BridgeInterfaceDriver}
 : ${USE_NAMESPACES:=false}
 
+check_required_vars VERBOSE_LOGGING DEBUG_LOGGING
+
 cfg=/etc/neutron/l3_agent.ini
 
 # Configure l3_agent.ini
diff --git a/docker/neutron/agents/linux-bridge/start.sh b/docker/neutron/agents/linux-bridge/start.sh
index e5982fe669..727db24b5f 100755
--- a/docker/neutron/agents/linux-bridge/start.sh
+++ b/docker/neutron/agents/linux-bridge/start.sh
@@ -8,6 +8,8 @@ set -e
 : ${BRIDGE_PHYSICAL_INTERFACE:=eth1}
 : ${ML2_FLAT_NETWORK:=physnet1}
 
+check_required_vars PUBLIC_IP
+
 cfg=/etc/neutron/plugins/ml2/ml2_conf.ini
 
 # Configure ml2_conf.ini
diff --git a/docker/neutron/agents/metadata/start.sh b/docker/neutron/agents/metadata/start.sh
index fbe72e18fa..9eef79a313 100755
--- a/docker/neutron/agents/metadata/start.sh
+++ b/docker/neutron/agents/metadata/start.sh
@@ -7,6 +7,11 @@ set -e
 
 : ${KEYSTONE_REGION:=RegionOne}
 
+check_required_vars VERBOSE_LOGGING DEBUG_LOGGING KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_PUBLIC_SERVICE_HOST ADMIN_TENANT_NAME \
+                    NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \
+                    NEUTRON_SHARED_SECRET NOVA_API_SERVICE_HOST
+
 cfg=/etc/neutron/metadata_agent.ini
 
 # Configure metadata_agent.ini
diff --git a/docker/neutron/neutron-base/config-neutron.sh b/docker/neutron/neutron-base/config-neutron.sh
index 7a68b19f2b..35a1375fff 100644
--- a/docker/neutron/neutron-base/config-neutron.sh
+++ b/docker/neutron/neutron-base/config-neutron.sh
@@ -15,7 +15,9 @@ set -e
 : ${VERBOSE_LOGGING:=true}
 : ${DEBUG_LOGGING:=false}
 
-check_required_vars NEUTRON_KEYSTONE_PASSWORD
+check_required_vars NEUTRON_KEYSTONE_PASSWORD \
+                    KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST
+
 dump_vars
 
 cat > /openrc <<EOF
diff --git a/docker/neutron/neutron-server/start.sh b/docker/neutron/neutron-server/start.sh
index ffa90a2181..91af87bb32 100755
--- a/docker/neutron/neutron-server/start.sh
+++ b/docker/neutron/neutron-server/start.sh
@@ -6,9 +6,11 @@ set -e
 . /opt/kolla/config-neutron.sh
 
 check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_AUTH_PROTOCOL NOVA_API_SERVICE_HOST \
+                    NOVA_ADMIN_PASSWORD NEUTRON_DB_NAME NEUTRON_DB_USER \
                     NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \
                     ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \
-                    PUBLIC_IP
+                    PUBLIC_IP NEUTRON_DB_PASSWORD
 check_for_keystone
 check_for_db
 
diff --git a/docker/nova-base/config-nova.sh b/docker/nova-base/config-nova.sh
index 15ab7870cf..10aa646fab 100755
--- a/docker/nova-base/config-nova.sh
+++ b/docker/nova-base/config-nova.sh
@@ -11,8 +11,10 @@
 : ${RABBIT_PASSWORD:=guest}
 : ${NETWORK_MANAGER:=nova}
 
-check_required_vars KEYSTONE_ADMIN_TOKEN \
-    NOVA_DB_PASSWORD
+check_for_db
+check_required_vars KEYSTONE_ADMIN_TOKEN NOVA_DB_PASSWORD \
+                    RABBITMQ_SERVICE_HOST GLANCE_API_SERVICE_HOST \
+                    KEYSTONE_PUBLIC_SERVICE_HOST PUBLIC_IP
 
 cfg=/etc/nova/nova.conf
 
@@ -75,6 +77,7 @@ if [ "${NETWORK_MANAGER}" == "nova" ] ; then
   crudini --set $cfg DEFAULT flat_network_bridge br100
   crudini --set $cfg DEFAULT public_interface eth1
 elif [ "${NETWORK_MANAGER}" == "neutron" ] ; then
+  check_required_vars NEUTRON_SHARED_SECRET
   crudini --set $cfg DEFAULT service_neutron_metadata_proxy True
   crudini --set $cfg DEFAULT neutron_metadata_proxy_shared_secret ${NEUTRON_SHARED_SECRET}
   crudini --set $cfg DEFAULT neutron_default_tenant_id default
diff --git a/docker/nova-controller/nova-api/start.sh b/docker/nova-controller/nova-api/start.sh
index 2feeeea05f..49329f21c6 100755
--- a/docker/nova-controller/nova-api/start.sh
+++ b/docker/nova-controller/nova-api/start.sh
@@ -4,6 +4,10 @@ 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
 check_for_keystone
 
 export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
diff --git a/docker/nova-controller/nova-conductor/start.sh b/docker/nova-controller/nova-conductor/start.sh
index 4053a27ff9..831c80e807 100755
--- a/docker/nova-controller/nova-conductor/start.sh
+++ b/docker/nova-controller/nova-conductor/start.sh
@@ -4,6 +4,7 @@ set -e
 
 . /opt/kolla/config-nova.sh
 
+check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD
 check_for_db
 
 mysql -h ${MARIADB_SERVICE_HOST} -u root \
diff --git a/docker/swift/swift-account/start.sh b/docker/swift/swift-account/start.sh
index 562fd4ca42..2fe6f24696 100644
--- a/docker/swift/swift-account/start.sh
+++ b/docker/swift/swift-account/start.sh
@@ -6,15 +6,10 @@
 : ${SWIFT_KEYSTONE_USER:=swift}
 : ${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
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    SWIFT_ADMIN_PASSWORD
+check_for_db
+check_for_keystone
 
 if ! [ "$SWIFT_DB_PASSWORD" ]; then
 	SWIFT_DB_PASSWORD=$(openssl rand -hex 15)
@@ -23,7 +18,7 @@ fi
 
 sh /opt/swift/config-swift.sh account-server
 
-mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root \
+mysql -h ${MARIADB_SERVICE_HOST} -u root \
 	-p${DB_ROOT_PASSWORD} mysql <<EOF
 CREATE DATABASE IF NOT EXISTS ${SWIFT_DB_NAME};
 GRANT ALL PRIVILEGES ON swift* TO
@@ -31,7 +26,7 @@ GRANT ALL PRIVILEGES ON swift* TO
 EOF
 
 export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}:35357/v2.0"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
 
 /bin/keystone user-create --name ${SWIFT_KEYSTONE_USER} --pass ${SWIFT_ADMIN_PASSWORD}
 /bin/keystone role-create --name ${SWIFT_KEYSTONE_USER}
diff --git a/docker/swift/swift-container/start.sh b/docker/swift/swift-container/start.sh
index e96471fb73..2a191e1d2f 100644
--- a/docker/swift/swift-container/start.sh
+++ b/docker/swift/swift-container/start.sh
@@ -6,15 +6,10 @@
 : ${SWIFT_KEYSTONE_USER:=swift}
 : ${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
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    SWIFT_ADMIN_PASSWORD
+check_for_db
+check_for_keystone
 
 if ! [ "$SWIFT_DB_PASSWORD" ]; then
 	SWIFT_DB_PASSWORD=$(openssl rand -hex 15)
@@ -23,7 +18,7 @@ fi
 
 sh /opt/swift/config-swift.sh container
 
-mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root \
+mysql -h ${MARIADB_SERVICE_HOST} -u root \
 	-p${DB_ROOT_PASSWORD} mysql <<EOF
 CREATE DATABASE IF NOT EXISTS ${SWIFT_DB_NAME};
 GRANT ALL PRIVILEGES ON swift* TO
@@ -31,7 +26,7 @@ GRANT ALL PRIVILEGES ON swift* TO
 EOF
 
 export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}:35357/v2.0"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
 
 /bin/keystone user-create --name ${SWIFT_KEYSTONE_USER} --pass ${SWIFT_ADMIN_PASSWORD}
 /bin/keystone role-create --name ${SWIFT_KEYSTONE_USER}
diff --git a/docker/swift/swift-object/start.sh b/docker/swift/swift-object/start.sh
index 1546d8271a..c43efc5fb5 100644
--- a/docker/swift/swift-object/start.sh
+++ b/docker/swift/swift-object/start.sh
@@ -6,15 +6,10 @@
 : ${SWIFT_KEYSTONE_USER:=swift}
 : ${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
+check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+                    SWIFT_ADMIN_PASSWORD
+check_for_db
+check_for_keystone
 
 if ! [ "$SWIFT_DB_PASSWORD" ]; then
 	SWIFT_DB_PASSWORD=$(openssl rand -hex 15)
@@ -23,7 +18,7 @@ fi
 
 sh /opt/swift/config-swift.sh engine
 
-mysql -h ${MARIADB_PORT_3306_TCP_ADDR} -u root \
+mysql -h ${MARIADB_SERVICE_HOST} -u root \
 	-p${DB_ROOT_PASSWORD} mysql <<EOF
 CREATE DATABASE IF NOT EXISTS ${SWIFT_DB_NAME};
 GRANT ALL PRIVILEGES ON swift* TO
@@ -31,7 +26,7 @@ GRANT ALL PRIVILEGES ON swift* TO
 EOF
 
 export SERVICE_TOKEN="${KEYSTONE_ADMIN_TOKEN}"
-export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_PORT_35357_TCP_ADDR}:35357/v2.0"
+export SERVICE_ENDPOINT="${KEYSTONE_AUTH_PROTOCOL}://${KEYSTONE_ADMIN_SERVICE_HOST}:35357/v2.0"
 
 /bin/keystone user-create --name ${SWIFT_KEYSTONE_USER} --pass ${SWIFT_ADMIN_PASSWORD}
 /bin/keystone role-create --name ${SWIFT_KEYSTONE_USER}
diff --git a/docker/zaqar/start.sh b/docker/zaqar/start.sh
index 7ed89a40ad..6c68fccf22 100755
--- a/docker/zaqar/start.sh
+++ b/docker/zaqar/start.sh
@@ -5,16 +5,12 @@ set -e
 . /opt/kolla/kolla-common.sh
 
 : ${ADMIN_TENANT_NAME:=admin}
-
-: ${ZAQAR_DB_NAME:=zaqar}
-: ${ZAQAR_DB_USER:=zaqar}
-
 : ${ZAQAR_KEYSTONE_USER:=zaqar}
-
 : ${KEYSTONE_AUTH_PROTOCOL:=http}
 
-check_required_vars ZAQAR_DB_PASSWORD ZAQAR_KEYSTONE_PASSWORD \
-                    KEYSTONE_ADMIN_TOKEN
+check_required_vars ZAQAR_KEYSTONE_PASSWORD ZAQAR_SERVER_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_TOKEN \
+                    PUBLIC_IP
 dump_vars
 
 #check_for_mongodb
-- 
GitLab