Add new featureset66 and update tripleo-inventory for mixed OS jobs

Adds a new featureset for use by the mixed OS (centos 8/9) job. See
topic branch at [1] for related reviews. Also updates the
tripleo-inventory role to add overcloud_compute and _control
groups for use during the toci playbook executions.
Updates the release files for wallaby 8/9 to allow the mixed OS
job to pull containers from the right content provider.

[1] https://review.opendev.org/q/topic:oooci_mixed_rhel

Change-Id: I4d90399528d702f8ebfeeaf96ccdb00c8070a28b
This commit is contained in:
Marios Andreou 2022-05-12 15:21:08 +03:00
parent cb1595223b
commit 67285f178b
6 changed files with 158 additions and 4 deletions

View File

@ -0,0 +1,76 @@
composable_scenario: multinode-containers-mixed-os.yaml
composable_services: false
network_isolation: false
enable_pacemaker: false
overcloud_ipv6: false
containerized_overcloud: true
containerized_undercloud: true
undercloud_templates_path: /usr/share/openstack-tripleo-heat-templates
undercloud_custom_env_files: "{{ working_dir }}/undercloud-parameter-defaults.yaml"
undercloud_cloud_domain: "localdomain"
undercloud_undercloud_hostname: "undercloud.{{ undercloud_cloud_domain }}"
# This enables TLS for the undercloud which will also make haproxy bind to the
# configured public-vip and admin-vip.
undercloud_generate_service_certificate: false
# This enables the deployment of the overcloud with SSL.
ssl_overcloud: false
mixed_os: true
composable_roles: true
overcloud_roles_control:
- name: Controller
CountDefault: 1
tags:
- primary
- controller
overcloud_roles_compute:
- name: Compute
CountDefault: 1
HostnameFormatDefault: '%stackname%-compute-%index%'
tags:
- compute
deployed_server: true
deploy_steps_ansible_workflow: true
config_download_args: >-
-e {{ working_dir }}/config-download.yaml
--disable-validations
ephemeral_heat: true
ephemeral_heat_args: "{{ '--heat-type pod' if ephemeral_heat|bool else '' }}"
# Tempest configuration, keep always at the end of the file
test_ping: false
tempest_ping_router: false
# Settings for os_tempest
use_os_tempest: true
tempest_test_whitelist:
- 'tempest.scenario.test_network_basic_ops.TestNetworkBasicOps'
- 'tempest.api.compute.admin.test_flavors'
- 'tempest.api.compute.flavors'
- 'tempest.api.compute.keypairs'
- 'tempest.api.compute.security_groups'
# https://launchpad.net/bugs/1844446
undercloud_enable_validations: false
undercloud_enable_paunch: false
undercloud_parameter_defaults_args: >-
{%- if ansible_distribution in ["RedHat", "CentOS"] and ansible_distribution_major_version|int < 8 %}
{'IronicIPXEUefiSnpOnly': 'false'}
{%- else -%}
{'IronicIPXEUefiSnpOnly': 'true'}
{%- endif -%}

View File

@ -0,0 +1,32 @@
# Define a single controller node and a single compute node.
overcloud_nodes:
- name: control_0
flavor: control
virtualbmc_port: 6230
default_name: overcloud-controller-0
hostnamemap_override: "{{ hostvars[groups['overcloud'][0]].ansible_hostname }}"
- name: compute_0
flavor: compute
virtualbmc_port: 6231
default_name: overcloud-compute-0
hostnamemap_override: "{{ hostvars[groups['overcloud'][1]].ansible_hostname }}"
node_count: 2
topology_map_control:
Controller:
scale: 1
# grow /srv to 50% of remaining disk space to store swift object content
growvols_args: >
/=8GB
/tmp=1GB
/var/log=10GB
/var/log/audit=2GB
/home=1GB
/var=50%
/srv=50%
topology_map_compute:
Compute:
scale: 1

View File

