tripleo-quickstart-extras/roles/overcloud-deploy/tasks/pre-deploy.yml

280 lines
9.7 KiB
YAML

---
# Note.. the order of heat templates and args is very important. The last environment that sets a variable takes precedent.
- name: Deprecation message for network isolation types
debug:
msg: >-
Network isolation types 'multi-nic', 'bond_with_vlans', 'single_nic_vlans'
are deprecated in R release, please use 'multiple-nics', 'bond-with-vlans',
'single-nic-vlans'.
when: network_isolation_type in ["single_nic_vlans", "bond_with_vlans", "multi-nic"]
# NOTE: 'single_nic_vlans' is deprecated
- name: set network isolation args for single-nic-vlans IPv4
set_fact:
network_isolation_args: >-
-e {{ overcloud_templates_path }}/environments/network-isolation.yaml
-e {{ overcloud_templates_path }}/environments/net-single-nic-with-vlans.yaml
-e {{ working_dir }}/network-environment.yaml
when:
- network_isolation_type in ["single_nic_vlans", "single-nic-vlans"]
- name: set network isolation args for bond-with-vlans IPv4
set_fact:
network_isolation_args: >-
-e {{ overcloud_templates_path }}/environments/network-isolation.yaml
-e {{ overcloud_templates_path }}/environments/net-bond-with-vlans.yaml
-e {{ working_dir }}/network-environment.yaml
when:
- network_isolation_type in ["bond_with_vlans", "bond-with-vlans"]
# NOTE: 'multi-nic' is deprecated
- name: set network isolation args for multi-nic IPv4
set_fact:
network_isolation_args: >-
-e {{ overcloud_templates_path }}/environments/network-isolation.yaml
-e {{ overcloud_templates_path }}/environments/net-multiple-nics.yaml
-e {{ working_dir }}/network-environment.yaml
when:
- network_isolation_type in ["multi-nic", "multiple-nics"]
- not overcloud_ipv6|bool
# NOTE: 'multi-nic' is deprecated
- name: set network isolation args for multi-nic IPv6
set_fact:
network_isolation_args: >-
-e {{ overcloud_templates_path }}/environments/network-isolation-v6.yaml
-e {{ overcloud_templates_path }}/environments/net-multiple-nics-v6.yaml
-e {{ working_dir }}/network-environment.yaml
when:
- network_isolation_type in ["multi-nic", "multiple-nics"]
- overcloud_ipv6|bool
# Since there are no nic-configs for public-bond in the default
# tripleo-heat-templates directory, no public-bond specfic
# /environments/ file is listed.
# The network-environment.yaml file can point to path where the
# public-bond nic-configs are stored.
- name: set network isolation args for public-bond IPv4
set_fact:
network_isolation_args: >-
-e {{ overcloud_templates_path }}/environments/network-isolation.yaml
-e {{ working_dir }}/network-environment.yaml
when:
- network_isolation_type == "public-bond"
- not overcloud_ipv6|bool
- name: set network_args fact
set_fact:
network_args: >-
{{ network_isolation_args }}
when:
- network_isolation|bool
- name: set ntp_args
set_fact:
ntp_args: >-
--ntp-server {{ ntp_server }}
when:
- ntp_server|default('')
- name: enable pacemaker
set_fact:
pacemaker_args: >-
-e {{ overcloud_templates_path }}/environments/puppet-pacemaker.yaml
when:
- enable_pacemaker|bool
- not containerized_overcloud|bool
- name: use resource registry
set_fact:
resource_registry_nic_configs_args: >-
-e {{ working_dir }}/resource-registry-nic-configs.yaml
when: use_resource_registry_nic_configs|bool
- name: extract the number of controllers to be deployed
set_fact:
number_of_controllers: "{{ deploy_args| regex_replace('^.*--control-scale +([0-9]+).*$', '\\1') | regex_replace('^[^ 0-9]+$', '1') }}"
- name: Set cinder-backup
set_fact:
backup_args: >-
-e {{ overcloud_templates_path }}/environments/cinder-backup.yaml
when: enable_cinder_backup|bool
- name: Set cloud-name variables
set_fact:
cloud_name_args: >-
-e {{ working_dir }}/cloud-names.yaml
when: release not in ['mitaka', 'liberty']
- name: Set the hostname_map config if defined
set_fact:
hostnamemap_args: >-
-e {{ working_dir }}/hostnamemap.yaml
when:
- groups['overcloud'] is defined
- groups['overcloud'][0] is defined
- overcloud_nodes is defined
- overcloud_nodes[0] is defined
- overcloud_nodes[0].hostnamemap_override is defined
- name: set set overcloud SSL args for releases after mitaka
set_fact:
ssl_overcloud_args: >-
-e {{ working_dir }}/enable-tls.yaml
-e {{ overcloud_templates_path }}/environments/ssl/tls-endpoints-public-ip.yaml
when:
- ssl_overcloud|bool
- release not in ['mitaka', 'liberty']
- name: set overcloud SSL args fact for mitaka/liberty
set_fact:
ssl_overcloud_args: >-
-e {{ working_dir }}/enable-tls.yaml
when:
- ssl_overcloud|bool
- release in ['mitaka', 'liberty']
- name: set CA injection arg
set_fact:
ssl_ca_args: >-
-e {{ working_dir }}/inject-trust-anchor.yaml
when: ssl_overcloud|bool or undercloud_generate_service_certificate|bool
- name: set ssl_args
set_fact:
ssl_args: >-
{{ ssl_overcloud_args|default('') }}
{{ ssl_ca_args }}
when: ssl_overcloud|bool or undercloud_generate_service_certificate|bool
- name: set novajoin/TLS everywhere fact
set_fact:
tls_everywhere_args: >-
-e {{ overcloud_templates_path }}/environments/services/haproxy-public-tls-certmonger.yaml
-e {{ overcloud_templates_path }}/environments/ssl/enable-internal-tls.yaml
-e {{ overcloud_templates_path }}/environments/ssl/tls-everywhere-endpoints-dns.yaml
when:
- enable_tls_everywhere|bool
- release not in ['mitaka', 'liberty', 'newton']
- name: set validation_args fact for mitaka/liberty
set_fact:
validation_args: "--validation-errors-fatal --validation-warnings-fatal"
when: release in ['mitaka', 'liberty']
- name: disable L3 HA
set_fact:
pacemaker_args: >-
{{ pacemaker_args }}
-e {{ working_dir }}/neutronl3ha.yaml
when:
- enable_pacemaker|bool
- number_of_controllers|int < 3
- name: set workers_args fact
set_fact:
workers_args: >-
-e {{ overcloud_templates_path }}/environments/low-memory-usage.yaml
when:
- release not in ['mitaka', 'liberty']
- set_overcloud_workers|bool
- name: set container_args fact
set_fact:
container_args: >-
{% if release in ['pike', 'queens', 'rocky'] %}
-e {{ overcloud_templates_path }}/environments/docker.yaml
{% endif %}
{% if enable_pacemaker|bool or osp_release is defined%}
-e {{ overcloud_templates_path }}/environments/docker-ha.yaml
{% endif %}
{% if release in ['ocata', 'pike', 'queens', 'rocky'] %}
-e {{ working_dir }}/containers-default-parameters.yaml
{% else %}
-e {{ working_dir }}/containers-prepare-parameter.yaml
{% endif %}
{% if release not in ['pike', 'queens', 'rocky'] %}
-e {{ overcloud_templates_path }}/environments/{{ overcloud_container_cli | default('docker') }}.yaml
{% endif %}
when:
- containerized_overcloud|bool
- name: set composable roles args fact
set_fact:
composable_args: >-
--roles-file {{ working_dir }}/overcloud_roles.yaml
when: composable_roles|bool
- name: Generate composable roles file
command: openstack overcloud roles generate --roles-path {{ overcloud_templates_path }}/roles -o {{ working_dir }}/overcloud_roles.yaml {{generate_overcloud_roles}}
when: composable_roles|bool and generate_overcloud_roles is defined
- name: set composable service args fact
set_fact:
composable_args: >-
{{ composable_args }}
-e {{ working_dir }}/overcloud_services.yaml
when: composable_services|bool
- name: set the multinode args
set_fact:
multinode_args: >-
-e {{ overcloud_templates_path }}/environments/deployed-server-environment.yaml
{% if release not in ['mitaka', 'newton'] and overcloud_release|default('') not in ['newton', 'mitaka'] %}
-e {{ overcloud_templates_path }}/environments/deployed-server-bootstrap-environment-centos.yaml
{% endif %}
--overcloud-ssh-user {{ undercloud_user }}
when: deploy_multinode|bool
- name: set the OVN args
set_fact:
ovn_args: >-
-e {{ overcloud_templates_path }}/environments/neutron-ml2-ovn-ha.yaml
when: deploy_ha_ovn|bool
- name: set the scenario args for composable roles
set_fact:
scenario_args: >-
-e {{ overcloud_templates_path }}/ci/environments/{{ composable_scenario }}
when: not composable_scenario|trim == ''
- name: set swap_args to enable swap file
set_fact:
swap_args: >-
-e {{ overcloud_templates_path }}/environments/enable-swap.yaml
when: enable_swap|bool and swap_type == 'file'
- name: set swap_args to enable swap partition
set_fact:
swap_args: >-
-e {{ overcloud_templates_path }}/environments/enable-swap-partition.yaml
when: enable_swap|bool and swap_type == 'partition'
- name: set network_args for mtu settings
set_fact:
network_args: >-
{{ network_args }}
-e {{ working_dir }}/overcloud_network_params.yaml
when:
- overcloud_neutron_global_physnet_mtu is defined
# 15 is "reserved time for logs=10" + 5 minutes for inventory role for OVB jobs
# Time must be synchronised on hosts
- name: Set overcloud deployment timeout in CI for OVB
set_fact:
deploy_timeout: "{{ ((ci_job_end_time|int - lookup('pipe','date +%s')|int)/60)|int -15 }}"
when:
- ci_job_end_time is defined
- '"ovb" in lookup("env", "TOCI_JOBTYPE")'
# 5 is "reserved time for 5 minutes for inventory role for multinode jobs
# Time must be synchronised on hosts
- name: Set overcloud deployment timeout in CI for multinode
set_fact:
deploy_timeout: "{{ ((ci_job_end_time|int - lookup('pipe','date +%s')|int)/60)|int -5 }}"
when:
- ci_job_end_time is defined
- '"ovb" not in lookup("env", "TOCI_JOBTYPE")'