diff --git a/tripleo_ansible/roles/tripleo-hieradata/molecule/hieradata_vars/molecule.yml b/tripleo_ansible/roles/tripleo-hieradata/molecule/hieradata_vars/molecule.yml index 76eae946f..3bf4ca896 100644 --- a/tripleo_ansible/roles/tripleo-hieradata/molecule/hieradata_vars/molecule.yml +++ b/tripleo_ansible/roles/tripleo-hieradata/molecule/hieradata_vars/molecule.yml @@ -195,6 +195,7 @@ provisioner: zaqar_api_network: ctlplane stack_action: CREATE stack_update_type: '' + tripleo_role_name: Standalone validate_controllers_icmp: true validate_fqdn: false validate_gateways_icmp: true diff --git a/tripleo_ansible/roles/tripleo-hieradata/templates/all_nodes.j2 b/tripleo_ansible/roles/tripleo-hieradata/templates/all_nodes.j2 index 32830fb84..d1aea57b2 100644 --- a/tripleo_ansible/roles/tripleo-hieradata/templates/all_nodes.j2 +++ b/tripleo_ansible/roles/tripleo-hieradata/templates/all_nodes.j2 @@ -15,12 +15,26 @@ {# _short_node_names: #} {% set _ = all_nodes.__setitem__((service ~ '_short_node_names'), (groups[service] | default ([]) | map('extract', hostvars, 'inventory_hostname') | list) + all_nodes_extra_map_data[service ~ '_short_node_names'] | default([])) %} {# _short_bootstrap_node_name: hostname #} -{% set services = (groups[service] | default ([]) | map('extract', hostvars, 'inventory_hostname')) | list + [all_nodes_extra_map_data[service ~ '_short_bootstrap_node_name'] | default('')] %} +{% set services = (groups[service] | default ([]) | list ) %} +{% if all_nodes_extra_map_data[service ~ '_short_bootstrap_node_name'] is defined %} +{% set services = services + all_nodes_extra_map_data[service ~ '_short_bootstrap_node_name'] %} +{% endif %} {% if (services | length) > 0 %} -{% set _ = all_nodes.__setitem__((service ~ '_short_bootstrap_node_name'), (services | first)) %} +{% if sorted_bootstrap_node | default(false) %} +{% set _ = all_nodes.__setitem__((service ~ '_short_bootstrap_node_name'), (services | sort | first)) %} +{% else %} +{% set _ = all_nodes.__setitem__((service ~ '_short_bootstrap_node_name'), (services | first)) %} +{% endif %} {% endif %} {# _bootstrap_node_ip: hostname #} -{% set services = (groups[service] | default ([]) | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_ip')) | list + [all_nodes_extra_map_data[service ~ '_short_bootstrap_node_ip'] | default('')] %} +{% if sorted_bootstrap_node | default(false) %} +{% set services = (groups[service] | default ([]) | sort | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_ip')) | list %} +{% else %} +{% set services = (groups[service] | default ([]) | map('extract', hostvars, service_net_map[service ~ '_network'] | default('ctlplane') ~ '_ip')) | list %} +{% endif %} +{% if all_nodes_extra_map_data[service ~ '_short_bootstrap_node_ip'] is defined %} +{% set services = services + [all_nodes_extra_map_data[service ~ '_short_bootstrap_node_ip']] %} +{% endif %} {% if (services | length) > 0 %} {% set _ = all_nodes.__setitem__((service ~ '_bootstrap_node_ip'), (services | first)) %} {% endif %} diff --git a/tripleo_ansible/roles/tripleo-hieradata/templates/bootstrap_node.j2 b/tripleo_ansible/roles/tripleo-hieradata/templates/bootstrap_node.j2 index e129963f8..00a196910 100644 --- a/tripleo_ansible/roles/tripleo-hieradata/templates/bootstrap_node.j2 +++ b/tripleo_ansible/roles/tripleo-hieradata/templates/bootstrap_node.j2 @@ -1,4 +1,8 @@ {% set boostrap_node = {} %} -{% set _ = boostrap_node.__setitem__('boostrap_node_id', bootstrap_nodeid) %} +{% if sorted_bootstrap_node | default(false) %} +{% set _ = boostrap_node.__setitem__('boostrap_node_id', groups[tripleo_role_name] | sort | first) %} +{% else %} +{% set _ = boostrap_node.__setitem__('boostrap_node_id', groups[tripleo_role_name] | first) %} +{% endif %} {# RENDER #} {{ boostrap_node | to_nice_json }}