Containerize Manila Share for HA
[apex-tripleo-heat-templates.git] / puppet / all-nodes-config.yaml
index ee43c3a..24aa152 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: ocata
+heat_template_version: pike
 description: 'All Nodes Config for Puppet'
 
 parameters:
@@ -12,10 +12,8 @@ parameters:
     type: string
   cloud_name_ctlplane:
     type: string
-  # FIXME(shardy) this can be comma_delimited_list when
-  # https://bugs.launchpad.net/heat/+bug/1617019 is fixed
   enabled_services:
-    type: string
+    type: comma_delimited_list
   controller_ips:
     type: comma_delimited_list
   logging_groups:
@@ -32,8 +30,6 @@ parameters:
     type: json
   controller_names:
     type: comma_delimited_list
-  memcache_node_ips:
-    type: comma_delimited_list
   NetVipMap:
     type: json
   RedisVirtualIP:
@@ -49,15 +45,25 @@ parameters:
       perform configuration on a Heat stack-update.
   UpdateIdentifier:
     type: string
+    default: ''
     description: >
       Setting to a previously unused value during stack-update will trigger
       package update on all nodes
   StackAction:
     type: string
     description: >
-      Heat action on performed top-level stack.
+      Heat action on performed top-level stack.  Note StackUpdateType is
+      set to UPGRADE when a major-version upgrade is in progress.
     constraints:
     - allowed_values: ['CREATE', 'UPDATE']
+  StackUpdateType:
+    type: string
+    description: >
+      Type of update, to differentiate between UPGRADE and UPDATE cases
+      when StackAction is UPDATE (both are the same stack action).
+    constraints:
+    - allowed_values: ['', 'UPGRADE']
+    default: ''
   # NOTE(jaosorior): This is being set as IPA as it's the first
   # CA we'll actually be testing out. But we can change this if
   # people request it.
@@ -68,6 +74,32 @@ parameters:
     type: boolean
     default: false
 
+  InternalApiNetName:
+    default: internal_api
+    description: The name of the internal API network.
+    type: string
+  ExternalNetName:
+    default: external
+    description: The name of the external network.
+    type: string
+  ManagementNetName:
+    default: management
+    description: The name of the management network.
+    type: string
+  StorageNetName:
+    default: storage
+    description: The name of the storage network.
+    type: string
+  StorageMgmtNetName:
+    default: storage_mgmt
+    description: The name of the Storage management network.
+    type: string
+  TenantNetName:
+    default: tenant
+    description: The name of the tenant network.
+    type: string
+
+
 resources:
 
   allNodesConfigImpl:
@@ -83,7 +115,10 @@ resources:
            map_merge:
               - tripleo::profile::base::logging::fluentd::fluentd_sources: {get_param: logging_sources}
               - tripleo::profile::base::logging::fluentd::fluentd_groups: {get_param: logging_groups}
-              - enabled_services: {get_param: enabled_services}
+              - enabled_services:
+                  yaql:
+                    expression: $.data.distinct()
+                    data: {get_param: enabled_services}
               # This writes out a mapping of service_name_enabled: 'true'
               # For any services not enabled, hiera foo_enabled will
               # return nil, as it's undefined
@@ -94,8 +129,7 @@ resources:
                       # https://bugs.launchpad.net/heat/+bug/1617203
                       SERVICE_enabled: 'true'
                     for_each:
-                      SERVICE:
-                        str_split: [',', {get_param: enabled_services}]
+                      SERVICE: {get_param: enabled_services}
               # Dynamically generate per-service network data
               # This works as follows (outer->inner functions)
               # yaql - filters services where no mapping exists in ServiceNetMap
@@ -115,8 +149,7 @@ resources:
                               template:
                                 SERVICE_network: SERVICE_network
                               for_each:
-                                SERVICE:
-                                  str_split: [',', {get_param: enabled_services}]
+                                SERVICE: {get_param: enabled_services}
                         - values: {get_param: ServiceNetMap}
               # Keystone doesn't provide separate entries for the public
               # and admin endpoints, so we need to add them here manually
