From d60d2741c5fc34069aa69c0a153ec2dd28df154e Mon Sep 17 00:00:00 2001
From: portdirect <pete@port.direct>
Date: Sun, 4 Mar 2018 09:03:21 -0500
Subject: [PATCH] Armada: Update manifest to use common memcached service

This PS updates the armada manifest to use a common memcached service
while launching openstack-helm.

Change-Id: I9f3d27a5b2d16989e00a2899096bc69b2b23cb69
Partial-Bug: 1753251
---
 tools/deployment/armada/015-armada-build.sh   |   2 +-
 tools/deployment/armada/generate-passwords.sh |  50 +++-
 .../armada/multinode/armada-osh.yaml          | 259 ++----------------
 3 files changed, 67 insertions(+), 244 deletions(-)

diff --git a/tools/deployment/armada/015-armada-build.sh b/tools/deployment/armada/015-armada-build.sh
index 6a97248860..4094c292ac 100755
--- a/tools/deployment/armada/015-armada-build.sh
+++ b/tools/deployment/armada/015-armada-build.sh
@@ -17,7 +17,7 @@
 set -xe
 
 TMP_DIR=$(mktemp -d)
-git clone http://github.com/att-comdev/armada.git ${TMP_DIR}/armada
+git clone --depth 1 http://github.com/att-comdev/armada.git ${TMP_DIR}/armada
 sudo pip3 install ${TMP_DIR}/armada
 sudo make build -C ${TMP_DIR}/armada
 sudo rm -rf ${TMP_DIR}
diff --git a/tools/deployment/armada/generate-passwords.sh b/tools/deployment/armada/generate-passwords.sh
index 8ec5486790..ac4dc51435 100755
--- a/tools/deployment/armada/generate-passwords.sh
+++ b/tools/deployment/armada/generate-passwords.sh
@@ -16,16 +16,46 @@
 
 set -xe
 
-passwords="DB_ADMIN_PASSWORD ELASTICSEARCH_ADMIN_PASSWORD GRAFANA_DB_PASSWORD GRAFANA_SESSION_DB_PASSWORD \
-          GRAFANA_ADMIN_PASSWORD KIBANA_ADMIN_PASSWORD KEYSTONE_RABBITMQ_ADMIN_PASSWORD KEYSTONE_DB_PASSWORD \
-          KEYSTONE_ADMIN_PASSWORD SWIFT_USER_PASSWORD GLANCE_RABBITMQ_ADMIN_PASSWORD GLANCE_DB_PASSWORD \
-          GLANCE_USER_PASSWORD CINDER_RABBITMQ_ADMIN_PASSWORD CINDER_DB_PASSWORD CINDER_USER_PASSWORD \
-          NOVA_RABBITMQ_ADMIN_PASSWORD NOVA_DB_PASSWORD NOVA_USER_PASSWORD NOVA_PLACEMENT_USER_PASSWORD \
-          NEUTRON_RABBITMQ_ADMIN_PASSWORD NEUTRON_DB_PASSWORD NEUTRON_USER_PASSWORD HEAT_RABBITMQ_ADMIN_PASSWORD \
-          HEAT_DB_PASSWORD HEAT_USER_PASSWORD HEAT_TRUSTEE_PASSWORD HEAT_STACK_PASSWORD \
-          BARBICAN_RABBITMQ_ADMIN_PASSWORD BARBICAN_DB_PASSWORD BARBICAN_USER_PASSWORD OPENSTACK_EXPORTER_USER_PASSWORD \
-          KEYSTONE_RABBITMQ_USER_PASSWORD GLANCE_RABBITMQ_USER_PASSWORD CINDER_RABBITMQ_USER_PASSWORD NOVA_RABBITMQ_USER_PASSWORD \
-          NEUTRON_RABBITMQ_USER_PASSWORD HEAT_RABBITMQ_USER_PASSWORD BARBICAN_RABBITMQ_USER_PASSWORD"
+passwords="BARBICAN_DB_PASSWORD \
+    BARBICAN_RABBITMQ_ADMIN_PASSWORD \
+    BARBICAN_RABBITMQ_USER_PASSWORD \
+    BARBICAN_USER_PASSWORD \
+    CINDER_DB_PASSWORD \
+    CINDER_RABBITMQ_ADMIN_PASSWORD \
+    CINDER_RABBITMQ_USER_PASSWORD \
+    CINDER_USER_PASSWORD \
+    DB_ADMIN_PASSWORD \
+    ELASTICSEARCH_ADMIN_PASSWORD \
+    GLANCE_DB_PASSWORD \
+    GLANCE_RABBITMQ_ADMIN_PASSWORD \
+    GLANCE_RABBITMQ_USER_PASSWORD \
+    GLANCE_USER_PASSWORD \
+    GRAFANA_ADMIN_PASSWORD \
+    GRAFANA_DB_PASSWORD \
+    GRAFANA_SESSION_DB_PASSWORD \
+    HEAT_DB_PASSWORD \
+    HEAT_RABBITMQ_ADMIN_PASSWORD \
+    HEAT_RABBITMQ_USER_PASSWORD \
+    HEAT_STACK_PASSWORD \
+    HEAT_TRUSTEE_PASSWORD \
+    HEAT_USER_PASSWORD \
+    KEYSTONE_ADMIN_PASSWORD \
+    KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY \
+    KEYSTONE_DB_PASSWORD \
+    KEYSTONE_RABBITMQ_ADMIN_PASSWORD \
+    KEYSTONE_RABBITMQ_USER_PASSWORD \
+    KIBANA_ADMIN_PASSWORD \
+    NEUTRON_DB_PASSWORD \
+    NEUTRON_RABBITMQ_ADMIN_PASSWORD \
+    NEUTRON_RABBITMQ_USER_PASSWORD \
+    NEUTRON_USER_PASSWORD \
+    NOVA_DB_PASSWORD \
+    NOVA_PLACEMENT_USER_PASSWORD \
+    NOVA_RABBITMQ_ADMIN_PASSWORD \
+    NOVA_RABBITMQ_USER_PASSWORD \
+    NOVA_USER_PASSWORD \
+    OPENSTACK_EXPORTER_USER_PASSWORD \
+    SWIFT_USER_PASSWORD"
 
 for password in $passwords
 do
