From 2ff922b0dcaa46b9e72c06debc6164c2623dd9a4 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Wed, 19 Jul 2017 11:44:56 +0100 Subject: Move step_config/docker_config calculation into services.yaml Moving these means we get a more accurate output from the overcloud RoleData output, which more closely reflects what is actually deployed. Change-Id: I154f36c1597cf4abe29ca0bfe15a54f507433fb1 --- common/services.yaml | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'common') diff --git a/common/services.yaml b/common/services.yaml index 8581656e..e415f4b9 100644 --- a/common/services.yaml +++ b/common/services.yaml @@ -1,4 +1,3 @@ -#FIXME move into common when specfile adds it heat_template_version: pike description: > @@ -63,6 +62,33 @@ resources: properties: RoleData: {get_attr: [ServiceChain, role_data]} + PuppetStepConfig: + type: OS::Heat::Value + properties: + type: string + value: + yaql: + expression: + # select 'step_config' only from services that do not have a docker_config + coalesce($.data.service_names, []).zip(coalesce($.data.step_config, []), coalesce($.data.docker_config, [])).where($[2] = null).where($[1] != null).select($[1]).join("\n") + data: + service_names: {get_attr: [ServiceChain, role_data, service_name]} + step_config: {get_attr: [ServiceChain, role_data, step_config]} + docker_config: {get_attr: [ServiceChain, role_data, docker_config]} + + DockerConfig: + type: OS::Heat::Value + properties: + type: json + value: + yaql: + expression: + # select 'docker_config' only from services that have it + coalesce($.data.service_names, []).zip(coalesce($.data.docker_config, [])).where($[1] != null).select($[1]).reduce($1.mergeWith($2), {}) + data: + service_names: {get_attr: [ServiceChain, role_data, service_names]} + docker_config: {get_attr: [ServiceChain, role_data, docker_config]} + outputs: role_data: description: Combined Role data for this set of services. @@ -125,7 +151,7 @@ outputs: yaql: expression: $.data.role_data.where($ != null).select($.get('service_workflow_tasks')).where($ != null).reduce($1.mergeWith($2), {}) data: {role_data: {get_attr: [ServiceChain, role_data]}} - step_config: {get_attr: [ServiceChain, role_data, step_config]} + step_config: {get_attr: [PuppetStepConfig, value]} upgrade_tasks: yaql: # Note we use distinct() here to filter any identical tasks, e.g yum update for all services @@ -143,7 +169,7 @@ outputs: kolla_config: map_merge: {get_attr: [ServiceChain, role_data, kolla_config]} docker_config: - {get_attr: [ServiceChain, role_data, docker_config]} + {get_attr: [DockerConfig, value]} docker_puppet_tasks: {get_attr: [ServiceChain, role_data, docker_puppet_tasks]} host_prep_tasks: -- cgit 1.2.3-korg