diff --git a/docker/common/barbican/config-internal.sh b/docker/common/barbican/config-internal.sh
index 1ca4bd1be17382315026a59ec46e91b36c298e1b..da5f306a267a571804ae1d1eb105cdd4dfcad8b6 100755
--- a/docker/common/barbican/config-internal.sh
+++ b/docker/common/barbican/config-internal.sh
@@ -7,8 +7,10 @@ if ! [ "$BARBICAN_DB_PASSWORD" ]; then
         export BARBICAN_DB_PASSWORD
 fi
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    KEYSTONE_ADMIN_SERVICE_PORT BARBICAN_ADMIN_PASSWORD
+check_required_vars BARBICAN_ADMIN_PASSWORD \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_ADMIN_TOKEN
 fail_unless_db
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/ceilometer/ceilometer-api/config-internal.sh b/docker/common/ceilometer/ceilometer-api/config-internal.sh
index f081c9f84de535b688bd5a6b43ab0782b3185eeb..fb34a468f662ab512de123f120a38ebac0951f67 100755
--- a/docker/common/ceilometer/ceilometer-api/config-internal.sh
+++ b/docker/common/ceilometer/ceilometer-api/config-internal.sh
@@ -5,12 +5,19 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-ceilometer.sh
 
-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_required_vars ADMIN_TENANT_NAME \
+                    CEILOMETER_ADMIN_PASSWORD \
+                    CEILOMETER_API_SERVICE_HOST \
+                    CEILOMETER_DB_NAME \
+                    CEILOMETER_DB_PASSWORD \
+                    CEILOMETER_DB_USER \
+                    CEILOMETER_KEYSTONE_USER \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    PUBLIC_IP
+
 
 fail_unless_os_service_running keystone
 fail_unless_db
diff --git a/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh b/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh
index 4161e48df62e06f87521e9413677ceeae406e9b2..e01ebccc241ac05693b936db4cc80fe0d874b25f 100644
--- a/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh
+++ b/docker/common/ceilometer/ceilometer-base/config-ceilometer.sh
@@ -3,17 +3,11 @@
 set -e
 . /opt/kolla/kolla-common.sh
 
-: ${CEILOMETER_DB_USER:=ceilometer}
-: ${CEILOMETER_DB_NAME:=ceilometer}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${CEILOMETER_KEYSTONE_USER:=admin}
-: ${CEILOMETER_ADMIN_PASSWORD:=kolla}
-: ${ADMIN_TENANT_NAME:=admin}
-: ${METERING_SECRET:=ceilometer}
-: ${RABBIT_PASSWORD:=guest}
+check_required_vars KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_PUBLIC_SERVICE_HOST
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    KEYSTONE_ADMIN_SERVICE_PORT KEYSTONE_PUBLIC_SERVICE_HOST
 dump_vars
 
 cat > /openrc <<EOF
diff --git a/docker/common/ceilometer/ceilometer-central/config-internal.sh b/docker/common/ceilometer/ceilometer-central/config-internal.sh
index 76f9a1fc2c14a6f93f218a487985ef61df0455b0..1cc8d46cf6875d76906db35ee6e99cb7cf6b7d7a 100755
--- a/docker/common/ceilometer/ceilometer-central/config-internal.sh
+++ b/docker/common/ceilometer/ceilometer-central/config-internal.sh
@@ -3,8 +3,10 @@
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-ceilometer.sh
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_AUTH_PROTOCOL \
-                    KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT
+check_required_vars KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_ADMIN_TOKEN
 
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/ceilometer/ceilometer-compute/config-internal.sh b/docker/common/ceilometer/ceilometer-compute/config-internal.sh
index f4fc30baeea96849943a9d2b287d5aa22951961b..633fa6183a75aa437d3476b5987778e8e7ffa01d 100755
--- a/docker/common/ceilometer/ceilometer-compute/config-internal.sh
+++ b/docker/common/ceilometer/ceilometer-compute/config-internal.sh
@@ -4,7 +4,9 @@
 . /opt/kolla/config-ceilometer.sh
 
 
-check_required_vars KEYSTONE_ADMIN_TOKEN RABBITMQ_SERVICE_HOST RABBIT_PASSWORD
+check_required_vars KEYSTONE_ADMIN_TOKEN \
+                    RABBITMQ_SERVICE_HOST \
+                    RABBIT_PASSWORD
 
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/cinder-app/cinder-api/config-internal.sh b/docker/common/cinder-app/cinder-api/config-internal.sh
index 832d4f78a18ca8d474aba8332a2fd0ee2ac301c3..158d1efe13d413468c6dffdb1c450f57baf2a957 100755
--- a/docker/common/cinder-app/cinder-api/config-internal.sh
+++ b/docker/common/cinder-app/cinder-api/config-internal.sh
@@ -4,11 +4,17 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-cinder.sh
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    ADMIN_TENANT_NAME PUBLIC_IP CINDER_API_SERVICE_HOST \
-                    KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \
-                    CINDER_KEYSTONE_USER CINDER_KEYSTONE_PASSWORD \
-                    CINDER_API_SERVICE_LISTEN CINDER_API_SERVICE_PORT
+check_required_vars ADMIN_TENANT_NAME \
+                    CINDER_API_SERVICE_HOST \
+                    CINDER_API_SERVICE_LISTEN \
+                    CINDER_API_SERVICE_PORT \
+                    CINDER_KEYSTONE_PASSWORD \
+                    CINDER_KEYSTONE_USER \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_ADMIN_TOKEN \
+                    PUBLIC_IP
 
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/cinder-app/cinder-backup/config-internal.sh b/docker/common/cinder-app/cinder-backup/config-internal.sh
index 3227ddab29ccbdcae894d6ecbed04ab08e6d7499..bd1dda9fa904fb2abedbfcdd3efb45d6fae128fd 100755
--- a/docker/common/cinder-app/cinder-backup/config-internal.sh
+++ b/docker/common/cinder-app/cinder-backup/config-internal.sh
@@ -5,8 +5,10 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-cinder.sh
 
-check_required_vars CINDER_BACKUP_DRIVER CINDER_BACKUP_MANAGER \
-                    CINDER_BACKUP_API_CLASS CINDER_BACKUP_NAME_TEMPLATE
+check_required_vars CINDER_BACKUP_API_CLASS \
+                    CINDER_BACKUP_MANAGER \
+                    CINDER_BACKUP_NAME_TEMPLATE \
+                    CINDER_BACKUP_DRIVER
 
 cfg=/etc/cinder/cinder.conf
 
diff --git a/docker/common/cinder-app/cinder-base/config-cinder.sh b/docker/common/cinder-app/cinder-base/config-cinder.sh
index 5de11a993109ed85a8dfb8fc46fff72de502abb2..a49b17f07a405e8efaf99c47025165ead46efd30 100755
--- a/docker/common/cinder-app/cinder-base/config-cinder.sh
+++ b/docker/common/cinder-app/cinder-base/config-cinder.sh
@@ -4,14 +4,24 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-check_required_vars CINDER_DB_PASSWORD CINDER_KEYSTONE_PASSWORD \
-                    KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \
-                    GLANCE_API_SERVICE_HOST MARIADB_SERVICE_HOST \
-                    RABBITMQ_SERVICE_HOST RABBITMQ_SERVICE_PORT \
-                    RABBIT_USERID RABBIT_PASSWORD GLANCE_API_SERVICE_HOST \
-                    GLANCE_API_SERVICE_PORT ADMIN_TENANT_NAME \
-                    CINDER_DB_NAME CINDER_DB_USER CINDER_KEYSTONE_USER \
-                    PUBLIC_IP KEYSTONE_AUTH_PROTOCOL CINDER_API_VERSION
+check_required_vars ADMIN_TENANT_NAME \
+                    CINDER_API_VERSION \
+                    CINDER_DB_NAME \
+                    CINDER_DB_PASSWORD \
+                    CINDER_DB_USER \
+                    CINDER_KEYSTONE_PASSWORD \
+                    CINDER_KEYSTONE_USER \
+                    GLANCE_API_SERVICE_HOST \
+                    GLANCE_API_SERVICE_PORT \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    MARIADB_SERVICE_HOST \
+                    PUBLIC_IP \
+                    RABBITMQ_SERVICE_HOST \
+                    RABBITMQ_SERVICE_HOST \
+                    RABBITMQ_SERVICE_PORT \
+                    RABBIT_PASSWORD \
+                    RABBIT_USERID
 
 dump_vars
 
diff --git a/docker/common/cinder-app/cinder-scheduler/config-internal.sh b/docker/common/cinder-app/cinder-scheduler/config-internal.sh
index 54df77983439ccd4ea10ec6de9bc34afbdfa4b1b..e39d152985fc91e4d14a2c7c9156c1c9f956f999 100755
--- a/docker/common/cinder-app/cinder-scheduler/config-internal.sh
+++ b/docker/common/cinder-app/cinder-scheduler/config-internal.sh
@@ -7,9 +7,12 @@ set -e
 
 fail_unless_db
 
-check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD \
-                    CINDER_DB_NAME CINDER_DB_USER CINDER_DB_PASSWORD \
-                    INIT_CINDER_DB
+check_required_vars CINDER_DB_NAME \
+                    CINDER_DB_PASSWORD \
+                    CINDER_DB_USER \
+                    DB_ROOT_PASSWORD \
+                    INIT_CINDER_DB \
+                    MARIADB_SERVICE_HOST
 
 cfg=/etc/cinder/cinder.conf
 
diff --git a/docker/common/cinder-app/cinder-volume/config-internal.sh b/docker/common/cinder-app/cinder-volume/config-internal.sh
index 0b0d9b95cf3c2721320a1862a40cb31bb8f79a40..79a813e9c880b2c2323f37f584ccc695bb626448 100755
--- a/docker/common/cinder-app/cinder-volume/config-internal.sh
+++ b/docker/common/cinder-app/cinder-volume/config-internal.sh
@@ -6,10 +6,14 @@ set -e
 . /opt/kolla/config-cinder.sh
 . /opt/kolla/volume-group-create.sh
 
-check_required_vars CINDER_VOLUME_API_LISTEN ISCSI_HELPER ISCSI_IP_ADDRESS \
-                    CINDER_VOLUME_GROUP CINDER_LVM_LO_VOLUME_SIZE \
-                    CINDER_VOLUME_BACKEND_NAME CINDER_VOLUME_DRIVER \
-                    CINDER_ENABLED_BACKEND
+check_required_vars CINDER_ENABLED_BACKEND \
+                    CINDER_LVM_LO_VOLUME_SIZE \
+                    CINDER_VOLUME_API_LISTEN \
+                    CINDER_VOLUME_BACKEND_NAME \
+                    CINDER_VOLUME_DRIVER \
+                    CINDER_VOLUME_GROUP \
+                    ISCSI_HELPER \
+                    ISCSI_IP_ADDRESS
 
 cfg=/etc/cinder/cinder.conf
 
diff --git a/docker/common/designate/designate-api/config-internal.sh b/docker/common/designate/designate-api/config-internal.sh
index aae50ea8f1b6a22aaae67e6171b77f35547f8a2f..c7eb42c1657e6f7bceebd5d5b48c244bd3798f9e 100755
--- a/docker/common/designate/designate-api/config-internal.sh
+++ b/docker/common/designate/designate-api/config-internal.sh
@@ -6,11 +6,15 @@ set -e
 
 CONF=/etc/designate/designate.conf
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    DESIGNATE_KEYSTONE_USER DESIGNATE_KEYSTONE_PASSWORD \
-                    KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \
-                    DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT \
-                    KEYSTONE_ADMIN_SERVICE_PORT
+check_required_vars ADMIN_TENANT_NAME \
+                    DESIGNATE_API_SERVICE_HOST \
+                    DESIGNATE_API_SERVICE_PORT \
+                    DESIGNATE_KEYSTONE_PASSWORD \
+                    DESIGNATE_KEYSTONE_USER \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_ADMIN_TOKEN
 
 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/common/designate/designate-backend-bind9/config-internal.sh b/docker/common/designate/designate-backend-bind9/config-internal.sh
index 90d2de676bef4e1e4457beaa3486ebf2909e3166..45a127fdd8f38ec8b4e060da0f777dd9a36edb4c 100755
--- a/docker/common/designate/designate-backend-bind9/config-internal.sh
+++ b/docker/common/designate/designate-backend-bind9/config-internal.sh
@@ -3,8 +3,10 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-check_required_vars DESIGNATE_MASTERNS DESIGNATE_SLAVENS DESIGNATE_BIND9_RNDC_KEY \
-                    DESIGNATE_ALLOW_RECURSION
+check_required_vars DESIGNATE_ALLOW_RECURSION \
+                    DESIGNATE_BIND9_RNDC_KEY \
+                    DESIGNATE_MASTERNS \
+                    DESIGNATE_SLAVENS
 
 NAMEDCFG=/etc/named.conf
 
diff --git a/docker/common/designate/designate-base/config-designate.sh b/docker/common/designate/designate-base/config-designate.sh
index 6edfd1bd24971c61f2b9480b351d9b9201cf2b2f..8d433b01118d0d88adc9a23454983a54837eb111 100755
--- a/docker/common/designate/designate-base/config-designate.sh
+++ b/docker/common/designate/designate-base/config-designate.sh
@@ -21,14 +21,23 @@ get_or_create_domain() {
     echo $DOMAIN_ID
 }
 