diff --git a/tools/deployment/armada/multinode/armada-osh.yaml b/tools/deployment/armada/multinode/armada-osh.yaml
index edb487fe19..0abb7573f7 100644
--- a/tools/deployment/armada/multinode/armada-osh.yaml
+++ b/tools/deployment/armada/multinode/armada-osh.yaml
@@ -167,10 +167,10 @@ data:
 schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
-  name: keystone-memcached
+  name: memcached
 data:
-  chart_name: keystone-memcached
-  release: keystone-memcached
+  chart_name: memcached
+  release: memcached
   namespace: openstack
   timeout: 1800
   install:
@@ -178,10 +178,6 @@ data:
   upgrade:
     no_hooks: false
   values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: keystone-memcached
     labels:
       server:
         node_selector_key: openstack-control-plane
@@ -285,8 +281,8 @@ data:
           admin:
             password: ${KEYSTONE_ADMIN_PASSWORD}
       oslo_cache:
-        hosts:
-          default: keystone-memcached
+        auth:
+          memcache_secret_key: ${KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY}
       oslo_db:
         auth:
           admin:
@@ -393,45 +389,6 @@ data:
     - helm-toolkit
 ---
 schema: armada/Chart/v1
-metadata:
-  schema: metadata/Document/v1
-  name: glance-memcached
-data:
-  chart_name: glance-memcached
-  release: glance-memcached
-  namespace: openstack
-  timeout: 1800
-  install:
-    no_hooks: false
-  upgrade:
-    no_hooks: false
-  values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: glance-memcached
-    labels:
-      api:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      job:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      registry:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      test:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-  source:
-    type: local
-    location: ${OSH_PATH}
-    subpath: memcached
-    reference: master
-  dependencies:
-    - helm-toolkit
----
-schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
   name: glance-rabbitmq
@@ -528,8 +485,8 @@ data:
           glance:
             password: ${GLANCE_DB_PASSWORD}
       oslo_cache:
-        hosts:
-          default: glance-memcached
+        auth:
+          memcache_secret_key: ${KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY}
       oslo_messaging:
         auth:
           admin:
@@ -564,51 +521,6 @@ data:
     - helm-toolkit
 ---
 schema: armada/Chart/v1
-metadata:
-  schema: metadata/Document/v1
-  name: cinder-memcached
-data:
-  chart_name: cinder-memcached
-  release: cinder-memcached
-  namespace: openstack
-  timeout: 1800
-  install:
-    no_hooks: false
-  upgrade:
-    no_hooks: false
-  values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: cinder-memcached
-    labels:
-      api:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      backup:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      job:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      scheduler:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      test:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      volume:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-  source:
-    type: local
-    location: ${OSH_PATH}
-    subpath: memcached
-    reference: master
-  dependencies:
-    - helm-toolkit
----
-schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
   name: cinder-rabbitmq
@@ -705,8 +617,8 @@ data:
           cinder:
             password: ${CINDER_DB_PASSWORD}
       oslo_cache:
-        hosts:
-          default: cinder-memcached
+        auth:
+          memcache_secret_key: ${KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY}
       oslo_messaging:
         auth:
           admin:
@@ -805,36 +717,6 @@ data:
     - helm-toolkit
 ---
 schema: armada/Chart/v1
-metadata:
-  schema: metadata/Document/v1
-  name: nova-memcached
-data:
-  chart_name: nova-memcached
-  release: nova-memcached
-  namespace: openstack
-  timeout: 1800
-  install:
-    no_hooks: false
-  upgrade:
-    no_hooks: false
-  values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: nova-memcached
-    labels:
-      server:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-  source:
-    type: local
-    location: ${OSH_PATH}
-    subpath: memcached
-    reference: master
-  dependencies:
-    - helm-toolkit
----
-schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
   name: nova-rabbitmq
@@ -960,8 +842,8 @@ data:
           nova:
             password: ${NOVA_DB_PASSWORD}
       oslo_cache:
