From 46279be9cb77ec9cf6e53e77c239a51efda06d80 Mon Sep 17 00:00:00 2001 From: Steven Hardy Date: Thu, 20 Jul 2017 17:11:44 +0100 Subject: Add RoleConfig output This exposes the deploy workflow for all roles from deploy-steps via overcloud.j2.yaml - which means we can write it via the new openstack overcloud config download command and/or run the workflow outside of heat via mistral With https://review.openstack.org/#/c/485732/ applied to tripleoclient it becomes possible to do: openstack overcloud config download --config-dir tmpconfig cd tmpconfig/tripleo-EvEZk0-config ansible-playbook -b -i /usr/bin/tripleo-ansible-inventory deploy_steps_playbook.yaml This runs the deploy steps, exactly the same as normally run via heat via ansible-playbook for all overcloud nodes (--limit can be used to restrict to specific nodes/roles). Change-Id: I96ec09bc788836584c4b39dcce5bf9b80e914c71 --- common/deploy-steps.j2 | 18 ++++++++++++++++++ overcloud.j2.yaml | 3 +++ 2 files changed, 21 insertions(+) diff --git a/common/deploy-steps.j2 b/common/deploy-steps.j2 index bd8d9bc0..9cf4ead0 100644 --- a/common/deploy-steps.j2 +++ b/common/deploy-steps.j2 @@ -302,3 +302,21 @@ resources: {% endfor %} + +outputs: + RoleConfig: + description: Mapping of config data for all roles + value: + deploy_steps_tasks: {get_file: deploy-steps-tasks.yaml} + deploy_steps_playbook: | + - hosts: overcloud + tasks: +{%- for role in roles %} + - include: {{role.name}}/host_prep_tasks.yaml + when: role_name == '{{role.name}}' +{%- endfor %} + - include: deploy_steps_tasks.yaml + with_sequence: count={{deploy_steps_max-1}} + loop_control: + loop_var: step + diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 7241a974..a7a4fe25 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -929,6 +929,9 @@ outputs: - {get_attr: [{{role.name}}ServiceChainRoleData, value]} - {get_attr: [{{role.name}}MergedConfigSettings, value]} {% endfor %} + RoleConfig: + description: The configuration workflows associated with each role + value: {get_attr: [AllNodesDeploySteps, RoleConfig]} RoleNetIpMap: description: Mapping of each network to a list of IPs for each role value: -- cgit 1.2.3-korg