-check_required_vars DESIGNATE_DB_PASSWORD DESIGNATE_KEYSTONE_PASSWORD \
-                    KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST \
-                    DESIGNATE_BIND9_RNDC_KEY DESIGNATE_BACKEND \
-                    KEYSTONE_PUBLIC_SERVICE_PORT DESIGNATE_KEYSTONE_USER \
-                    RABBIT_USERID RABBIT_PASSWORD DESIGNATE_DB_USER \
-                    DESIGNATE_DB_NAME KEYSTONE_AUTH_PROTOCOL \
-                    KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_PORT \
-                    DEBUG_LOGGING DESIGNATE_POOLMAN_POOLID
+check_required_vars DEBUG_LOGGING \
+                    DESIGNATE_BACKEND \
+                    DESIGNATE_BIND9_RNDC_KEY \
+                    DESIGNATE_DB_NAME \
+                    DESIGNATE_DB_PASSWORD \
+                    DESIGNATE_DB_USER \
+                    DESIGNATE_KEYSTONE_PASSWORD \
+                    DESIGNATE_KEYSTONE_USER \
+                    DESIGNATE_POOLMAN_POOLID \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    KEYSTONE_PUBLIC_SERVICE_PORT \
+                    RABBITMQ_SERVICE_HOST \
+                    RABBIT_PASSWORD \
+                    RABBIT_USERID
 
 fail_unless_db
 dump_vars
diff --git a/docker/common/designate/designate-central/config-internal.sh b/docker/common/designate/designate-central/config-internal.sh
index 44cf89130b4394951b8663e790cd41fa9eeebd55..1f91b06e102cae4448060308494d1a39f828f525 100755
--- a/docker/common/designate/designate-central/config-internal.sh
+++ b/docker/common/designate/designate-central/config-internal.sh
@@ -4,8 +4,12 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-designate.sh
 
-check_required_vars MARIADB_SERVICE_HOST DB_ROOT_PASSWORD DESIGNATE_DB_NAME \
-                    DESIGNATE_DB_USER DESIGNATE_DB_PASSWORD INIT_DESIGNATE_DB
+check_required_vars DB_ROOT_PASSWORD \
+                    DESIGNATE_DB_NAME \
+                    DESIGNATE_DB_PASSWORD \
+                    DESIGNATE_DB_USER \
+                    INIT_DESIGNATE_DB \
+                    MARIADB_SERVICE_HOST
 
 fail_unless_db
 
diff --git a/docker/common/designate/designate-mdns/config-internal.sh b/docker/common/designate/designate-mdns/config-internal.sh
index a3e5df2747db943a1bec999c4f180446a3bffb7c..cd3383b0d4967ae8222e4cdb16693fb7cde756d5 100755
--- a/docker/common/designate/designate-mdns/config-internal.sh
+++ b/docker/common/designate/designate-mdns/config-internal.sh
@@ -4,7 +4,8 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-designate.sh
 
-check_required_vars DESIGNATE_MASTERNS DESIGNATE_MDNS_PORT
+check_required_vars DESIGNATE_MASTERNS \
+                    DESIGNATE_MDNS_PORT
 
 CONF=/etc/designate/designate.conf
 
diff --git a/docker/common/designate/designate-poolmanager/config-internal.sh b/docker/common/designate/designate-poolmanager/config-internal.sh
index f5222b3f46751cc1c26191056696696146edeeda..c20a09676b2b1210f11b01acc5e34eefb606d21e 100755
--- a/docker/common/designate/designate-poolmanager/config-internal.sh
+++ b/docker/common/designate/designate-poolmanager/config-internal.sh
@@ -4,10 +4,14 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-designate.sh
 
-check_required_vars DESIGNATE_MASTERNS DESIGNATE_BACKEND DESIGNATE_SLAVENS \
-                    DESIGNATE_MDNS_PORT DESIGNATE_DNS_PORT DESIGNATE_POOLMAN_POOLID \
-                    DESIGNATE_POOLMAN_TARGETS DESIGNATE_POOLMAN_NSS \
-                    DESIGNATE_POOLMAN_POOLID
+check_required_vars DESIGNATE_BACKEND \
+                    DESIGNATE_DNS_PORT \
+                    DESIGNATE_MASTERNS \
+                    DESIGNATE_MDNS_PORT \
+                    DESIGNATE_POOLMAN_NSS \
+                    DESIGNATE_POOLMAN_POOLID \
+                    DESIGNATE_POOLMAN_TARGETS \
+                    DESIGNATE_SLAVENS
 
 CONF=/etc/designate/designate.conf
 
diff --git a/docker/common/designate/designate-sink/config-internal.sh b/docker/common/designate/designate-sink/config-internal.sh
index a6a3a4bacbb436580d1ebccb62b9f1e07252a70c..e32111fb3e9bd85363057a0ad2fe0142dcb79b52 100755
--- a/docker/common/designate/designate-sink/config-internal.sh
+++ b/docker/common/designate/designate-sink/config-internal.sh
@@ -30,7 +30,8 @@ configure_neutron_handler() {
     done
 }
 
-check_required_vars DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT \
+check_required_vars DESIGNATE_API_SERVICE_HOST \
+                    DESIGNATE_API_SERVICE_PORT \
                     DESIGNATE_DEFAULT_POOL_NS_RECORD
 
 check_for_os_service_endpoint designate DESIGNATE_API_SERVICE_HOST DESIGNATE_API_SERVICE_PORT || exit $?
diff --git a/docker/common/galera/config-internal.sh b/docker/common/galera/config-internal.sh
index 5e55dcde448ebb2e0af442b3d697c9562de1bb97..d92414a6f5da7f683eb258e88f4539a046dac419 100755
--- a/docker/common/galera/config-internal.sh
+++ b/docker/common/galera/config-internal.sh
@@ -3,8 +3,12 @@
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-galera.sh
 
-check_required_vars DB_CLUSTER_BIND_ADDRESS DB_CLUSTER_NAME DB_CLUSTER_NODES \
-                    DB_ROOT_PASSWORD DB_CLUSTER_WSREP_METHOD DB_CLUSTER_INIT_DB
+check_required_vars DB_CLUSTER_BIND_ADDRESS \
+                    DB_CLUSTER_INIT_DB \
+                    DB_CLUSTER_NAME \
+                    DB_CLUSTER_NODES \
+                    DB_CLUSTER_WSREP_METHOD \
+                    DB_ROOT_PASSWORD
 
 CFG=/etc/my.cnf.d/server.cnf
 DB_CLUSTER_INIT_SQL=/tmp/mysql-first-time.sql
@@ -17,4 +21,3 @@ if [[ "${DB_CLUSTER_INIT_DB}" == "true" ]] && ! [[ -a /var/lib/mysql/cluster.exi
 fi
 
 mysqld_safe --init-file=$DB_CLUSTER_INIT_SQL $DB_CLUSTER_IS_MASTER_NODE
-
diff --git a/docker/common/glance/glance-api/config-internal.sh b/docker/common/glance/glance-api/config-internal.sh
index 9140afbf19af8071daae5565435bbaa7972599ae..45af8d7ec4451bff733ebde37cc36144d93c35a9 100755
--- a/docker/common/glance/glance-api/config-internal.sh
+++ b/docker/common/glance/glance-api/config-internal.sh
@@ -5,11 +5,16 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-glance.sh
 
-check_required_vars ADMIN_TENANT_NAME GLANCE_API_SERVICE_HOST \
-                    GLANCE_KEYSTONE_PASSWORD GLANCE_KEYSTONE_USER \
-                    GLANCE_REGISTRY_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST \
-                    KEYSTONE_ADMIN_SERVICE_PORT KEYSTONE_ADMIN_TOKEN \
-                    KEYSTONE_AUTH_PROTOCOL PUBLIC_IP \
+check_required_vars ADMIN_TENANT_NAME \
+                    GLANCE_API_SERVICE_HOST \
+                    GLANCE_KEYSTONE_PASSWORD \
+                    GLANCE_KEYSTONE_USER \
+                    GLANCE_REGISTRY_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    PUBLIC_IP \
                     RABBITMQ_SERVICE_HOST
 
 fail_unless_os_service_running keystone
diff --git a/docker/common/glance/glance-base/config-glance.sh b/docker/common/glance/glance-base/config-glance.sh
index 51bb56667d9f7d7a62abce134ed66213861c19de..2823af31434750238e05e764f194638ab404f3a0 100644
--- a/docker/common/glance/glance-base/config-glance.sh
+++ b/docker/common/glance/glance-base/config-glance.sh
@@ -4,17 +4,13 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-: ${ADMIN_TENANT_NAME:=admin}
-: ${GLANCE_DB_NAME:=glance}
-: ${GLANCE_DB_USER:=glance}
-: ${GLANCE_KEYSTONE_USER:=glance}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${PUBLIC_IP:=$GLANCE_API_PORT_9292_TCP_ADDR}
-
-
-check_required_vars ADMIN_TENANT_NAME GLANCE_DB_NAME GLANCE_DB_PASSWORD \
-                    GLANCE_DB_USER GLANCE_KEYSTONE_PASSWORD \
-                    GLANCE_KEYSTONE_USER KEYSTONE_PUBLIC_SERVICE_HOST \
+check_required_vars ADMIN_TENANT_NAME \
+                    GLANCE_DB_NAME \
+                    GLANCE_DB_PASSWORD \
+                    GLANCE_DB_USER \
+                    GLANCE_KEYSTONE_PASSWORD \
+                    GLANCE_KEYSTONE_USER \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
                     MARIADB_SERVICE_HOST
 dump_vars
 
@@ -64,4 +60,3 @@ for cfg in /etc/glance/glance-api.conf /etc/glance/glance-registry.conf; do
         connection \
         "mysql://${GLANCE_DB_USER}:${GLANCE_DB_PASSWORD}@${MARIADB_SERVICE_HOST}/${GLANCE_DB_NAME}"
 done
-
diff --git a/docker/common/glance/glance-registry/config-internal.sh b/docker/common/glance/glance-registry/config-internal.sh
index ec646eb70d5db8e2749ce05c4105aee59819ee51..c0ce4df5ccff196fc0c3d314ea32616d35df0a1f 100755
--- a/docker/common/glance/glance-registry/config-internal.sh
+++ b/docker/common/glance/glance-registry/config-internal.sh
@@ -6,8 +6,10 @@ set -e
 . /opt/kolla/config-glance.sh
 
 
-check_required_vars DB_ROOT_PASSWORD GLANCE_DB_NAME \
-                    GLANCE_DB_PASSWORD GLANCE_DB_USER \
+check_required_vars DB_ROOT_PASSWORD \
+                    GLANCE_DB_NAME \
+                    GLANCE_DB_PASSWORD \
+                    GLANCE_DB_USER \
                     MARIADB_SERVICE_HOST
 # lets wait for the DB to be available
 wait_for 25 1 check_for_db
diff --git a/docker/common/heat/heat-api-cfn/config-internal.sh b/docker/common/heat/heat-api-cfn/config-internal.sh
index bcd72250b46dd4aba22490428f0f9e060fa35453..4fce4079c34106ccae4cc41796fe0d4defadd5f9 100755
--- a/docker/common/heat/heat-api-cfn/config-internal.sh
+++ b/docker/common/heat/heat-api-cfn/config-internal.sh
@@ -4,11 +4,15 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-heat.sh
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    HEAT_CFN_KEYSTONE_USER HEAT_CFN_KEYSTONE_PASSWORD \
-                    KEYSTONE_AUTH_PROTOCOL KEYSTONE_ADMIN_SERVICE_PORT \
-                    ADMIN_TENANT_NAME HEAT_API_CFN_SERVICE_HOST \
-                    HEAT_API_CFN_SERVICE_PORT
+check_required_vars ADMIN_TENANT_NAME \
+                    HEAT_API_CFN_SERVICE_HOST \
+                    HEAT_API_CFN_SERVICE_PORT \
+                    HEAT_CFN_KEYSTONE_PASSWORD \
+                    HEAT_CFN_KEYSTONE_USER \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL
 
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/heat/heat-api/config-internal.sh b/docker/common/heat/heat-api/config-internal.sh
index b57aaa710b880d444e680b9520f71112b9a94f35..39acca51538fc3bcbe785929b04df9d66e603813 100755
--- a/docker/common/heat/heat-api/config-internal.sh
+++ b/docker/common/heat/heat-api/config-internal.sh
@@ -4,10 +4,14 @@ set -e
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-heat.sh
 
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    HEAT_KEYSTONE_USER HEAT_KEYSTONE_PASSWORD \
-                    KEYSTONE_AUTH_PROTOCOL ADMIN_TENANT_NAME \
-                    HEAT_API_SERVICE_HOST PUBLIC_IP
+check_required_vars ADMIN_TENANT_NAME \
+                    HEAT_API_SERVICE_HOST \
+                    HEAT_KEYSTONE_PASSWORD \
+                    HEAT_KEYSTONE_USER \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    PUBLIC_IP
 
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/heat/heat-base/config-heat.sh b/docker/common/heat/heat-base/config-heat.sh
index 843221ccdd16dd06c302e25d9a9ca11acf25aaf1..9b71654aa5634e23c526863af3deaeb8ac5f2cfd 100755
--- a/docker/common/heat/heat-base/config-heat.sh
+++ b/docker/common/heat/heat-base/config-heat.sh
@@ -4,21 +4,15 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-: ${ADMIN_TENANT_NAME:=admin}
-: ${HEAT_DB_NAME:=heat}
-: ${HEAT_DB_USER:=heat}
-: ${HEAT_KEYSTONE_USER:=heat}
-: ${HEAT_CFN_KEYSTONE_USER:=heat_cfn}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${PUBLIC_IP:=$HEAT_API_PORT_8004_TCP_ADDR}
-: ${RABBIT_USER:=guest}
-: ${RABBIT_PASSWORD:=guest}
-
-check_required_vars HEAT_DB_PASSWORD HEAT_KEYSTONE_PASSWORD \
-                    HEAT_API_CFN_URL_HOST HEAT_API_CFN_SERVICE_PORT \
-                    KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_PUBLIC_SERVICE_PORT \
-                    KEYSTONE_PUBLIC_SERVICE_PORT RABBITMQ_SERVICE_HOST \
-                    MARIADB_SERVICE_HOST HEAT_DOMAIN_PASS
+check_required_vars HEAT_API_CFN_SERVICE_PORT \
+                    HEAT_API_CFN_URL_HOST \
+                    HEAT_DB_PASSWORD \
+                    HEAT_DOMAIN_PASS \
+                    HEAT_KEYSTONE_PASSWORD \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    KEYSTONE_PUBLIC_SERVICE_PORT \
+                    MARIADB_SERVICE_HOST \
+                    RABBITMQ_SERVICE_HOST
 
 fail_unless_db
 dump_vars
diff --git a/docker/common/heat/heat-engine/config-internal.sh b/docker/common/heat/heat-engine/config-internal.sh
index 0cafbc480cac5d4a246bcfae61cf4f36a2668c49..90fdfb8d0b2d30b05f215d5b13826cf2fa8f1e32 100755
--- a/docker/common/heat/heat-engine/config-internal.sh
+++ b/docker/common/heat/heat-engine/config-internal.sh
@@ -4,8 +4,11 @@
 . /opt/kolla/config-heat.sh
 . /openrc
 
-check_required_vars HEAT_DB_NAME HEAT_DB_USER HEAT_DB_PASSWORD \
-                    INIT_HEAT_DB HEAT_DOMAIN_PASS
+check_required_vars HEAT_DB_NAME \
+                    HEAT_DB_PASSWORD \
+                    HEAT_DB_USER \
+                    HEAT_DOMAIN_PASS \
+                    INIT_HEAT_DB
 fail_unless_db
 
 if [ "${INIT_HEAT_DB}" == "true" ]; then
diff --git a/docker/common/horizon/config-internal.sh b/docker/common/horizon/config-internal.sh
index 4e720bb879a8fd57f62e387d809274892ae561f4..0e53e2738ff8df8e3a462be48c8e84af732084a2 100755
--- a/docker/common/horizon/config-internal.sh
+++ b/docker/common/horizon/config-internal.sh
@@ -1,8 +1,6 @@
 #!/bin/bash
 set -e
 
-: ${HORIZON_KEYSTONE_USER:=horizon}
-
 . /opt/kolla/kolla-common.sh
 
 fail_unless_os_service_running keystone
diff --git a/docker/common/keepalived/start.sh b/docker/common/keepalived/start.sh
index 7f582b218065ad50b65f5cbf7d87d19ad1db7780..3d182f63556e309fe05eab0609515bdd46bb820d 100755
--- a/docker/common/keepalived/start.sh
+++ b/docker/common/keepalived/start.sh
@@ -2,7 +2,9 @@
 
 . /opt/kolla/kolla-common.sh
 
-check_required_vars KEEPALIVED_HOST_PRIORITIES PUBLIC_IP PUBLIC_INTERFACE
+check_required_vars KEEPALIVED_HOST_PRIORITIES \
+                    PUBLIC_INTERFACE \
+                    PUBLIC_IP
 
 MY_HOSTNAME=`hostname`
 
diff --git a/docker/common/keystone/config-internal.sh b/docker/common/keystone/config-internal.sh
index 2d522b699aefa7ededeea6b3ab5a3bbf83c4c66d..d2e9596557bd42619a390c3bd697e630e72b956e 100755
--- a/docker/common/keystone/config-internal.sh
+++ b/docker/common/keystone/config-internal.sh
@@ -6,43 +6,19 @@ set -e
 echo "Running the kolla-common script"
 . /opt/kolla/kolla-common.sh
 
-# Credentials, token, etc..
-: ${ADMIN_USER:=admin}
-: ${ADMIN_USER_PASSWORD:=password}
-: ${ADMIN_TENANT_NAME:=admin}
-: ${KEYSTONE_USER:=keystone}
-: ${KEYSTONE_ADMIN_PASSWORD:=password}
-: ${KEYSTONE_ADMIN_TOKEN:=changeme}
-# DB Settings
-: ${INIT_KEYSTONE_DB:=true}
-: ${KEYSTONE_DB_NAME:=keystone}
-: ${KEYSTONE_DB_USER:=keystone}
-: ${DB_ROOT_PASSWORD:=password}
-: ${MARIADB_SERVICE_HOST:=$PUBLIC_IP}
-: ${KEYSTONE_DB_PASSWORD:=password}
-# Service Addresses/Ports/Version
-: ${KEYSTONE_PUBLIC_SERVICE_HOST:=$PUBLIC_IP}
-: ${KEYSTONE_ADMIN_SERVICE_HOST:=$PUBLIC_IP}
-: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000}
-: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357}
-: ${KEYSTONE_API_VERSION:=2.0}
-# Logging
-: ${LOG_FILE:=/var/log/keystone/keystone.log}
-: ${VERBOSE_LOGGING:=true}
-: ${DEBUG_LOGGING:=false}
-: ${USE_STDERR:=false}
-# Token provider, driver, etc..
-: ${TOKEN_PROVIDER:=uuid}
-: ${TOKEN_DRIVER:=sql}
-
 ## Check DB connectivity and required variables
 echo "Checking connectivity to the DB"
 fail_unless_db
 echo "Checking for required variables"
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_DB_PASSWORD \
-                    KEYSTONE_ADMIN_PASSWORD ADMIN_TENANT_NAME \
-                    KEYSTONE_PUBLIC_SERVICE_HOST KEYSTONE_ADMIN_SERVICE_HOST \
-                    PUBLIC_IP INIT_KEYSTONE_DB
+check_required_vars ADMIN_TENANT_NAME \
+                    INIT_KEYSTONE_DB \
+                    KEYSTONE_ADMIN_PASSWORD \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_DB_PASSWORD \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    PUBLIC_IP
+
 dump_vars
 
 # Setup the Keystone DB