-        hosts:
-          default: nova-memcached
+        auth:
+          memcache_secret_key: ${KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY}
       oslo_messaging:
         auth:
           admin:
@@ -1032,36 +914,6 @@ data:
     - helm-toolkit
 ---
 schema: armada/Chart/v1
-metadata:
-  schema: metadata/Document/v1
-  name: neutron-memcached
-data:
-  chart_name: neutron-memcached
-  release: neutron-memcached
-  namespace: openstack
-  timeout: 1800
-  install:
-    no_hooks: false
-  upgrade:
-    no_hooks: false
-  values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: neutron-memcached
-    labels:
-      server:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-  source:
-    type: local
-    location: ${OSH_PATH}
-    subpath: memcached
-    reference: master
-  dependencies:
-    - helm-toolkit
----
-schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
   name: neutron-rabbitmq
@@ -1156,8 +1008,8 @@ data:
           neutron:
             password: ${NEUTRON_DB_PASSWORD}
       oslo_cache:
-        hosts:
-          default: neutron-memcached
+        auth:
+          memcache_secret_key: ${KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY}
       oslo_messaging:
         auth:
           admin:
@@ -1230,36 +1082,6 @@ data:
     - helm-toolkit
 ---
 schema: armada/Chart/v1
-metadata:
-  schema: metadata/Document/v1
-  name: heat-memcached
-data:
-  chart_name: heat-memcached
-  release: heat-memcached
-  namespace: openstack
-  timeout: 1800
-  install:
-    no_hooks: false
-  upgrade:
-    no_hooks: false
-  values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: heat-memcached
-    labels:
-      server:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-  source:
-    type: local
-    location: ${OSH_PATH}
-    subpath: memcached
-    reference: master
-  dependencies:
-    - helm-toolkit
----
-schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
   name: heat-rabbitmq
@@ -1399,39 +1221,6 @@ data:
     - helm-toolkit
 ---
 schema: armada/Chart/v1
-metadata:
-  schema: metadata/Document/v1
-  name: barbican-memcached
-data:
-  chart_name: barbican-memcached
-  release: barbican-memcached
-  namespace: openstack
-  timeout: 1800
-  install:
-    no_hooks: false
-  upgrade:
-    no_hooks: false
-  values:
-    endpoints:
-      oslo_cache:
-        hosts:
-          default: barbican-memcached
-    labels:
-      server:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-      test:
-        node_selector_key: openstack-control-plane
-        node_selector_value: enabled
-  source:
-    type: local
-    location: ${OSH_PATH}
-    subpath: memcached
-    reference: master
-  dependencies:
-    - helm-toolkit
----
-schema: armada/Chart/v1
 metadata:
   schema: metadata/Document/v1
   name: barbican-rabbitmq
@@ -1524,8 +1313,8 @@ data:
           barbican:
             password: ${BARBICAN_DB_PASSWORD}
       oslo_cache:
-        hosts:
-          default: barbican-memcached
+        auth:
+          memcache_secret_key: ${KEYSTONE_AUTHTOKEN_MEMCACHED_SECRET_KEY}
       oslo_messaging:
         auth:
           admin:
@@ -1623,6 +1412,16 @@ data:
     - mariadb
 ---
 schema: armada/ChartGroup/v1
+metadata:
+  schema: metadata/Document/v1
+  name: deploy-memcached
+data:
+  description: "Memcached"
+  sequenced: True
+  chart_group:
+    - memcached
+---
+schema: armada/ChartGroup/v1
 metadata:
   schema: metadata/Document/v1
   name: openstack-infra-services
@@ -1641,7 +1440,6 @@ data:
   description: "Deploy keystone"
   sequenced: True
   chart_group:
-    - keystone-memcached
     - keystone-rabbitmq
     - keystone
 ---
@@ -1653,7 +1451,6 @@ data:
   description: "Deploy glance"
   sequenced: True
   chart_group:
-    - glance-memcached
     - glance-rabbitmq
     - glance
 ---
@@ -1675,7 +1472,6 @@ data:
   description: "Deploy cinder"
   sequenced: True
   chart_group:
-    - cinder-memcached
     - cinder-rabbitmq
     - cinder
 ---
@@ -1687,10 +1483,8 @@ data:
   description: "Deploy nova and neutron"
   sequenced: False
   chart_group:
-    - nova-memcached
     - nova-rabbitmq
     - nova
-    - neutron-memcached
     - neutron-rabbitmq
     - neutron
 ---
@@ -1702,7 +1496,6 @@ data:
   description: "Deploy heat"
   sequenced: True
   chart_group:
-    - heat-memcached
     - heat-rabbitmq
     - heat
 ---
@@ -1714,7 +1507,6 @@ data:
   description: "Deploy barbican"
   sequenced: True
   chart_group:
-    - barbican-memcached
     - barbican-rabbitmq
     - barbican
 ---
@@ -1738,6 +1530,7 @@ data:
     - openstack-ingress-controller
     - openstack-ceph-config
     - deploy-mariadb
+    - deploy-memcached
     - openstack-infra-services
     - openstack-keystone
     - openstack-glance