From 3ce479fb17e659cd3779e1f25c4c9ff3e6de50c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Andr=C3=A9?= Date: Tue, 22 Jan 2019 10:05:30 +0100 Subject: [PATCH] Generate post-deployment openshift-ansible inventory This allows to run custom openshift-ansible playbooks with an inventory that reflects the deployment status. Related-Bug: #1812962 Change-Id: I94b6ae04a3e31fe0b7951df2446cc91b5842cd77 (cherry picked from commit ff36d44af5a42945ac1b76a798af90a87347975c) --- extraconfig/services/openshift-master.yaml | 19 ++++++++++++++++++- extraconfig/services/openshift-node.yaml | 21 +++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/extraconfig/services/openshift-master.yaml b/extraconfig/services/openshift-master.yaml index 33890155c2..5029e4c571 100644 --- a/extraconfig/services/openshift-master.yaml +++ b/extraconfig/services/openshift-master.yaml @@ -521,7 +521,7 @@ outputs: {% endif %} - - name: generate openshift validation playbook + - name: generate openshift playbook for etcd scaleup copy: dest: "{{playbook_dir}}/openshift/playbook.yml" content: | @@ -536,6 +536,23 @@ outputs: {{openshift_command}} 2>&1 | tee {{playbook_dir}}/openshift/playbook-etcd.log exit ${PIPESTATUS[0]} + - name: generate post-deployment inventory for master nodes + copy: + dest: "{{playbook_dir}}/openshift/inventory/{{tripleo_role_name}}_openshift_master.yml" + content: | + {% if (role_nodes[tripleo_role_name] + new_role_nodes[tripleo_role_name]) | count > 0%} + all: + children: + masters: + hosts: + {% for host in (role_nodes[tripleo_role_name] + new_role_nodes[tripleo_role_name]) -%} + {{host.hostname}}: + {% endfor %} + + vars: + {{openshift_master_node_vars | to_nice_yaml() | indent(6)}} + {% endif %} + - name: generate openshift validation playbook copy: dest: "{{playbook_dir}}/openshift/playbook.yml" diff --git a/extraconfig/services/openshift-node.yaml b/extraconfig/services/openshift-node.yaml index 3456bc1bd2..bc915f39c7 100644 --- a/extraconfig/services/openshift-node.yaml +++ b/extraconfig/services/openshift-node.yaml @@ -172,3 +172,24 @@ outputs: {% endif %} {% endif %} + - name: openshift_node step 4 + when: step == '4' + tags: openshift + block: + - name: set role facts for generating inventory + set_fact: + tripleo_role_name: {get_param: RoleName} + + - name: generate post-deployment inventory for {{tripleo_role_name}} role groups + copy: + dest: "{{playbook_dir}}/openshift/inventory/{{tripleo_role_name}}_groups.yml" + content: | + {% if (role_nodes[tripleo_role_name] + new_role_nodes[tripleo_role_name]) | count > 0%} + all: + children: + nodes: + hosts: + {% for host in (role_nodes[tripleo_role_name] + new_role_nodes[tripleo_role_name]) -%} + {{host.hostname}}: + {% endfor %} + {% endif %}