diff --git a/docker/common/magnum/magnum-api/config-internal.sh b/docker/common/magnum/magnum-api/config-internal.sh
index 00a51b3cdfa31b34cc9afecdd3c8e2399f269c21..1267c3e55fb72c5aeba287519639b3ab62eefab3 100755
--- a/docker/common/magnum/magnum-api/config-internal.sh
+++ b/docker/common/magnum/magnum-api/config-internal.sh
@@ -4,11 +4,15 @@ 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
+check_required_vars ADMIN_TENANT_NAME \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_SERVICE_PORT \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    MAGNUM_API_SERVICE_HOST \
+                    MAGNUM_API_SERVICE_PORT \
+                    MAGNUM_KEYSTONE_PASSWORD \
+                    MAGNUM_KEYSTONE_USER
 
 fail_unless_os_service_running keystone
 
diff --git a/docker/common/magnum/magnum-base/config-magnum.sh b/docker/common/magnum/magnum-base/config-magnum.sh
index 03599d359eb2c874e298443c891e7d7155225234..279bd11536eb0ae38939a9efa20ed5c86f46bc55 100755
--- a/docker/common/magnum/magnum-base/config-magnum.sh
+++ b/docker/common/magnum/magnum-base/config-magnum.sh
@@ -4,12 +4,18 @@ 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
+check_required_vars ADMIN_TENANT_NAME \
+                    DEBUG_LOGGING \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    KEYSTONE_PUBLIC_SERVICE_PORT \
+                    MAGNUM_DB_NAME \
+                    MAGNUM_DB_PASSWORD \
+                    MAGNUM_DB_USER \
+                    MAGNUM_KEYSTONE_PASSWORD \
+                    MAGNUM_KEYSTONE_USER \
+                    RABBITMQ_SERVICE_HOST \
+                    VERBOSE_LOGGING
 
 fail_unless_db
 dump_vars
diff --git a/docker/common/magnum/magnum-conductor/config-internal.sh b/docker/common/magnum/magnum-conductor/config-internal.sh
index 4cf1291a393c92d093d18497e0ca0c7b334b0c85..8a35b0bbd1153d8e591da6def841ac5a42f7ebb1 100755
--- a/docker/common/magnum/magnum-conductor/config-internal.sh
+++ b/docker/common/magnum/magnum-conductor/config-internal.sh
@@ -3,7 +3,10 @@
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-magnum.sh
 
-check_required_vars MAGNUM_DB_NAME MAGNUM_DB_USER MAGNUM_DB_PASSWORD
+check_required_vars MAGNUM_DB_NAME \
+                    MAGNUM_DB_PASSWORD \
+                    MAGNUM_DB_USER
+
 fail_unless_db
 
 mysql -h ${MARIADB_SERVICE_HOST} -u root -p${DB_ROOT_PASSWORD} mysql <<EOF
diff --git a/docker/common/neutron/neutron-base/config-neutron.sh b/docker/common/neutron/neutron-base/config-neutron.sh
index 0155651052aa75edd3854456d80268835ea070d4..e36886c0d124f280eedac19056afb203be6e8166 100644
--- a/docker/common/neutron/neutron-base/config-neutron.sh
+++ b/docker/common/neutron/neutron-base/config-neutron.sh
@@ -4,34 +4,10 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-# Database
-: ${NEUTRON_DB_NAME:=neutron}
-: ${NEUTRON_DB_USER:=neutron}
-: ${NEUTRON_DB_PASSWORD:=password}
-# Keystone
-: ${ADMIN_TENANT_NAME:=admin}
-: ${NEUTRON_KEYSTONE_USER:=neutron}
-: ${NEUTRON_KEYSTONE_PASSWORD:=password}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${KEYSTONE_ADMIN_SERVICE_HOST:=127.0.0.1}
-: ${KEYSTONE_PUBLIC_SERVICE_HOST:=127.0.0.1}
-: ${KEYSTONE_ADMIN_SERVICE_PORT:=35357}
-: ${KEYSTONE_PUBLIC_SERVICE_PORT:=5000}
-: ${KEYSTONE_REGION:=RegionOne}
-# RabbitMQ
-: ${RABBIT_HOST:=$RABBITMQ_SERVICE_HOST}
-: ${RABBIT_USER:=guest}
-: ${RABBIT_PASSWORD:=guest}
-# Logging
-: ${VERBOSE_LOGGING:=true}
-: ${DEBUG_LOGGING:=false}
-# Networking
-: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1}
-# Paste configuration file
-: ${API_PASTE_CONFIG:=/usr/share/neutron/api-paste.ini}
-
-check_required_vars NEUTRON_KEYSTONE_PASSWORD NEUTRON_API_PASTE_CONFIG \
-                    KEYSTONE_PUBLIC_SERVICE_HOST RABBITMQ_SERVICE_HOST
+check_required_vars KEYSTONE_PUBLIC_SERVICE_HOST \
+                    NEUTRON_API_PASTE_CONFIG \
+                    NEUTRON_KEYSTONE_PASSWORD \
+                    RABBITMQ_SERVICE_HOST
 
 core_cfg=/etc/neutron/neutron.conf
 ml2_cfg=/etc/neutron/plugins/ml2/ml2_conf.ini
diff --git a/docker/common/neutron/neutron-dhcp-agent/config-internal.sh b/docker/common/neutron/neutron-dhcp-agent/config-internal.sh
index aa7a470858a16fd91b69edb25fe086fdd2389741..ad54ff1700c4bf605e8c170b13f470379adae57f 100755
--- a/docker/common/neutron/neutron-dhcp-agent/config-internal.sh
+++ b/docker/common/neutron/neutron-dhcp-agent/config-internal.sh
@@ -4,17 +4,16 @@ set -e
 
 . /opt/kolla/config-neutron.sh
 
-: ${DHCP_DRIVER:=neutron.agent.linux.dhcp.Dnsmasq}
-: ${USE_NAMESPACES:=true}
-: ${DELETE_NAMESPACES:=true}
-: ${DNSMASQ_CONFIG_FILE:=/etc/neutron/dnsmasq/dnsmasq-neutron.conf}
-: ${ROOT_HELPER:=sudo neutron-rootwrap /etc/neutron/rootwrap.conf}
-
 mkdir -p $(dirname $DNSMASQ_CONFIG_FILE)
 
-check_required_vars VERBOSE_LOGGING DEBUG_LOGGING MECHANISM_DRIVERS \
-                    DHCP_DRIVER USE_NAMESPACES DELETE_NAMESPACES \
-                    NEUTRON_LOG_DIR DNSMASQ_CONFIG_FILE \
+check_required_vars DEBUG_LOGGING \
+                    DELETE_NAMESPACES \
+                    DHCP_DRIVER \
+                    DNSMASQ_CONFIG_FILE \
+                    MECHANISM_DRIVERS \
+                    NEUTRON_LOG_DIR \
+                    USE_NAMESPACES \
+                    VERBOSE_LOGGING
 
 cfg=/etc/neutron/dhcp_agent.ini
 neutron_conf=/etc/neutron/neutron.conf
