Merge "Refactor cellv2 host discovery logic to avoid races" into stable/pike
[apex-tripleo-heat-templates.git] / common / services.yaml
index a0015c7..f706206 100644 (file)
@@ -89,6 +89,31 @@ resources:
             service_names: {get_attr: [ServiceChain, role_data, service_names]}
             docker_config: {get_attr: [ServiceChain, role_data, docker_config]}
 
+  DockerConfigScripts:
+    type: OS::Heat::Value
+    properties:
+      type: json
+      value:
+        yaql:
+          expression:
+            # select 'docker_config_scripts' only from services that have it
+            coalesce($.data.service_names, []).zip(coalesce($.data.docker_config_scripts, [])).where($[1] != null).select($[1]).reduce($1.mergeWith($2), {})
+          data:
+            service_names: {get_attr: [ServiceChain, role_data, service_names]}
+            docker_config_scripts: {get_attr: [ServiceChain, role_data, docker_config_scripts]}
+
+  CellV2Discovery:
+    type: OS::Heat::Value
+    properties:
+      type: boolean
+      value:
+        yaql:
+          expression:
+            # If any service in this role requires cellv2_discovery then this value is true
+            coalesce($.data.cellv2_discovery, []).contains(true)
+          data:
+            cellv2_discovery: {get_attr: [ServiceChain, role_data, cellv2_discovery]}
+
   LoggingSourcesConfig:
     type: OS::Heat::Value
     properties:
@@ -282,5 +307,7 @@ outputs:
       puppet_config: {get_attr: [PuppetConfig, value]}
       kolla_config: {get_attr: [KollaConfig, value]}
       docker_config: {get_attr: [DockerConfig, value]}
+      docker_config_scripts: {get_attr: [DockerConfigScripts, value]}
       docker_puppet_tasks: {get_attr: [DockerPuppetTasks, value]}
       host_prep_tasks: {get_attr: [HostPrepTasks, value]}
+      cellv2_discovery: {get_attr: [CellV2Discovery, value]}