@ -4,7 +4,13 @@ overcloud_as_undercloud: true
release: wallaby
distro_ver: centos8
distro_deps_repo_name: deps
dlrn_hash_tag: "{{ job.provider_dlrn_hash_tag_branch[release]|default('current-tripleo') }}"
dlrn_hash_tag: >-
{% if registry_distro is defined and
registry_distro | default('') | length > 0 -%}
{{ job.provider_dlrn_hash_distro[registry_distro] }}
{%- else -%}
{{ job.provider_dlrn_hash_tag_branch[release]|default('current-tripleo') }}
{%- endif -%}
dlrn_hash_tag_newest: current
validate_on: rdo
@ -19,7 +25,12 @@ docker_registry_host: >-
build_container_images|default(false)|bool -%}
127.0.0.1:5001
{%- elif job.consumer_job | default(false) | bool -%}
{%- if registry_distro is defined and
registry_distro | default('') | length > 0 -%}
{{ job.registry_ip_address_distro[registry_distro] }}:5001
{%- else -%}
{{ job.registry_ip_address_branch[release] }}:5001
{%- endif -%}
{%- else -%}
{{ job.alt_container_registry|default('quay.io') }}
{%- endif -%}

View File

@ -4,7 +4,13 @@ overcloud_as_undercloud: true
release: wallaby
distro_ver: centos9
distro_deps_repo_name: deps
dlrn_hash_tag: "{{ job.provider_dlrn_hash_tag_branch[release]|default('current-tripleo') }}"
dlrn_hash_tag: >-
{% if registry_distro is defined and
registry_distro | default('') | length > 0 -%}
{{ job.provider_dlrn_hash_distro[registry_distro] }}
{%- else -%}
{{ job.provider_dlrn_hash_tag_branch[release]|default('current-tripleo') }}
{%- endif -%}
dlrn_hash_tag_newest: current
validate_on: rdo
@ -19,10 +25,16 @@ docker_registry_host: >-
build_container_images|default(false)|bool -%}
127.0.0.1:5001
{%- elif job.consumer_job | default(false) | bool -%}
{%- if registry_distro is defined and
registry_distro | default('') | length > 0 -%}
{{ job.registry_ip_address_distro[registry_distro] }}:5001
{%- else -%}
{{ job.registry_ip_address_branch[release] }}:5001
{%- endif -%}
{%- else -%}
{{ job.alt_container_registry|default('quay.io') }}
{%- endif -%}
docker_registry_namespace: tripleowallabycentos9
docker_image_tag: "{{ dlrn_hash|default(dlrn_hash_tag) }}"
docker_openshift_tag: v3.11.0

View File

@ -42,7 +42,7 @@
ansible_private_key_file: "{{ overcloud_key }}"
ansible_ssh_extra_args: '-F "{{ local_working_dir }}/ssh.config.ansible"'
- when: inventory == 'multinode'
- when: inventory in ['multinode', 'multinode_mixed_os']
block:
- name: Get subnodes
command: cat /etc/nodepool/sub_nodes_private
@ -58,6 +58,29 @@
ansible_user: "{{ lookup('env','USER') }}"
ansible_private_key_file: "/etc/nodepool/id_rsa"
- when: inventory == 'multinode_mixed_os'
block:
- name: Add overcloud_control group to ansible inventory
with_indexed_items: '{{ nodes.stdout_lines[0] | default([]) }}'
add_host:
name: 'subnode-1'
groups: "overcloud_control"
ansible_host: '{{ item.1 }}'
inventory_ip: '{{ item.1 }}'
ansible_user: "{{ lookup('env','USER') }}"
ansible_private_key_file: "/etc/nodepool/id_rsa"
- name: Add overcloud_compute group to ansible inventory
with_indexed_items: '{{ nodes.stdout_lines[1] | default([]) }}'
add_host:
name: 'subnode-2'
groups: "overcloud_compute"
ansible_host: '{{ item.1 }}'
inventory_ip: '{{ item.1 }}'
ansible_user: "{{ lookup('env','USER') }}"
ansible_private_key_file: "/etc/nodepool/id_rsa"
# required for regeneration of ssh.config.ansible
- name: set_fact for undercloud ip
set_fact:

View File

@ -7,7 +7,7 @@
when: hostvars['localhost'].ansible_user_dir is not defined
- include_tasks: inventory.yml
when: inventory in ['multinode', 'all', 'undercloud', 'extra_node']
when: inventory in ['multinode', 'all', 'undercloud', 'extra_node', 'multinode_mixed_os']
- include_tasks: openstack.yml
when: inventory == 'openstack'