diff --git a/docker/common/neutron/neutron-l3-agent/config-internal.sh b/docker/common/neutron/neutron-l3-agent/config-internal.sh
index 94d7af0a60e22de823dbda2311c0c487b58c4267..14e9a091d8e3ab5d032d485476067dcbf764cdcb 100755
--- a/docker/common/neutron/neutron-l3-agent/config-internal.sh
+++ b/docker/common/neutron/neutron-l3-agent/config-internal.sh
@@ -4,9 +4,9 @@ set -e
 
 . /opt/kolla/config-neutron.sh
 
-: ${USE_NAMESPACES:=true}
+check_required_vars DEBUG_LOGGING \
+                    VERBOSE_LOGGING
 
-check_required_vars VERBOSE_LOGGING DEBUG_LOGGING
 
 cfg=/etc/neutron/l3_agent.ini
 neutron_conf=/etc/neutron/neutron.conf
diff --git a/docker/common/neutron/neutron-linuxbridge-agent/config-internal.sh b/docker/common/neutron/neutron-linuxbridge-agent/config-internal.sh
index 343caf2982141ac1d74ec5c4a16da772e3e28953..3005a6047196c6fe585c3e8b8b482b7742a196b8 100755
--- a/docker/common/neutron/neutron-linuxbridge-agent/config-internal.sh
+++ b/docker/common/neutron/neutron-linuxbridge-agent/config-internal.sh
@@ -4,11 +4,9 @@ set -e
 
 . /opt/kolla/config-neutron.sh
 
-: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1}
-: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1}
-
-check_required_vars PUBLIC_IP NEUTRON_FLAT_NETWORK_NAME \
-                    NEUTRON_FLAT_NETWORK_INTERFACE
+check_required_vars NEUTRON_FLAT_NETWORK_INTERFACE \
+                    NEUTRON_FLAT_NETWORK_NAME \
+                    PUBLIC_IP
 
 cfg=/etc/neutron/plugins/ml2/ml2_conf.ini
 
diff --git a/docker/common/neutron/neutron-metadata-agent/config-internal.sh b/docker/common/neutron/neutron-metadata-agent/config-internal.sh
index 0c2aecd02aa2f5e272d7d7695d7c20ad189c3c0c..b0860006fbe8921130d2d5335f921881278f1521 100755
--- a/docker/common/neutron/neutron-metadata-agent/config-internal.sh
+++ b/docker/common/neutron/neutron-metadata-agent/config-internal.sh
@@ -4,15 +4,16 @@ set -e
 
 . /opt/kolla/config-neutron.sh
 
-: ${KEYSTONE_REGION:=RegionOne}
-: ${ENDPOINT_TYPE:=adminURL}
-: ${NEUTRON_SHARED_SECRET:=sharedsecret}
-
-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_METADATA_API_SERVICE_HOST \
-                    NOVA_METADATA_API_SERVICE_PORT
+check_required_vars ADMIN_TENANT_NAME \
+                    DEBUG_LOGGING \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    NEUTRON_KEYSTONE_PASSWORD \
+                    NEUTRON_KEYSTONE_USER \
+                    NEUTRON_SHARED_SECRET \
+                    NOVA_METADATA_API_SERVICE_HOST \
+                    NOVA_METADATA_API_SERVICE_PORT \
+                    VERBOSE_LOGGING
 
 cfg=/etc/neutron/metadata_agent.ini
 neutron_conf=/etc/neutron/neutron.conf
diff --git a/docker/common/neutron/neutron-openvswitch-agent/config-internal.sh b/docker/common/neutron/neutron-openvswitch-agent/config-internal.sh
index de22c4adb5bed0365428e50a98247cf87903fbe2..14d5aeb90e55823108e9e321031ddce45baa1d86 100755
--- a/docker/common/neutron/neutron-openvswitch-agent/config-internal.sh
+++ b/docker/common/neutron/neutron-openvswitch-agent/config-internal.sh
@@ -4,11 +4,9 @@ set -e
 
 . /opt/kolla/config-neutron.sh
 
-: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1}
-: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1}
-
-check_required_vars PUBLIC_IP NEUTRON_FLAT_NETWORK_NAME \
-                    NEUTRON_FLAT_NETWORK_INTERFACE
+check_required_vars NEUTRON_FLAT_NETWORK_INTERFACE \
+                    NEUTRON_FLAT_NETWORK_NAME \
+                    PUBLIC_IP
 
 if ! ovs-vsctl show |grep ${NEUTRON_FLAT_NETWORK_INTERFACE} > /dev/null; then
     ovs-vsctl add-br ${NEUTRON_FLAT_NETWORK_INTERFACE}
diff --git a/docker/common/neutron/neutron-server/config-internal.sh b/docker/common/neutron/neutron-server/config-internal.sh
index fb971083f583422f5f1e21b57ad259098f969f74..961a0aaf742e6e74fd62b8bc739cca664927d8ac 100755
--- a/docker/common/neutron/neutron-server/config-internal.sh
+++ b/docker/common/neutron/neutron-server/config-internal.sh
@@ -4,16 +4,21 @@ set -e
 
 . /opt/kolla/config-neutron.sh
 
-: ${NEUTRON_FLAT_NETWORK_NAME:=physnet1}
-: ${NEUTRON_FLAT_NETWORK_INTERFACE:=eth1}
-
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
-                    KEYSTONE_AUTH_PROTOCOL NOVA_API_SERVICE_HOST \
-                    NOVA_KEYSTONE_USER NOVA_KEYSTONE_PASSWORD \
-                    NEUTRON_DB_NAME NEUTRON_DB_USER NEUTRON_DB_PASSWORD \
-                    NEUTRON_KEYSTONE_USER NEUTRON_KEYSTONE_PASSWORD \
-                    ADMIN_TENANT_NAME NEUTRON_SERVER_SERVICE_HOST \
-                    PUBLIC_IP NEUTRON_DB_PASSWORD
+check_required_vars ADMIN_TENANT_NAME \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_AUTH_PROTOCOL \
+                    NEUTRON_DB_NAME \
+                    NEUTRON_DB_PASSWORD \
+                    NEUTRON_DB_PASSWORD \
+                    NEUTRON_DB_USER \
+                    NEUTRON_KEYSTONE_PASSWORD \
+                    NEUTRON_KEYSTONE_USER \
+                    NEUTRON_SERVER_SERVICE_HOST \
+                    NOVA_API_SERVICE_HOST \
+                    NOVA_KEYSTONE_PASSWORD \
+                    NOVA_KEYSTONE_USER \
+                    PUBLIC_IP
 fail_unless_os_service_running keystone
 fail_unless_db
 
diff --git a/docker/common/nova/nova-api/config-internal.sh b/docker/common/nova/nova-api/config-internal.sh
index 7928370a46324521bc85bb6d0cde7800f8b22e22..86768a60db5bb102cdec41e86cb25dcb651ba642 100755
--- a/docker/common/nova/nova-api/config-internal.sh
+++ b/docker/common/nova/nova-api/config-internal.sh
@@ -4,10 +4,15 @@ 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
+check_required_vars ADMIN_TENANT_NAME \
+                    KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
+                    NOVA_API_SERVICE_HOST \
+                    NOVA_DB_NAME \
+                    NOVA_EC2_API_SERVICE_HOST \
+                    NOVA_KEYSTONE_PASSWORD \
+                    NOVA_KEYSTONE_USER \
+                    PUBLIC_IP
 fail_unless_os_service_running keystone
 fail_unless_db $NOVA_DB_NAME
 
diff --git a/docker/common/nova/nova-base/config-nova.sh b/docker/common/nova/nova-base/config-nova.sh
index 8789a14a54e0ba02386fb90b0843ad34d2f900c5..6465d48a23624cc271d54565a63da31f3a8ad48d 100755
--- a/docker/common/nova/nova-base/config-nova.sh
+++ b/docker/common/nova/nova-base/config-nova.sh
@@ -2,24 +2,15 @@
 
 . /opt/kolla/kolla-common.sh
 
-: ${NOVA_DB_USER:=nova}
-: ${NOVA_DB_NAME:=nova}
-: ${NOVA_KEYSTONE_USER:=admin}
-: ${NOVA_KEYSTONE_PASSWORD:=kolla}
-: ${ADMIN_TENANT_NAME:=admin}
-: ${RABBIT_USERID:=guest}
-: ${RABBIT_PASSWORD:=guest}
-: ${NETWORK_MANAGER:=nova}
-: ${FLAT_NETWORK:=eth1}
-: ${PUBLIC_NETWORK:=eth0}
-: ${ENABLED_APIS:=ec2,osapi_compute,metadata}
-: ${METADATA_HOST:=$PUBLIC_IP}
-: ${NEUTRON_SHARED_SECRET:=sharedsecret}
-
-check_required_vars KEYSTONE_ADMIN_TOKEN NOVA_DB_PASSWORD \
-                    RABBITMQ_SERVICE_HOST GLANCE_API_SERVICE_HOST \
-                    KEYSTONE_PUBLIC_SERVICE_HOST PUBLIC_IP \
-                    PUBLIC_INTERFACE FLAT_INTERFACE DEBUG_LOGGING \
+check_required_vars DEBUG_LOGGING \
+                    FLAT_INTERFACE \
+                    GLANCE_API_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
+                    KEYSTONE_PUBLIC_SERVICE_HOST \
+                    NOVA_DB_PASSWORD \
+                    PUBLIC_INTERFACE \
+                    PUBLIC_IP \
+                    RABBITMQ_SERVICE_HOST \
                     VERBOSE_LOGGING
 
 cfg=/etc/nova/nova.conf
diff --git a/docker/common/nova/nova-conductor/config-internal.sh b/docker/common/nova/nova-conductor/config-internal.sh
index 3bba8cf3a0649fe9ef6a0c4849d7e64dd158e595..e242b4db5f8bb68f009812bd44b110671fdf8478 100755
--- a/docker/common/nova/nova-conductor/config-internal.sh
+++ b/docker/common/nova/nova-conductor/config-internal.sh
@@ -4,8 +4,10 @@ set -e
 
 . /opt/kolla/config-nova.sh
 
-check_required_vars NOVA_DB_NAME NOVA_DB_USER NOVA_DB_PASSWORD \
-                    INIT_NOVA_DB
+check_required_vars INIT_NOVA_DB \
+                    NOVA_DB_NAME \
+                    NOVA_DB_PASSWORD \
+                    NOVA_DB_USER
 fail_unless_db
 
 cfg=/etc/nova/nova.conf
diff --git a/docker/common/nova/nova-novncproxy/config-internal.sh b/docker/common/nova/nova-novncproxy/config-internal.sh
index 9edafbca340fa5fff8aa09d24b9dd87f9e0f7da9..6ddea5a7641fd8ff79f31588979a196d551e08e0 100755
--- a/docker/common/nova/nova-novncproxy/config-internal.sh
+++ b/docker/common/nova/nova-novncproxy/config-internal.sh
@@ -4,9 +4,12 @@ set -e
 
 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
+check_required_vars NOVA_NOVNC_BASE_ADDRESS \
+                    NOVA_NOVNC_PROXY_PORT \
+                    NOVA_NOVNC_PROXY_SERVICE_HOST \
+                    NOVA_VNCSERVER_LISTEN_ADDRESS \
+                    NOVA_VNCSERVER_PROXYCLIENT_ADDRESS \
+                    PUBLIC_IP
 
 crudini --set $cfg DEFAULT log_file "${NOVA_NOVNCPROXY_LOG_FILE}"
 
diff --git a/docker/common/rabbitmq/config-internal.sh b/docker/common/rabbitmq/config-internal.sh
index 8fc77f421f7559d5f36594330fcac70af6a66f55..b34a4fa599d806093b31becc41bfe2e32ba8dc02 100755
--- a/docker/common/rabbitmq/config-internal.sh
+++ b/docker/common/rabbitmq/config-internal.sh
@@ -3,7 +3,8 @@
 . /opt/kolla/kolla-common.sh
 . /opt/kolla/config-rabbit.sh
 
-check_required_vars RABBITMQ_PASS RABBITMQ_USER
+check_required_vars RABBITMQ_PASS \
+                    RABBITMQ_USER
 
 configure_rabbit
 