@@ -136,14 +169,10 @@ resources:
                   list_join:
                   - ','
                   - {get_param: controller_names}
-                memcached_node_ips_v6:
-                  repeat:
-                    template: "inet6:[NAME]"
-                    for_each:
-                      NAME: {get_param: memcache_node_ips}
                 deploy_identifier: {get_param: DeployIdentifier}
                 update_identifier: {get_param: UpdateIdentifier}
                 stack_action: {get_param: StackAction}
+                stack_update_type: {get_param: StackUpdateType}
           vip_data:
             map_merge:
               # Dynamically generate per-service VIP data based on enabled_services
@@ -167,29 +196,28 @@ resources:
                                   template:
                                     SERVICE_vip: SERVICE_network
                                   for_each:
-                                    SERVICE:
-                                      str_split: [',', {get_param: enabled_services}]
+                                    SERVICE: {get_param: enabled_services}
                             - values: {get_param: ServiceNetMap}
                         - values: {get_param: NetVipMap}
               - keystone_admin_api_vip:
                   get_param: [NetVipMap, {get_param: [ServiceNetMap, keystone_admin_api_network]}]
                 keystone_public_api_vip:
                   get_param: [NetVipMap, {get_param: [ServiceNetMap, keystone_public_api_network]}]
-                public_virtual_ip: {get_param: [NetVipMap, external]}
+                public_virtual_ip: {get_param: [NetVipMap, {get_param: ExternalNetName}]}
                 controller_virtual_ip: {get_param: [NetVipMap, ctlplane]}
-                internal_api_virtual_ip: {get_param: [NetVipMap, internal_api]}
-                storage_virtual_ip: {get_param: [NetVipMap, storage]}
-                storage_mgmt_virtual_ip: {get_param: [NetVipMap, storage_mgmt]}
+                internal_api_virtual_ip: {get_param: [NetVipMap, {get_param: InternalApiNetName}]}
+                storage_virtual_ip: {get_param: [NetVipMap, {get_param: StorageNetName}]}
+                storage_mgmt_virtual_ip: {get_param: [NetVipMap, {get_param: StorageMgmtNetName}]}
                 redis_vip: {get_param: RedisVirtualIP}
                 # public_virtual_ip and controller_virtual_ip are needed in
                 # both HAproxy & keepalived.
-                tripleo::haproxy::public_virtual_ip: {get_param: [NetVipMap, external]}
+                tripleo::haproxy::public_virtual_ip: {get_param: [NetVipMap, {get_param: ExternalNetName}]}
                 tripleo::haproxy::controller_virtual_ip: {get_param: [NetVipMap, ctlplane]}
-                tripleo::keepalived::public_virtual_ip: {get_param: [NetVipMap, external]}
+                tripleo::keepalived::public_virtual_ip: {get_param: [NetVipMap, {get_param: ExternalNetName}]}
                 tripleo::keepalived::controller_virtual_ip: {get_param: [NetVipMap, ctlplane]}
-                tripleo::keepalived::internal_api_virtual_ip: {get_param: [NetVipMap, internal_api]}
-                tripleo::keepalived::storage_virtual_ip: {get_param: [NetVipMap, storage]}
-                tripleo::keepalived::storage_mgmt_virtual_ip: {get_param: [NetVipMap, storage_mgmt]}
+                tripleo::keepalived::internal_api_virtual_ip: {get_param: [NetVipMap, {get_param: InternalApiNetName}]}
+                tripleo::keepalived::storage_virtual_ip: {get_param: [NetVipMap, {get_param: StorageNetName}]}
+                tripleo::keepalived::storage_mgmt_virtual_ip: {get_param: [NetVipMap, {get_param: StorageMgmtNetName}]}
                 tripleo::keepalived::redis_virtual_ip: {get_param: RedisVirtualIP}
                 tripleo::redis_notification::haproxy_monitor_ip: {get_param: [NetVipMap, ctlplane]}
                 cloud_name_external: {get_param: cloud_name_external}