diff --git a/docker/common/rabbitmq/config-rabbit.sh b/docker/common/rabbitmq/config-rabbit.sh
index 29cd1bb06d82b32cd3e2cb7d25f83db9de352517..f14d796ad7db935edc79a6873f31b28c7aed0c86 100644
--- a/docker/common/rabbitmq/config-rabbit.sh
+++ b/docker/common/rabbitmq/config-rabbit.sh
@@ -21,7 +21,8 @@ function set_rabbitmq_cookie {
 }
 
 function configure_cluster {
-    check_required_vars RABBITMQ_CLUSTER_COOKIE RABBITMQ_CLUSTER_NODES
+    check_required_vars RABBITMQ_CLUSTER_COOKIE \
+                        RABBITMQ_CLUSTER_NODES
     set_rabbitmq_cookie
 
     HOSTNAME=""
diff --git a/docker/common/swift/swift-account/config-internal.sh b/docker/common/swift/swift-account/config-internal.sh
index bf86830f98d0d82fbe09b708c3d1cbf3464f9ef4..c0531f46e346f6d0015045bbcb40a0e03c84ed46 100755
--- a/docker/common/swift/swift-account/config-internal.sh
+++ b/docker/common/swift/swift-account/config-internal.sh
@@ -1,12 +1,7 @@
 #!/bin/bash
 
-: ${SWIFT_DB_USER:=swift}
-: ${SWIFT_DB_NAME:=swift}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${SWIFT_KEYSTONE_USER:=swift}
-: ${ADMIN_TENANT_NAME:=admin}
-
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+check_required_vars KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
                     SWIFT_ADMIN_PASSWORD
 fail_unless_db
 fail_unless_os_service_running keystone
diff --git a/docker/common/swift/swift-container/config-internal.sh b/docker/common/swift/swift-container/config-internal.sh
index 42d4ccf35531a6fb10c1d7306c892910a4ced49e..a11c10561ca771a794687fb4cfd0a493ffdd253b 100755
--- a/docker/common/swift/swift-container/config-internal.sh
+++ b/docker/common/swift/swift-container/config-internal.sh
@@ -1,12 +1,7 @@
 #!/bin/bash
 
-: ${SWIFT_DB_USER:=swift}
-: ${SWIFT_DB_NAME:=swift}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${SWIFT_KEYSTONE_USER:=swift}
-: ${ADMIN_TENANT_NAME:=admin}
-
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+check_required_vars KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
                     SWIFT_ADMIN_PASSWORD
 fail_unless_db
 fail_unless_os_service_running keystone
diff --git a/docker/common/swift/swift-object/config-internal.sh b/docker/common/swift/swift-object/config-internal.sh
index 7ed97536e757761df6de4f040a88119c212053b8..5931e89d6c880a64153da9bf1be7033ac12b454f 100755
--- a/docker/common/swift/swift-object/config-internal.sh
+++ b/docker/common/swift/swift-object/config-internal.sh
@@ -1,12 +1,7 @@
 #!/bin/bash
 
-: ${SWIFT_DB_USER:=swift}
-: ${SWIFT_DB_NAME:=swift}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-: ${SWIFT_KEYSTONE_USER:=swift}
-: ${ADMIN_TENANT_NAME:=admin}
-
-check_required_vars KEYSTONE_ADMIN_TOKEN KEYSTONE_ADMIN_SERVICE_HOST \
+check_required_vars KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
                     SWIFT_ADMIN_PASSWORD
 fail_unless_db
 fail_unless_os_service_running keystone
diff --git a/docker/common/zaqar/config-internal.sh b/docker/common/zaqar/config-internal.sh
index 6c68fccf22e0d941bd10b5e9bd776ab83172e07a..4fd2bb112c92757fd1c16254525b92faa7d6f991 100755
--- a/docker/common/zaqar/config-internal.sh
+++ b/docker/common/zaqar/config-internal.sh
@@ -4,13 +4,11 @@ set -e
 
 . /opt/kolla/kolla-common.sh
 
-: ${ADMIN_TENANT_NAME:=admin}
-: ${ZAQAR_KEYSTONE_USER:=zaqar}
-: ${KEYSTONE_AUTH_PROTOCOL:=http}
-
-check_required_vars ZAQAR_KEYSTONE_PASSWORD ZAQAR_SERVER_SERVICE_HOST \
-                    KEYSTONE_ADMIN_SERVICE_HOST KEYSTONE_ADMIN_TOKEN \
-                    PUBLIC_IP
+check_required_vars KEYSTONE_ADMIN_SERVICE_HOST \
+                    KEYSTONE_ADMIN_TOKEN \
+                    PUBLIC_IP \
+                    ZAQAR_KEYSTONE_PASSWORD \
+                    ZAQAR_SERVER_SERVICE_HOST
 dump_vars
 
 #check_for_mongodb
diff --git a/docs/minimal-environment-vars.md b/docs/minimal-environment-vars.md
index ab5d3d4857141e203076b2242f14c501e814014e..83cd6a5ef1e439dba1cfee9bdc2afaa7b40a48a3 100644
--- a/docs/minimal-environment-vars.md
+++ b/docs/minimal-environment-vars.md
@@ -392,7 +392,6 @@ In order for each service to function, there is a minimum set of required variab
     NOVA_METADATA_API_SERVICE_PORT
     USE_NAMESPACES
     VERBOSE_LOGGING
-    cfg
 
 # Neutron-base
 
diff --git a/tools/genenv b/tools/genenv
index e78f64ab3d1eec7ec78397a5ab306795466aac24..bcb1d1f72246b7ee412ce1e49638982d626b2f5d 100755
--- a/tools/genenv
+++ b/tools/genenv
@@ -42,20 +42,29 @@ echo MY_DEV=$MY_DEV
 # API versions
 CINDER_API_VERSION=2
 
-# Admin user password
+# Admin user
+ADMIN_USER=admin
 ADMIN_USER_PASSWORD=steakfordinner
 
 # Database
+BIND_ADDRESS=$PUBLIC_IP
+CHAR_SET_SERVER=utf8
+COLLATION_SERVER=utf8_general_ci
+DATADIR=/var/lib/mysql
+DEFAULT_STORAGE_ENGINE=innodb
 HOST_IP=$MY_IP
 INIT_CINDER_DB=true
+INIT_CONNECT=SET NAMES utf8
 INIT_DESIGNATE_DB=true
 INIT_GLANCE_DB=true
 INIT_HEAT_DB=true
 INIT_KEYSTONE_DB=true
 INIT_NOVA_DB=true
-MARIADB_ROOT_PASSWORD=kolla
+INNODB_FILE_PER_TABLE=true
 MARIADB_MAX_CONNECTIONS=151
+MARIADB_ROOT_PASSWORD=kolla
 PASSWORD=12345
+TEMP_FILE=/tmp/mysql-first-time.sql
 
 # Galera
 DB_CLUSTER_BIND_ADDRESS=0.0.0.0
@@ -69,56 +78,112 @@ ADMIN_TENANT_NAME=admin
 PUBLIC_IP=$HOST_IP
 
 # Logging
+CINDER_API_LOG_FILE=
+CINDER_BACKUP_LOG_FILE=
+CINDER_LOG_DIR=
+CINDER_SCHEDULER_LOG_FILE=
+CINDER_VOLUME_LOG_FILE=
 DEBUG_LOGGING=false
-VERBOSE_LOGGING=true
-NOVA_LOG_DIR=
+NEUTRON_L3_AGENT_LOG_FILE=
+NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=
 NEUTRON_LOG_DIR=/var/log/neutron
+NEUTRON_METADATA_AGENT_LOG_FILE=
+NEUTRON_SERVER_LOG_FILE=
 NOVA_API_LOG_FILE=
-NOVA_CONDUCTOR_LOG_FILE=
-NOVA_SCHEDULER_LOG_FILE=
 NOVA_COMPUTE_LOG_FILE=
+NOVA_CONDUCTOR_LOG_FILE=
 NOVA_CONSOLEAUTH_LOG_FILE=
+NOVA_LOG_DIR=
 NOVA_NOVNCPROXY_LOG_FILE=
-NEUTRON_SERVER_LOG_FILE=
-NEUTRON_L3_AGENT_LOG_FILE=
-NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=
-NEUTRON_METADATA_AGENT_LOG_FILE=
-CINDER_LOG_DIR=
-CINDER_API_LOG_FILE=
-CINDER_VOLUME_LOG_FILE=
-CINDER_BACKUP_LOG_FILE=
-CINDER_SCHEDULER_LOG_FILE=
+NOVA_SCHEDULER_LOG_FILE=
 OVS_DB_FILE="/etc/openvswitch/conf.db"
 OVS_LOG_FILE=
 OVS_UNIXSOCK="/var/run/openvswitch/db.sock"
+VERBOSE_LOGGING=true
+
 
 # RabbitMQ
-RABBITMQ_SERVICE_HOST=$HOST_IP
-RABBITMQ_CLUSTER_NODES=
 RABBITMQ_CLUSTER_COOKIE=
-RABBIT_USER=guest
+RABBITMQ_CLUSTER_NODES=
+RABBITMQ_SERVICE_HOST=$HOST_IP
 RABBIT_PASSWORD=guest
+RABBIT_USER=guest
 
-# Networking Options are nova or neutron
-NETWORK_MANAGER=neutron
-
-# Keystone
-KEYSTONE_ADMIN_TOKEN=$PASSWORD
-KEYSTONE_DB_PASSWORD=kolla
-KEYSTONE_ADMIN_PASSWORD=$PASSWORD
-KEYSTONE_PUBLIC_SERVICE_HOST=$HOST_IP
-KEYSTONE_PUBLIC_SERVICE_PORT=5000
-KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP
-KEYSTONE_ADMIN_SERVICE_PORT=35357
+#Barbican
+ADMIN_TENANT_NAME=admin
+BARBICAN_DB_NAME=barbican
+BARBICAN_DB_USER=barbican
+BARBICAN_KEYSTONE_USER=barbican
 KEYSTONE_AUTH_PROTOCOL=http
 
+#Ceilometer
+CEILOMETER_ADMIN_PASSWORD=password
+CEILOMETER_API_SERVICE_HOST=$HOST_IP
+CEILOMETER_DB_NAME=ceilometer
+CEILOMETER_DB_PASSWORD=password
+CEILOMETER_DB_USER=ceilometer
+CEILOMETER_KEYSTONE_USER=ceilometer
+
+# Cinder API
+CINDER_ADMIN_PASSWORD=password
+CINDER_API_SERVICE_HOST=$HOST_IP
+CINDER_API_SERVICE_LISTEN=$HOST_IP
+CINDER_API_SERVICE_PORT=8776
+CINDER_KEYSTONE_PASSWORD=password
+CINDER_KEYSTONE_USER=cinder
+
+# Cinder Scheduler
+CINDER_DB_NAME=cinder
+CINDER_DB_PASSWORD=password
+CINDER_DB_USER=cinder
+
+# Cinder Backup
+CINDER_BACKUP_API_CLASS=cinder.backup.api.API
+CINDER_BACKUP_DRIVER=cinder.backup.drivers.swift
+CINDER_BACKUP_MANAGER=cinder.backup.manager.BackupManager
+CINDER_BACKUP_NAME_TEMPLATE=backup-%s
+
+# Cinder Volume
+CINDER_ENABLED_BACKEND=lvm57
+CINDER_LVM_LO_VOLUME_SIZE=4G
+CINDER_VOLUME_API_LISTEN=$HOST_IP
+CINDER_VOLUME_BACKEND_NAME=LVM_iSCSI57
+CINDER_VOLUME_DRIVER=cinder.volume.drivers.lvm.LVMISCSIDriver
+CINDER_VOLUME_GROUP=cinder-volumes
+ISCSI_HELPER=tgtadm
+ISCSI_IP_ADDRESS=$HOST_IP
+
+# Designate
+DESIGNATE_DB_NAME=designate
+DESIGNATE_DB_USER=designate
+DESIGNATE_DB_PASSWORD=designatedns
+DESIGNATE_KEYSTONE_USER=designate
+DESIGNATE_KEYSTONE_PASSWORD=designate
+DESIGNATE_BIND9_RNDC_KEY=$(openssl rand -base64 24)
+DESIGNATE_MASTERNS=$HOST_IP
+DESIGNATE_BACKEND=bind9
+DESIGNATE_SLAVENS=$HOST_IP
+DESIGNATE_API_SERVICE_HOST=$HOST_IP
+DESIGNATE_API_SERVICE_PORT=9001
+DESIGNATE_MDNS_PORT=5354
+DESIGNATE_DNS_PORT=53
+DESIGNATE_POOLMAN_POOLID=$(uuidgen)
+DESIGNATE_POOLMAN_TARGETS=$(uuidgen)
+DESIGNATE_POOLMAN_NSS=$(uuidgen)
+DESIGNATE_ALLOW_RECURSION=true
+DESIGNATE_DEFAULT_POOL_NS_RECORD=ns1.example.org.
+DESIGNATE_SINK_NOVA_DOMAIN_NAME=nova.example.org.
+DESIGNATE_SINK_NEUTRON_DOMAIN_NAME=neutron.example.org.
+DESIGNATE_SINK_NOVA_FORMATS=("%(octet0)s-%(octet1)s-%(octet2)s-%(octet3)s.%(domain)s" "%(hostname)s.%(domain)s")
+DESIGNATE_SINK_NEUTRON_FORMATS=("%(octet0)s-%(octet1)s-%(octet2)s-%(octet3)s.%(domain)s" "%(hostname)s.%(domain)s")
+
 # Glance
+GLANCE_API_SERVICE_HOST=$HOST_IP
 GLANCE_DB_NAME=glance
-GLANCE_DB_USER=glance
 GLANCE_DB_PASSWORD=kolla
-GLANCE_KEYSTONE_USER=glance
+GLANCE_DB_USER=glance
 GLANCE_KEYSTONE_PASSWORD=glance
-GLANCE_API_SERVICE_HOST=$HOST_IP
+GLANCE_KEYSTONE_USER=glance
 GLANCE_REGISTRY_SERVICE_HOST=$HOST_IP
 
 # Gnocchi
@@ -133,24 +198,50 @@ GNOCCHI_KEYSTONE_PASSWORD=gnocchi
 GNOCCHI_ADMIN_PASSWORD=gnocchi
 GNOCCHI_API_SERVICE_HOST=$HOST_IP
 
-# Nova
-NOVA_DB_PASSWORD=nova
-NOVA_DB_NAME=nova
-NOVA_DB_USER=nova
-NOVA_KEYSTONE_USER=nova
-NOVA_KEYSTONE_PASSWORD=nova
-NOVA_API_SERVICE_HOST=$HOST_IP
-NOVA_METADATA_API_SERVICE_HOST=$HOST_IP
-NOVA_EC2_SERVICE_HOST=$HOST_IP
-NOVA_PUBLIC_INTERFACE=$MY_DEV
-NOVA_FLAT_INTERFACE=eth1
-ENABLED_APIS=ec2,osapi_compute,metadata
-METADATA_HOST=$HOST_IP
-NOVA_NOVNC_PROXY_PORT=6080
-NOVA_VNCSERVER_LISTEN_ADDRESS=$HOST_IP
-NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
-NOVA_NOVNC_PROXY_SERVICE_HOST=0.0.0.0
-NOVA_NOVNC_BASE_ADDRESS=${PUBLIC_IP}
+
+# Heat
+HEAT_API_CFN_SERVICE_HOST=$HOST_IP
+HEAT_API_CFN_SERVICE_PORT=8000
+HEAT_API_CFN_URL_HOST=$HOST_IP
+HEAT_API_SERVICE_HOST=$HOST_IP
+HEAT_CFN_KEYSTONE_PASSWORD=heat
+HEAT_CFN_KEYSTONE_USER=heat-cfn
+HEAT_DB_NAME=heat
+HEAT_DB_PASSWORD=kolla
+HEAT_DOMAIN_PASS=$(openssl rand -hex 8)
+HEAT_KEYSTONE_PASSWORD=heat
+HEAT_KEYSTONE_USER=heat
+
+#Horizon
+HORIZON_KEYSTONE_USER=horizon
+
+# Keystone
+KEYSTONE_ADMIN_PASSWORD=$PASSWORD
+KEYSTONE_ADMIN_SERVICE_HOST=$HOST_IP
+KEYSTONE_ADMIN_SERVICE_PORT=35357
+KEYSTONE_ADMIN_TOKEN=$PASSWORD
+KEYSTONE_AUTH_PROTOCOL=http
+KEYSTONE_DB_NAME=keystone
+KEYSTONE_DB_PASSWORD=kolla
+KEYSTONE_DB_USER=keystone
+KEYSTONE_PUBLIC_SERVICE_HOST=$HOST_IP
+KEYSTONE_PUBLIC_SERVICE_PORT=5000
+KEYSTONE_USER=keystone
+TOKEN_DRIVER=sql
+TOKEN_PROVIDER=uuid
+
+# Keepalived
+# Here we define pairs hostname:priority. Priorities have to be unique
+KEEPALIVED_HOST_PRIORITIES=host1:100,host2:99
+
+# Magnum
+MAGNUM_DB_NAME=magnum
+MAGNUM_DB_USER=magnum
+MAGNUM_DB_PASSWORD=kolla
+MAGNUM_KEYSTONE_USER=magnum
+MAGNUM_KEYSTONE_PASSWORD=magnum
+MAGNUM_API_SERVICE_HOST=$HOST_IP
+MAGNUM_API_SERVICE_PORT=9511
 
 # Neutron
 NEUTRON_DB_NAME=neutron
@@ -168,137 +259,140 @@ MECHANISM_DRIVERS=linuxbridge,l2population
 NEUTRON_FLAT_NETWORK_NAME=physnet1
 NEUTRON_FLAT_NETWORK_INTERFACE=eth1
 
+# Neutron ML2 Plugin
+MECHANISM_DRIVERS=linuxbridge,l2population
+TENANT_NETWORK_TYPES=flat,vxlan
+TYPE_DRIVERS=flat,vxlan
+
+# Neutron Linux Bridge Agent
+DELETE_NAMESPACES=true
+DHCP_DRIVER=neutron.agent.linux.dhcp.Dnsmasq
+DNSMASQ_CONFIG_FILE=/etc/neutron/dnsmasq/dnsmasq-neutron.conf
+ENDPOINT_TYPE=adminURL
+KEYSTONE_REGION=RegionOne
+NEUTRON_FLAT_NETWORK_INTERFACE=eth1
+NEUTRON_FLAT_NETWORK_NAME=physnet1
+ROOT_HELPER=sudo neutron-rootwrap /etc/neutron/rootwrap.conf
+USE_NAMESPACES=true
+
+# Networking Options are nova or neutron
+NETWORK_MANAGER=neutron
+
+# Nova
+ENABLED_APIS=ec2,osapi_compute,metadata
+METADATA_HOST=$HOST_IP
+NOVA_API_SERVICE_HOST=$HOST_IP
+NOVA_DB_NAME=nova
+NOVA_DB_PASSWORD=nova
+NOVA_DB_USER=nova
+NOVA_EC2_SERVICE_HOST=$HOST_IP
+NOVA_FLAT_INTERFACE=eth1
+NOVA_KEYSTONE_PASSWORD=nova
+NOVA_KEYSTONE_USER=nova
+NOVA_METADATA_API_SERVICE_HOST=$HOST_IP
+NOVA_NOVNC_BASE_ADDRESS=${PUBLIC_IP}
+NOVA_NOVNC_PROXY_PORT=6080
+NOVA_NOVNC_PROXY_SERVICE_HOST=0.0.0.0
+NOVA_PUBLIC_INTERFACE=$MY_DEV
+NOVA_VNCSERVER_LISTEN_ADDRESS=$HOST_IP
+NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
+
 # Nova/Neutron
 NEUTRON_SHARED_SECRET=sharedsecret
 
-# Heat
-HEAT_DB_NAME=heat
-HEAT_DB_PASSWORD=kolla
-HEAT_KEYSTONE_USER=heat
-HEAT_KEYSTONE_PASSWORD=heat
-HEAT_CFN_KEYSTONE_USER=heat-cfn
-HEAT_CFN_KEYSTONE_PASSWORD=heat
-HEAT_API_SERVICE_HOST=$HOST_IP
-HEAT_API_CFN_SERVICE_HOST=$HOST_IP
-HEAT_API_CFN_SERVICE_PORT=8000
-HEAT_API_CFN_URL_HOST=$HOST_IP
-HEAT_DOMAIN_PASS=$(openssl rand -hex 8)
+#Swift
+SWIFT_DB_NAME=swift
+SWIFT_DB_USER=swift
+SWIFT_KEYSTONE_USER=swift
 
-# Magnum
-MAGNUM_DB_NAME=magnum
-MAGNUM_DB_USER=magnum
-MAGNUM_DB_PASSWORD=kolla
-MAGNUM_KEYSTONE_USER=magnum
-MAGNUM_KEYSTONE_PASSWORD=magnum
-MAGNUM_API_SERVICE_HOST=$HOST_IP
-MAGNUM_API_SERVICE_PORT=9511
+#Zaqar
+ZAQAR_KEYSTONE_USER=zaqar
 
-# Designate
-DESIGNATE_DB_NAME=designate
-DESIGNATE_DB_USER=designate
-DESIGNATE_DB_PASSWORD=designatedns
-DESIGNATE_KEYSTONE_USER=designate
-DESIGNATE_KEYSTONE_PASSWORD=designate
-DESIGNATE_BIND9_RNDC_KEY=$(openssl rand -base64 24)
-DESIGNATE_MASTERNS=$HOST_IP
-DESIGNATE_BACKEND=bind9
-DESIGNATE_SLAVENS=$HOST_IP
-DESIGNATE_API_SERVICE_HOST=$HOST_IP
-DESIGNATE_API_SERVICE_PORT=9001
-DESIGNATE_MDNS_PORT=5354
-DESIGNATE_DNS_PORT=53
-DESIGNATE_POOLMAN_POOLID=$(uuidgen)
-DESIGNATE_POOLMAN_TARGETS=$(uuidgen)
-DESIGNATE_POOLMAN_NSS=$(uuidgen)
-DESIGNATE_ALLOW_RECURSION=true
-DESIGNATE_DEFAULT_POOL_NS_RECORD=ns1.example.org.
-DESIGNATE_SINK_NOVA_DOMAIN_NAME=nova.example.org.
-DESIGNATE_SINK_NEUTRON_DOMAIN_NAME=neutron.example.org.
-DESIGNATE_SINK_NOVA_FORMATS=("%(octet0)s-%(octet1)s-%(octet2)s-%(octet3)s.%(domain)s" "%(hostname)s.%(domain)s")
-DESIGNATE_SINK_NEUTRON_FORMATS=("%(octet0)s-%(octet1)s-%(octet2)s-%(octet3)s.%(domain)s" "%(hostname)s.%(domain)s")
-
-# Cinder API
-CINDER_API_SERVICE_HOST=$HOST_IP
-CINDER_API_SERVICE_PORT=8776
-CINDER_API_SERVICE_LISTEN=$HOST_IP
-CINDER_KEYSTONE_USER=cinder
-CINDER_KEYSTONE_PASSWORD=password
-CINDER_ADMIN_PASSWORD=password
-
-# Cinder Scheduler
-CINDER_DB_NAME=cinder
-CINDER_DB_USER=cinder
-CINDER_DB_PASSWORD=password
-
-# Cinder Backup
-CINDER_BACKUP_MANAGER=cinder.backup.manager.BackupManager
-CINDER_BACKUP_API_CLASS=cinder.backup.api.API
-CINDER_BACKUP_NAME_TEMPLATE=backup-%s
-CINDER_BACKUP_DRIVER=cinder.backup.drivers.swift
-
-# Cinder Volume
-ISCSI_HELPER=tgtadm
-ISCSI_IP_ADDRESS=$HOST_IP
-CINDER_LVM_LO_VOLUME_SIZE=4G
-CINDER_VOLUME_API_LISTEN=$HOST_IP
-CINDER_VOLUME_GROUP=cinder-volumes
-CINDER_VOLUME_BACKEND_NAME=LVM_iSCSI57
-CINDER_VOLUME_DRIVER=cinder.volume.drivers.lvm.LVMISCSIDriver
-CINDER_ENABLED_BACKEND=lvm57
-
-# Keepalived
-# Here we define pairs hostname:priority. Priorities have to be unique
-KEEPALIVED_HOST_PRIORITIES=host1:100,host2:99
-
-#Barbican
-BARBICAN_DB_USER=barbican
-BARBICAN_DB_NAME=barbican
-KEYSTONE_AUTH_PROTOCOL=http
-BARBICAN_KEYSTONE_USER=barbican
-ADMIN_TENANT_NAME=admin
-
-#Ceilometer
-CEILOMETER_ADMIN_PASSWORD=password
-CEILOMETER_API_SERVICE_HOST=$HOST_IP
-CEILOMETER_DB_NAME=ceilometer
-CEILOMETER_DB_PASSWORD=password
-CEILOMETER_DB_USER=ceilometer
-CEILOMETER_KEYSTONE_USER=ceilometer
-
-# this should use the keystone admin port
-# https://bugs.launchpad.net/kolla/+bug/1469209
-cat > ./openrc <<EOF
-export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0"
-export OS_USERNAME=$ADMIN_TENANT_NAME
-export OS_PASSWORD=$ADMIN_USER_PASSWORD
-export OS_TENANT_NAME=$ADMIN_TENANT_NAME
-export OS_VOLUME_API_VERSION=$CINDER_API_VERSION
-EOF
+# this should use the keystone admin port
+# https://bugs.launchpad.net/kolla/+bug/1469209
+cat > ./openrc <<EOF
+export OS_AUTH_URL="http://${KEYSTONE_PUBLIC_SERVICE_HOST}:${KEYSTONE_PUBLIC_SERVICE_PORT}/v2.0"
+export OS_USERNAME=$ADMIN_TENANT_NAME
+export OS_PASSWORD=$ADMIN_USER_PASSWORD
+export OS_TENANT_NAME=$ADMIN_TENANT_NAME
+export OS_VOLUME_API_VERSION=$CINDER_API_VERSION
+EOF
 
 cat > ./compose/openstack.env <<EOF
-KOLLA_CONFIG_STRATEGY=CONFIG_INTERNAL
-DEBUG_LOGGING=$DEBUG_LOGGING
-VERBOSE_LOGGING=$VERBOSE_LOGGING
-NOVA_LOG_DIR=$NOVA_LOG_DIR
-NEUTRON_LOG_DIR=$NEUTRON_LOG_DIR
-NOVA_API_LOG_FILE=$NOVA_API_LOG_FILE
-NOVA_CONDUCTOR_LOG_FILE=$NOVA_CONDUCTOR_LOG_FILE
-NOVA_SCHEDULER_LOG_FILE=$NOVA_SCHEDULER_LOG_FILE
-NOVA_COMPUTE_LOG_FILE=$NOVA_COMPUTE_LOG_FILE
-NOVA_CONSOLEAUTH_LOG_FILE=$NOVA_CONSOLEAUTH_LOG_FILE
-NOVA_NOVNCPROXY_LOG_FILE=$NOVA_NOVNCPROXY_LOG_FILE
-NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$NOVA_VNCSERVER_PROXYCLIENT_ADDRESS
-NOVA_VNCSERVER_LISTEN_ADDRESS=$NOVA_VNCSERVER_LISTEN_ADDRESS
-NEUTRON_SERVER_LOG_FILE=$NEUTRON_SERVER_LOG_FILE
-NEUTRON_L3_AGENT_LOG_FILE=$NEUTRON_L3_AGENT_LOG_FILE
-NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=$NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE
-NEUTRON_METADATA_AGENT_LOG_FILE=$NEUTRON_METADATA_AGENT_LOG_FILE
-TYPE_DRIVERS=$TYPE_DRIVERS
-TENANT_NETWORK_TYPES=$TENANT_NETWORK_TYPES
-MECHANISM_DRIVERS=$MECHANISM_DRIVERS
-ADMIN_USER_PASSWORD=$ADMIN_USER_PASSWORD
 ADMIN_TENANT_NAME=$ADMIN_TENANT_NAME
+ADMIN_USER_PASSWORD=$ADMIN_USER_PASSWORD
+BARBICAN_DB_NAME=$BARBICAN_DB_NAME
+BARBICAN_DB_USER=$BARBICAN_DB_USER
+BARBICAN_KEYSTONE_USER=$BARBICAN_KEYSTONE_USER
+BIND_ADDRESS=$BIND_ADDRESS
+CEILOMETER_ADMIN_PASSWORD=$CEILOMETER_ADMIN_PASSWORD
+CEILOMETER_API_SERVICE_HOST=$CEILOMETER_API_SERVICE_HOST
+CEILOMETER_DB_NAME=$CEILOMETER_DB_NAME
+CEILOMETER_DB_PASSWORD=$CEILOMETER_DB_PASSWORD
+CEILOMETER_DB_USER=$CEILOMETER_DB_USER
+CEILOMETER_KEYSTONE_USER=$CEILOMETER_KEYSTONE_USER
+CHAR_SET_SERVER=$CHAR_SET_SERVER
+CINDER_ADMIN_PASSWORD=$CINDER_ADMIN_PASSWORD
+CINDER_API_LOG_FILE=$CINDER_API_LOG_FILE
+CINDER_API_SERVICE_HOST=$HOST_IP
+CINDER_API_SERVICE_LISTEN=$MY_IP
+CINDER_API_SERVICE_PORT=$CINDER_API_SERVICE_PORT
+CINDER_API_VERSION=$CINDER_API_VERSION
+CINDER_BACKUP_API_CLASS=$CINDER_BACKUP_API_CLASS
+CINDER_BACKUP_DRIVER=$CINDER_BACKUP_DRIVER
+CINDER_BACKUP_LOG_FILE=$CINDER_BACKUP_LOG_FILE
+CINDER_BACKUP_MANAGER=$CINDER_BACKUP_MANAGER
+CINDER_BACKUP_NAME_TEMPLATE=$CINDER_BACKUP_NAME_TEMPLATE
+CINDER_DB_NAME=$CINDER_DB_NAME
+CINDER_DB_PASSWORD=$CINDER_DB_PASSWORD
+CINDER_DB_USER=$CINDER_DB_USER
+CINDER_ENABLED_BACKEND=$CINDER_ENABLED_BACKEND
+CINDER_KEYSTONE_PASSWORD=$CINDER_KEYSTONE_PASSWORD
+CINDER_KEYSTONE_USER=$CINDER_KEYSTONE_USER
+CINDER_LOG_DIR=$CINDER_LOG_DIR
+CINDER_LVM_LO_VOLUME_SIZE=$CINDER_LVM_LO_VOLUME_SIZE
+CINDER_SCHEDULER_LOG_FILE=$CINDER_SCHEDULER_LOG_FILE
+CINDER_VOLUME_API_LISTEN=$CINDER_VOLUME_API_LISTEN
+CINDER_VOLUME_BACKEND_NAME=$CINDER_VOLUME_BACKEND_NAME
+CINDER_VOLUME_DRIVER=$CINDER_VOLUME_DRIVER
+CINDER_VOLUME_GROUP=$CINDER_VOLUME_GROUP
+CINDER_VOLUME_LOG_FILE=$CINDER_VOLUME_LOG_FILE
+COLLATION_SERVER=$COLLATION_SERVER
+DATADIR=$DATADIR
+DB_CLUSTER_BIND_ADDRESS=$DB_CLUSTER_BIND_ADDRESS
+DB_CLUSTER_INIT_DB=$DB_CLUSTER_INIT_DB
+DB_CLUSTER_NAME=$DB_CLUSTER_NAME
+DB_CLUSTER_NODES=$DB_CLUSTER_NODES
+DB_CLUSTER_WSREP_METHOD=$DB_CLUSTER_WSREP_METHOD
 DB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
+DEBUG_LOGGING=$DEBUG_LOGGING
+DEFAULT_STORAGE_ENGINE=$DEFAULT_STORAGE_ENGINE
+DELETE_NAMESPACES=$DELETE_NAMESPACES
+DESIGNATE_ALLOW_RECURSION=$DESIGNATE_ALLOW_RECURSION
+DESIGNATE_API_SERVICE_HOST=$DESIGNATE_API_SERVICE_HOST
+DESIGNATE_API_SERVICE_PORT=$DESIGNATE_API_SERVICE_PORT
+DESIGNATE_BACKEND=$DESIGNATE_BACKEND
+DESIGNATE_BIND9_RNDC_KEY=$DESIGNATE_BIND9_RNDC_KEY
+DESIGNATE_DB_NAME=$DESIGNATE_DB_NAME
+DESIGNATE_DB_PASSWORD=$DESIGNATE_DB_PASSWORD
+DESIGNATE_DB_USER=$DESIGNATE_DB_USER
+DESIGNATE_DEFAULT_POOL_NS_RECORD=$DESIGNATE_DEFAULT_POOL_NS_RECORD
+DESIGNATE_DNS_PORT=$DESIGNATE_DNS_PORT
+DESIGNATE_INITDB=$DESIGNATE_INITDB
+DESIGNATE_KEYSTONE_PASSWORD=$DESIGNATE_KEYSTONE_PASSWORD
+DESIGNATE_KEYSTONE_USER=$DESIGNATE_KEYSTONE_USER
+DESIGNATE_MASTERNS=$DESIGNATE_MASTERNS
+DESIGNATE_MDNS_PORT=$DESIGNATE_MDNS_PORT
+DESIGNATE_POOLMAN_NSS=$DESIGNATE_POOLMAN_NSS
+DESIGNATE_POOLMAN_POOLID=$DESIGNATE_POOLMAN_POOLID
+DESIGNATE_POOLMAN_TARGETS=$DESIGNATE_POOLMAN_TARGETS
+DESIGNATE_SINK_NEUTRON_DOMAIN_NAME=$DESIGNATE_SINK_NEUTRON_DOMAIN_NAME
+DESIGNATE_SINK_NOVA_DOMAIN_NAME=$DESIGNATE_SINK_NOVA_DOMAIN_NAME
+DESIGNATE_SLAVENS=$DESIGNATE_SLAVENS
+DHCP_DRIVER=$DHCP_DRIVER
+DNSMASQ_CONFIG_FILE=$DNSMASQ_CONFIG_FILE
+ENABLED_APIS=$ENABLED_APIS
+ENDPOINT_TYPE=$ENDPOINT_TYPE
 FLAT_INTERFACE=$NOVA_FLAT_INTERFACE
 GLANCE_API_SERVICE_HOST=$GLANCE_API_SERVICE_HOST
 GLANCE_DB_NAME=$GLANCE_DB_NAME
@@ -307,22 +401,76 @@ GLANCE_DB_USER=$GLANCE_DB_USER
 GLANCE_KEYSTONE_PASSWORD=$GLANCE_KEYSTONE_PASSWORD
 GLANCE_KEYSTONE_USER=$GLANCE_KEYSTONE_USER
 GLANCE_REGISTRY_SERVICE_HOST=$GLANCE_REGISTRY_SERVICE_HOST
+HEAT_API_CFN_SERVICE_HOST=$HEAT_API_CFN_SERVICE_HOST
+HEAT_API_CFN_SERVICE_PORT=$HEAT_API_CFN_SERVICE_PORT
+HEAT_API_CFN_URL_HOST=$HEAT_API_CFN_URL_HOST
+HEAT_API_SERVICE_HOST=$HEAT_API_SERVICE_HOST
+HEAT_CFN_KEYSTONE_PASSWORD=$HEAT_CFN_KEYSTONE_PASSWORD
+HEAT_CFN_KEYSTONE_USER=$HEAT_CFN_KEYSTONE_USER
+HEAT_DB_NAME=$HEAT_DB_NAME
+HEAT_DB_PASSWORD=$HEAT_DB_PASSWORD
+HEAT_DOMAIN_PASS=$HEAT_DOMAIN_PASS
+HEAT_KEYSTONE_PASSWORD=$HEAT_KEYSTONE_PASSWORD
+HEAT_KEYSTONE_USER=$HEAT_KEYSTONE_USER
+HORIZON_KEYSTONE_USER=$HORIZON_KEYSTONE_USER
+INIT_CINDER_DB=$INIT_CINDER_DB
+INIT_CONNECT=$INIT_CONNECT
+INIT_DESIGNATE_DB=$INIT_DESIGNATE_DB
+INIT_GLANCE_DB=$INIT_GLANCE_DB
+INIT_HEAT_DB=$INIT_HEAT_DB
+INIT_KEYSTONE_DB=$INIT_KEYSTONE_DB
+INIT_NOVA_DB=$INIT_NOVA_DB
+INNODB_FILE_PER_TABLE=$INNODB_FILE_PER_TABLE
+ISCSI_HELPER=$ISCSI_HELPER
+ISCSI_IP_ADDRESS=$ISCSI_IP_ADDRESS
+KEEPALIVED_HOST_PRIORITIES=$KEEPALIVED_HOST_PRIORITIES
 KEYSTONE_ADMIN_PASSWORD=$KEYSTONE_ADMIN_PASSWORD
 KEYSTONE_ADMIN_SERVICE_HOST=$KEYSTONE_ADMIN_SERVICE_HOST
 KEYSTONE_ADMIN_SERVICE_PORT=$KEYSTONE_ADMIN_SERVICE_PORT
 KEYSTONE_ADMIN_TOKEN=$KEYSTONE_ADMIN_TOKEN
 KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL
+KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL
+KEYSTONE_DB_NAME=$KEYSTONE_DB_NAME
 KEYSTONE_DB_PASSWORD=$KEYSTONE_DB_PASSWORD
+KEYSTONE_DB_USER=$KEYSTONE_DB_USER
 KEYSTONE_PUBLIC_SERVICE_HOST=$KEYSTONE_PUBLIC_SERVICE_HOST
 KEYSTONE_PUBLIC_SERVICE_PORT=$KEYSTONE_PUBLIC_SERVICE_PORT
-MARIADB_SERVICE_HOST=$HOST_IP
-MARIADB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
+KEYSTONE_REGION=$KEYSTONE_REGION
+KEYSTONE_USER=$KEYSTONE_USER
+KOLLA_CONFIG_STRATEGY=CONFIG_INTERNAL
+MAGNUM_API_SERVICE_HOST=$MAGNUM_API_SERVICE_HOST
+MAGNUM_API_SERVICE_PORT=$MAGNUM_API_SERVICE_PORT
+MAGNUM_DB_NAME=$MAGNUM_DB_NAME
+MAGNUM_DB_PASSWORD=$MAGNUM_DB_PASSWORD
+MAGNUM_DB_USER=$MAGNUM_DB_USER
+MAGNUM_KEYSTONE_PASSWORD=$MAGNUM_KEYSTONE_PASSWORD
+MAGNUM_KEYSTONE_USER=$MAGNUM_KEYSTONE_USER
 MARIADB_MAX_CONNECTIONS=$MARIADB_MAX_CONNECTIONS
+MARIADB_ROOT_PASSWORD=$MARIADB_ROOT_PASSWORD
+MARIADB_SERVICE_HOST=$HOST_IP
+MECHANISM_DRIVERS=$MECHANISM_DRIVERS
+METADATA_HOST=$METADATA_HOST
 NETWORK_MANAGER=$NETWORK_MANAGER
+NEUTRON_API_PASTE_CONFIG=$NEUTRON_API_PASTE_CONFIG
+NEUTRON_DB_NAME=$NEUTRON_DB_NAME
+NEUTRON_DB_PASSWORD=$NEUTRON_DB_PASSWORD
+NEUTRON_DB_USER=$NEUTRON_DB_USER
+NEUTRON_FLAT_NETWORK_INTERFACE=$NEUTRON_FLAT_NETWORK_INTERFACE
+NEUTRON_FLAT_NETWORK_NAME=$NEUTRON_FLAT_NETWORK_NAME
+NEUTRON_KEYSTONE_PASSWORD=$NEUTRON_KEYSTONE_PASSWORD
+NEUTRON_KEYSTONE_USER=$NEUTRON_KEYSTONE_USER
+NEUTRON_L3_AGENT_LOG_FILE=$NEUTRON_L3_AGENT_LOG_FILE
+NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE=$NEUTRON_LINUXBRIDGE_AGENT_LOG_FILE
+NEUTRON_LOG_DIR=$NEUTRON_LOG_DIR
+NEUTRON_METADATA_AGENT_LOG_FILE=$NEUTRON_METADATA_AGENT_LOG_FILE
+NEUTRON_SERVER_LOG_FILE=$NEUTRON_SERVER_LOG_FILE
+NEUTRON_SERVER_SERVICE_HOST=$NEUTRON_SERVER_SERVICE_HOST
+NEUTRON_SHARED_SECRET=$NEUTRON_SHARED_SECRET
+NOVA_API_LOG_FILE=$NOVA_API_LOG_FILE
 NOVA_API_SERVICE_HOST=$NOVA_API_SERVICE_HOST
-NOVA_METADATA_API_SERVICE_HOST=$NOVA_METADATA_API_SERVICE_HOST
-ENABLED_APIS=$ENABLED_APIS
-METADATA_HOST=$METADATA_HOST
+NOVA_COMPUTE_LOG_FILE=$NOVA_COMPUTE_LOG_FILE
+NOVA_CONDUCTOR_LOG_FILE=$NOVA_CONDUCTOR_LOG_FILE
+NOVA_CONSOLEAUTH_LOG_FILE=$NOVA_CONSOLEAUTH_LOG_FILE
 NOVA_DB_NAME=$NOVA_DB_NAME
 NOVA_DB_PASSWORD=$NOVA_DB_PASSWORD
 NOVA_DB_USER=$NOVA_DB_USER
@@ -330,122 +478,42 @@ NOVA_EC2_API_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
 NOVA_EC2_SERVICE_HOST=$NOVA_EC2_SERVICE_HOST
 NOVA_KEYSTONE_PASSWORD=$NOVA_KEYSTONE_PASSWORD
 NOVA_KEYSTONE_USER=$NOVA_KEYSTONE_USER
-NOVA_NOVNC_PROXY_SERVICE_HOST=$NOVA_NOVNC_PROXY_SERVICE_HOST
+NOVA_LOG_DIR=$NOVA_LOG_DIR
+NOVA_METADATA_API_SERVICE_HOST=$NOVA_METADATA_API_SERVICE_HOST
+NOVA_NOVNCPROXY_LOG_FILE=$NOVA_NOVNCPROXY_LOG_FILE
+NOVA_NOVNC_BASE_ADDRESS=${NOVA_NOVNC_BASE_ADDRESS}RI
 NOVA_NOVNC_PROXY_PORT=$NOVA_NOVNC_PROXY_PORT
-NOVA_NOVNC_BASE_ADDRESS=${NOVA_NOVNC_BASE_ADDRESS}
-NEUTRON_SHARED_SECRET=$NEUTRON_SHARED_SECRET
-NEUTRON_DB_NAME=$NEUTRON_DB_NAME
-NEUTRON_DB_USER=$NEUTRON_DB_USER
-NEUTRON_DB_PASSWORD=$NEUTRON_DB_PASSWORD
-NEUTRON_KEYSTONE_USER=$NEUTRON_KEYSTONE_USER
-NEUTRON_KEYSTONE_PASSWORD=$NEUTRON_KEYSTONE_PASSWORD
-NEUTRON_SERVER_SERVICE_HOST=$NEUTRON_SERVER_SERVICE_HOST
-NEUTRON_API_PASTE_CONFIG=$NEUTRON_API_PASTE_CONFIG
-NEUTRON_FLAT_NETWORK_NAME=$NEUTRON_FLAT_NETWORK_NAME
-NEUTRON_FLAT_NETWORK_INTERFACE=$NEUTRON_FLAT_NETWORK_INTERFACE
-HEAT_DB_NAME=$HEAT_DB_NAME
-HEAT_DB_PASSWORD=$HEAT_DB_PASSWORD
-HEAT_KEYSTONE_USER=$HEAT_KEYSTONE_USER
-HEAT_KEYSTONE_PASSWORD=$HEAT_KEYSTONE_PASSWORD
-HEAT_CFN_KEYSTONE_USER=$HEAT_CFN_KEYSTONE_USER
-HEAT_CFN_KEYSTONE_PASSWORD=$HEAT_CFN_KEYSTONE_PASSWORD
-HEAT_API_SERVICE_HOST=$HEAT_API_SERVICE_HOST
-HEAT_API_CFN_SERVICE_HOST=$HEAT_API_CFN_SERVICE_HOST
-HEAT_API_CFN_SERVICE_PORT=$HEAT_API_CFN_SERVICE_PORT
-HEAT_API_CFN_URL_HOST=$HEAT_API_CFN_URL_HOST
-HEAT_DOMAIN_PASS=$HEAT_DOMAIN_PASS
-MAGNUM_DB_NAME=$MAGNUM_DB_NAME
-MAGNUM_DB_USER=$MAGNUM_DB_USER
-MAGNUM_DB_PASSWORD=$MAGNUM_DB_PASSWORD
-MAGNUM_KEYSTONE_USER=$MAGNUM_KEYSTONE_USER
-MAGNUM_KEYSTONE_PASSWORD=$MAGNUM_KEYSTONE_PASSWORD
-MAGNUM_API_SERVICE_HOST=$MAGNUM_API_SERVICE_HOST
-MAGNUM_API_SERVICE_PORT=$MAGNUM_API_SERVICE_PORT
+NOVA_NOVNC_PROXY_SERVICE_HOST=$NOVA_NOVNC_PROXY_SERVICE_HOST
+NOVA_SCHEDULER_LOG_FILE=$NOVA_SCHEDULER_LOG_FILE
+NOVA_VNCSERVER_LISTEN_ADDRESS=$NOVA_VNCSERVER_LISTEN_ADDRESS
+NOVA_VNCSERVER_PROXYCLIENT_ADDRESS=$NOVA_VNCSERVER_PROXYCLIENT_ADDRESS
+OVS_DB_FILE=$OVS_DB_FILE
+OVS_LOG_FILE=$OVS_LOG_FILE
+OVS_UNIXSOCK=$OVS_UNIXSOCK
 PUBLIC_INTERFACE=$NOVA_PUBLIC_INTERFACE
 PUBLIC_IP=$HOST_IP
+RABBITMQ_CLUSTER_COOKIE=$RABBITMQ_CLUSTER_COOKIE
+RABBITMQ_CLUSTER_NODES=$RABBITMQ_CLUSTER_NODES
 RABBITMQ_PASS=$RABBIT_PASSWORD
 RABBITMQ_SERVICE_HOST=$RABBITMQ_SERVICE_HOST
 RABBITMQ_USER=$RABBIT_USER
-RABBITMQ_CLUSTER_NODES=$RABBITMQ_CLUSTER_NODES
-RABBITMQ_CLUSTER_COOKIE=$RABBITMQ_CLUSTER_COOKIE
 RABBIT_PASSWORD=$RABBIT_PASSWORD
 RABBIT_USERID=$RABBIT_USER
-DESIGNATE_DB_NAME=$DESIGNATE_DB_NAME
-DESIGNATE_DB_USER=$DESIGNATE_DB_USER
-DESIGNATE_DB_PASSWORD=$DESIGNATE_DB_PASSWORD
-DESIGNATE_KEYSTONE_USER=$DESIGNATE_KEYSTONE_USER
-DESIGNATE_KEYSTONE_PASSWORD=$DESIGNATE_KEYSTONE_PASSWORD
-DESIGNATE_API_SERVICE_HOST=$DESIGNATE_API_SERVICE_HOST
-DESIGNATE_API_SERVICE_PORT=$DESIGNATE_API_SERVICE_PORT
-DESIGNATE_BIND9_RNDC_KEY=$DESIGNATE_BIND9_RNDC_KEY
-DESIGNATE_MASTERNS=$DESIGNATE_MASTERNS
-DESIGNATE_BACKEND=$DESIGNATE_BACKEND
-DESIGNATE_SLAVENS=$DESIGNATE_SLAVENS
-DESIGNATE_MDNS_PORT=$DESIGNATE_MDNS_PORT
-DESIGNATE_DNS_PORT=$DESIGNATE_DNS_PORT
-DESIGNATE_POOLMAN_POOLID=$DESIGNATE_POOLMAN_POOLID
-DESIGNATE_POOLMAN_TARGETS=$DESIGNATE_POOLMAN_TARGETS
-DESIGNATE_POOLMAN_NSS=$DESIGNATE_POOLMAN_NSS
-DESIGNATE_INITDB=$DESIGNATE_INITDB
-DESIGNATE_ALLOW_RECURSION=$DESIGNATE_ALLOW_RECURSION
-DESIGNATE_DEFAULT_POOL_NS_RECORD=$DESIGNATE_DEFAULT_POOL_NS_RECORD
-DESIGNATE_SINK_NOVA_DOMAIN_NAME=$DESIGNATE_SINK_NOVA_DOMAIN_NAME
-DESIGNATE_SINK_NEUTRON_DOMAIN_NAME=$DESIGNATE_SINK_NEUTRON_DOMAIN_NAME
-DB_CLUSTER_BIND_ADDRESS=$DB_CLUSTER_BIND_ADDRESS
-DB_CLUSTER_INIT_DB=$DB_CLUSTER_INIT_DB
-DB_CLUSTER_NAME=$DB_CLUSTER_NAME
-DB_CLUSTER_NODES=$DB_CLUSTER_NODES
-DB_CLUSTER_WSREP_METHOD=$DB_CLUSTER_WSREP_METHOD
-CINDER_API_SERVICE_HOST=$HOST_IP
-CINDER_API_SERVICE_PORT=$CINDER_API_SERVICE_PORT
-CINDER_API_SERVICE_LISTEN=$MY_IP
-CINDER_KEYSTONE_USER=$CINDER_KEYSTONE_USER
-CINDER_KEYSTONE_PASSWORD=$CINDER_KEYSTONE_PASSWORD
-CINDER_ADMIN_PASSWORD=$CINDER_ADMIN_PASSWORD
-CINDER_DB_NAME=$CINDER_DB_NAME
-CINDER_DB_USER=$CINDER_DB_USER
-CINDER_DB_PASSWORD=$CINDER_DB_PASSWORD
-CINDER_BACKUP_MANAGER=$CINDER_BACKUP_MANAGER
-CINDER_BACKUP_API_CLASS=$CINDER_BACKUP_API_CLASS
-CINDER_BACKUP_NAME_TEMPLATE=$CINDER_BACKUP_NAME_TEMPLATE
-ISCSI_HELPER=$ISCSI_HELPER
-ISCSI_IP_ADDRESS=$ISCSI_IP_ADDRESS
-CINDER_BACKUP_DRIVER=$CINDER_BACKUP_DRIVER
-CINDER_LVM_LO_VOLUME_SIZE=$CINDER_LVM_LO_VOLUME_SIZE
-CINDER_VOLUME_GROUP=$CINDER_VOLUME_GROUP
-CINDER_VOLUME_API_LISTEN=$CINDER_VOLUME_API_LISTEN
-CINDER_VOLUME_BACKEND_NAME=$CINDER_VOLUME_BACKEND_NAME
-CINDER_VOLUME_DRIVER=$CINDER_VOLUME_DRIVER
-CINDER_ENABLED_BACKEND=$CINDER_ENABLED_BACKEND
-CINDER_LOG_DIR=$CINDER_LOG_DIR
-CINDER_API_LOG_FILE=$CINDER_API_LOG_FILE
-CINDER_API_VERSION=$CINDER_API_VERSION
-CINDER_VOLUME_LOG_FILE=$CINDER_VOLUME_LOG_FILE
-CINDER_BACKUP_LOG_FILE=$CINDER_BACKUP_LOG_FILE
-CINDER_SCHEDULER_LOG_FILE=$CINDER_SCHEDULER_LOG_FILE
-INIT_CINDER_DB=$INIT_CINDER_DB
-INIT_DESIGNATE_DB=$INIT_DESIGNATE_DB
-INIT_GLANCE_DB=$INIT_GLANCE_DB
-INIT_HEAT_DB=$INIT_HEAT_DB
-INIT_KEYSTONE_DB=$INIT_KEYSTONE_DB
-INIT_NOVA_DB=$INIT_NOVA_DB
-KEEPALIVED_HOST_PRIORITIES=$KEEPALIVED_HOST_PRIORITIES
-BARBICAN_DB_USER=$BARBICAN_DB_USER
-BARBICAN_DB_NAME=$BARBICAN_DB_NAME
-KEYSTONE_AUTH_PROTOCOL=$KEYSTONE_AUTH_PROTOCOL
-BARBICAN_KEYSTONE_USER=$BARBICAN_KEYSTONE_USER
-ADMIN_TENANT_NAME=$ADMIN_TENANT_NAME
-CEILOMETER_ADMIN_PASSWORD=$CEILOMETER_ADMIN_PASSWORD
-CEILOMETER_API_SERVICE_HOST=$CEILOMETER_API_SERVICE_HOST
-CEILOMETER_DB_NAME=$CEILOMETER_DB_NAME
-CEILOMETER_DB_PASSWORD=$CEILOMETER_DB_PASSWORD
-CEILOMETER_DB_USER=$CEILOMETER_DB_USER
-CEILOMETER_KEYSTONE_USER=$CEILOMETER_KEYSTONE_USER
-OVS_DB_FILE=$OVS_DB_FILE
-OVS_LOG_FILE=$OVS_LOG_FILE
-OVS_UNIXSOCK=$OVS_UNIXSOCK
+ROOT_HELPER=$ROOT_HELPER
+SWIFT_DB_NAME=$SWIFT_DB_NAME
+SWIFT_DB_USER=$SWIFT_DB_USER
+SWIFT_KEYSTONE_USER=$SWIFT_KEYSTONE_USER
+TEMP_FILE=$TEMP_FILE
+TENANT_NETWORK_TYPES=$TENANT_NETWORK_TYPES
+TOKEN_DRIVER=$TOKEN_DRIVER
+TOKEN_PROVIDER=$TOKEN_PROVIDER
+TYPE_DRIVERS=$TYPE_DRIVERS
+USE_NAMESPACES=$USE_NAMESPACES
+VERBOSE_LOGGING=$VERBOSE_LOGGING
+ZAQAR_KEYSTONE_USER=$ZAQAR_KEYSTONE_USER
 
 EOF
 echo Please customize your FLAT_INTERFACE to a different network then your
 echo main network. The FLAT_INTERFACE is used for inter-VM communication.
 echo the FLAT_INTERFACE should not have an IP address assigned.
+