From 0dc8f2de5a469bdbc2d0ce16a99e7d82378b8697 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 28 Feb 2023 09:53:26 +0000 Subject: [PATCH 01/13] support VMs as compute/controllers in multinode This change allows ansible facts to be used in group_vars/*/network-interfaces, which can be used to select the default network interface. This means different flavors and images can be used without needing to manually change the interface. It also reduces the MTU of all networks except external. --- etc/kayobe/ansible/configure-vxlan.yml | 2 +- .../inventory/group_vars/compute/network-interfaces | 2 +- .../group_vars/controllers/network-interfaces | 2 +- etc/kayobe/environments/ci-multinode/networks.yml | 12 ++++++------ .../add-vm-overcloud-support-92baa7c2ce87ac1d.yaml | 7 +++++++ 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml diff --git a/etc/kayobe/ansible/configure-vxlan.yml b/etc/kayobe/ansible/configure-vxlan.yml index b43c8b65d..a801c5418 100644 --- a/etc/kayobe/ansible/configure-vxlan.yml +++ b/etc/kayobe/ansible/configure-vxlan.yml @@ -1,7 +1,7 @@ --- - name: Configure VXLAN hosts: controllers,compute,seed,storage - gather_facts: false + gather_facts: true vars: ansible_user: "{{ bootstrap_user }}" # We can't assume that a virtualenv exists at this point, so use the system diff --git a/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces b/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces index aab2482b8..96c6f15c3 100644 --- a/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces +++ b/etc/kayobe/environments/ci-multinode/inventory/group_vars/compute/network-interfaces @@ -2,7 +2,7 @@ ############################################################################### # Network interface definitions for the compute group. -admin_oc_interface: "eno1" +admin_oc_interface: "{{ ansible_facts.default_ipv4.interface }}" internal_interface: "{{ vxlan_interfaces[0].device }}.{{ internal_vlan }}" diff --git a/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces b/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces index 2dab6c5a8..d02d17ead 100644 --- a/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces +++ b/etc/kayobe/environments/ci-multinode/inventory/group_vars/controllers/network-interfaces @@ -2,7 +2,7 @@ ############################################################################### # Network interface definitions for the controller group. -admin_oc_interface: "eno1" +admin_oc_interface: "{{ ansible_facts.default_ipv4.interface }}" internal_interface: "{{ vxlan_interfaces[0].device }}.{{ internal_vlan }}" diff --git a/etc/kayobe/environments/ci-multinode/networks.yml b/etc/kayobe/environments/ci-multinode/networks.yml index 86406bfad..6afa05758 100644 --- a/etc/kayobe/environments/ci-multinode/networks.yml +++ b/etc/kayobe/environments/ci-multinode/networks.yml @@ -73,7 +73,7 @@ storage_mgmt_net_name: storage_mgmt # Internal network internal_cidr: 192.168.37.0/24 -internal_mtu: 1450 +internal_mtu: 1392 internal_allocation_pool_start: 192.168.37.3 internal_allocation_pool_end: 192.168.37.254 internal_vip_address: 192.168.37.2 @@ -88,7 +88,7 @@ external_vlan: 102 # Public network public_cidr: 192.168.39.0/24 -public_mtu: 1450 +public_mtu: 1392 public_allocation_pool_start: 192.168.39.3 public_allocation_pool_end: 192.168.39.254 public_vip_address: 192.168.39.2 @@ -96,28 +96,28 @@ public_vlan: 103 # Tunnel network tunnel_cidr: 192.168.40.0/24 -tunnel_mtu: 1450 +tunnel_mtu: 1392 tunnel_allocation_pool_start: 192.168.40.3 tunnel_allocation_pool_end: 192.168.40.254 tunnel_vlan: 104 # Storage network storage_cidr: 192.168.41.0/24 -storage_mtu: 1450 +storage_mtu: 1392 storage_allocation_pool_start: 192.168.41.3 storage_allocation_pool_end: 192.168.41.254 storage_vlan: 105 # Storage management network storage_mgmt_cidr: 192.168.42.0/24 -storage_mgmt_mtu: 1450 +storage_mgmt_mtu: 1392 storage_mgmt_allocation_pool_start: 192.168.42.3 storage_mgmt_allocation_pool_end: 192.168.42.254 storage_mgmt_vlan: 106 # Provision overcloud network provision_oc_cidr: 192.168.33.0/24 -provision_oc_mtu: 1450 +provision_oc_mtu: 1392 provision_oc_allocation_pool_start: 192.168.33.128 provision_oc_allocation_pool_end: 192.168.33.254 provision_oc_vlan: 107 diff --git a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml new file mode 100644 index 000000000..a1f18e10f --- /dev/null +++ b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Adds support for using a VMs as compute and controller nodes in the + multinode-ci environment by decreasing the MTU of the networks in + networks.yml to 1392 and removing the static definition of the network + interfaces for the compute and controller groups. From 67748f612a9bd201813df2c2f19d94e027f79fb9 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 28 Feb 2023 13:23:24 +0000 Subject: [PATCH 02/13] un-disable monitoring in the multinode environment --- etc/kayobe/environments/ci-multinode/kolla.yml | 4 ---- etc/kayobe/environments/ci-multinode/kolla/globals.yml | 3 +++ .../notes/add-monitoring-to-multinode-958603f026edbc7c.yaml | 4 ++++ 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml diff --git a/etc/kayobe/environments/ci-multinode/kolla.yml b/etc/kayobe/environments/ci-multinode/kolla.yml index e645b971c..64c472fb4 100644 --- a/etc/kayobe/environments/ci-multinode/kolla.yml +++ b/etc/kayobe/environments/ci-multinode/kolla.yml @@ -9,7 +9,3 @@ kolla_enable_octavia: true # These are set to true within etc/kayobe/kolla.yml. # Leaving them set to true would require additional # configuration change. -kolla_enable_central_logging: false -kolla_enable_elasticsearch_curator: false -kolla_enable_grafana: false -kolla_enable_prometheus: false diff --git a/etc/kayobe/environments/ci-multinode/kolla/globals.yml b/etc/kayobe/environments/ci-multinode/kolla/globals.yml index 8d020e349..bd726ddc5 100644 --- a/etc/kayobe/environments/ci-multinode/kolla/globals.yml +++ b/etc/kayobe/environments/ci-multinode/kolla/globals.yml @@ -15,6 +15,9 @@ nova_backend_ceph: "yes" neutron_bridge_name: "{{ vxlan_interfaces[0].device }}-ovs" neutron_external_interface: "{{ vxlan_interfaces[0].device }}" +# Elasticsearch memory tuning +es_heap_size: 1g + # Octavia load balancer configuration octavia_auto_configure: "no" octavia_provider_drivers: "ovn:OVN provider" diff --git a/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml new file mode 100644 index 000000000..4f3b70639 --- /dev/null +++ b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Set monitoring services be enabled by default in the multinode environment. From 1597744d1967cd9ac2d2a1aa8109781b7c405e8a Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Tue, 28 Feb 2023 13:54:10 +0000 Subject: [PATCH 03/13] fix VM internet connectivity in multinode This fix sets seed_enable_snat and fixes the external IP of the seed which (in conjunction with an update to the multinode openstack configuration to set the gateway on the external subnet) allows VMs to reach the internet. --- etc/kayobe/environments/ci-multinode/network-allocation.yml | 2 ++ etc/kayobe/environments/ci-multinode/seed.yml | 2 ++ ...-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml | 5 +++++ 3 files changed, 9 insertions(+) create mode 100644 etc/kayobe/environments/ci-multinode/network-allocation.yml create mode 100644 releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml diff --git a/etc/kayobe/environments/ci-multinode/network-allocation.yml b/etc/kayobe/environments/ci-multinode/network-allocation.yml new file mode 100644 index 000000000..827597b84 --- /dev/null +++ b/etc/kayobe/environments/ci-multinode/network-allocation.yml @@ -0,0 +1,2 @@ +external_ips: + alex-mn-seed: 192.168.38.3 \ No newline at end of file diff --git a/etc/kayobe/environments/ci-multinode/seed.yml b/etc/kayobe/environments/ci-multinode/seed.yml index 1ae71f1a4..fe72e7c31 100644 --- a/etc/kayobe/environments/ci-multinode/seed.yml +++ b/etc/kayobe/environments/ci-multinode/seed.yml @@ -8,3 +8,5 @@ seed_lvm_groups: seed_extra_network_interfaces: - "external" - "public" + +seed_enable_snat: true diff --git a/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml new file mode 100644 index 000000000..7f34afca7 --- /dev/null +++ b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + Fixes internet connectivity for VMs deployed in the ci-multinode + environment. From e6a057722b46105845e5143b2ce4601c28a92335 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Wed, 1 Mar 2023 14:19:50 +0000 Subject: [PATCH 04/13] make ci-multinode network MTUs dynamic --- etc/kayobe/environments/ci-multinode/kolla.yml | 5 ----- .../environments/ci-multinode/network-allocation.yml | 2 -- etc/kayobe/environments/ci-multinode/networks.yml | 12 ++++++------ etc/kayobe/environments/ci-multinode/seed.yml | 2 ++ ...add-monitoring-to-multinode-958603f026edbc7c.yaml | 3 ++- .../add-vm-overcloud-support-92baa7c2ce87ac1d.yaml | 4 ++-- ...de-vm-internet-connectivity-49ab64cd75833f09.yaml | 2 +- 7 files changed, 13 insertions(+), 17 deletions(-) delete mode 100644 etc/kayobe/environments/ci-multinode/network-allocation.yml diff --git a/etc/kayobe/environments/ci-multinode/kolla.yml b/etc/kayobe/environments/ci-multinode/kolla.yml index 64c472fb4..5c6c80dae 100644 --- a/etc/kayobe/environments/ci-multinode/kolla.yml +++ b/etc/kayobe/environments/ci-multinode/kolla.yml @@ -4,8 +4,3 @@ kolla_enable_cinder_backup: true kolla_enable_neutron_provider_networks: true kolla_enable_ovn: true kolla_enable_octavia: true - -# Override these from etc/kayobe/kolla.yml -# These are set to true within etc/kayobe/kolla.yml. -# Leaving them set to true would require additional -# configuration change. diff --git a/etc/kayobe/environments/ci-multinode/network-allocation.yml b/etc/kayobe/environments/ci-multinode/network-allocation.yml deleted file mode 100644 index 827597b84..000000000 --- a/etc/kayobe/environments/ci-multinode/network-allocation.yml +++ /dev/null @@ -1,2 +0,0 @@ -external_ips: - alex-mn-seed: 192.168.38.3 \ No newline at end of file diff --git a/etc/kayobe/environments/ci-multinode/networks.yml b/etc/kayobe/environments/ci-multinode/networks.yml index 6afa05758..8d1d93c2c 100644 --- a/etc/kayobe/environments/ci-multinode/networks.yml +++ b/etc/kayobe/environments/ci-multinode/networks.yml @@ -73,7 +73,7 @@ storage_mgmt_net_name: storage_mgmt # Internal network internal_cidr: 192.168.37.0/24 -internal_mtu: 1392 +internal_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" internal_allocation_pool_start: 192.168.37.3 internal_allocation_pool_end: 192.168.37.254 internal_vip_address: 192.168.37.2 @@ -88,7 +88,7 @@ external_vlan: 102 # Public network public_cidr: 192.168.39.0/24 -public_mtu: 1392 +public_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" public_allocation_pool_start: 192.168.39.3 public_allocation_pool_end: 192.168.39.254 public_vip_address: 192.168.39.2 @@ -96,28 +96,28 @@ public_vlan: 103 # Tunnel network tunnel_cidr: 192.168.40.0/24 -tunnel_mtu: 1392 +tunnel_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" tunnel_allocation_pool_start: 192.168.40.3 tunnel_allocation_pool_end: 192.168.40.254 tunnel_vlan: 104 # Storage network storage_cidr: 192.168.41.0/24 -storage_mtu: 1392 +storage_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" storage_allocation_pool_start: 192.168.41.3 storage_allocation_pool_end: 192.168.41.254 storage_vlan: 105 # Storage management network storage_mgmt_cidr: 192.168.42.0/24 -storage_mgmt_mtu: 1392 +storage_mgmt_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" storage_mgmt_allocation_pool_start: 192.168.42.3 storage_mgmt_allocation_pool_end: 192.168.42.254 storage_mgmt_vlan: 106 # Provision overcloud network provision_oc_cidr: 192.168.33.0/24 -provision_oc_mtu: 1392 +provision_oc_mtu: "{{ ansible_facts.default_ipv4.mtu - 50 }}" provision_oc_allocation_pool_start: 192.168.33.128 provision_oc_allocation_pool_end: 192.168.33.254 provision_oc_vlan: 107 diff --git a/etc/kayobe/environments/ci-multinode/seed.yml b/etc/kayobe/environments/ci-multinode/seed.yml index fe72e7c31..3eb7afa90 100644 --- a/etc/kayobe/environments/ci-multinode/seed.yml +++ b/etc/kayobe/environments/ci-multinode/seed.yml @@ -9,4 +9,6 @@ seed_extra_network_interfaces: - "external" - "public" +# Enable IP routing and source NAT on the seed, allowing it to be used as the +# external subnet gateway and provide internet access for VMs in the deployment. seed_enable_snat: true diff --git a/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml index 4f3b70639..0a985519c 100644 --- a/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml +++ b/releasenotes/notes/add-monitoring-to-multinode-958603f026edbc7c.yaml @@ -1,4 +1,5 @@ --- features: - | - Set monitoring services be enabled by default in the multinode environment. + Set monitoring services be enabled by default in the ``ci-multinode`` + environment. diff --git a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml index a1f18e10f..a3ebacc1f 100644 --- a/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml +++ b/releasenotes/notes/add-vm-overcloud-support-92baa7c2ce87ac1d.yaml @@ -2,6 +2,6 @@ features: - | Adds support for using a VMs as compute and controller nodes in the - multinode-ci environment by decreasing the MTU of the networks in - networks.yml to 1392 and removing the static definition of the network + ``ci-multinode`` environment by dynamically setting the MTU of the networks + in networks.yml and removing the static definition of the network interfaces for the compute and controller groups. diff --git a/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml index 7f34afca7..007de8a76 100644 --- a/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml +++ b/releasenotes/notes/fix-multinode-vm-internet-connectivity-49ab64cd75833f09.yaml @@ -1,5 +1,5 @@ --- fixes: - | - Fixes internet connectivity for VMs deployed in the ci-multinode + Fixes internet connectivity for VMs deployed in the ``ci-multinode`` environment. From 6e2f2dcd5f4721966b01f7d65e83854a2c8d98b8 Mon Sep 17 00:00:00 2001 From: Alex-Welsh Date: Thu, 9 Mar 2023 15:57:34 +0000 Subject: [PATCH 05/13] fix virtualenv ci failure (cherry picked from commit e36a6fb384e20d6d3d3f2c6634fca80f71cd149f) --- etc/kayobe/ansible/configure-aio-resources.yml | 9 ++++++++- etc/kayobe/environments/ci-aio/kolla/globals.yml | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/etc/kayobe/ansible/configure-aio-resources.yml b/etc/kayobe/ansible/configure-aio-resources.yml index 78450eaeb..243472d60 100644 --- a/etc/kayobe/ansible/configure-aio-resources.yml +++ b/etc/kayobe/ansible/configure-aio-resources.yml @@ -16,7 +16,14 @@ state: present become: true - - name: Install python openstack client + - name: Ensure latest version of pip is installed + pip: + name: pip + state: latest + virtualenv: '{{ venv }}' + virtualenv_command: "/usr/bin/python3 -m venv" + + - name: Ensure python openstack client is installed pip: name: python-openstackclient virtualenv: '{{ venv }}' diff --git a/etc/kayobe/environments/ci-aio/kolla/globals.yml b/etc/kayobe/environments/ci-aio/kolla/globals.yml index 4ef594ec5..d353b4efc 100644 --- a/etc/kayobe/environments/ci-aio/kolla/globals.yml +++ b/etc/kayobe/environments/ci-aio/kolla/globals.yml @@ -11,3 +11,6 @@ openstack_service_rpc_workers: "1" docker_yum_baseurl: "{{ stackhpc_repo_docker_url }}" docker_yum_gpgkey: "https://download.docker.com/linux/centos/gpg" + +# Increase Grafana timeout +grafana_start_first_node_retries: 20 From 992e2fecb7e413137c8754a544d7aed0cd73d574 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 13 Mar 2023 14:47:03 +0000 Subject: [PATCH 06/13] CI: Install python3-venv on Ubuntu in configure-aio-resources.yml --- etc/kayobe/ansible/configure-aio-resources.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/etc/kayobe/ansible/configure-aio-resources.yml b/etc/kayobe/ansible/configure-aio-resources.yml index 243472d60..48263c641 100644 --- a/etc/kayobe/ansible/configure-aio-resources.yml +++ b/etc/kayobe/ansible/configure-aio-resources.yml @@ -8,13 +8,16 @@ tasks: - name: Install python build dependencies package: - name: - - "{% if ansible_facts.os_family == 'RedHat' %}gcc{% else %}build-essential{% endif %}" - - "python3-dev{% if ansible_facts.os_family == 'RedHat' %}el{% endif %}" + name: "{{ packages | select | list }}" cache_valid_time: "{{ apt_cache_valid_time if ansible_facts.os_family == 'Debian' else omit }}" update_cache: "{{ True if ansible_facts.os_family == 'Debian' else omit }}" state: present become: true + vars: + packages: + - "{% if ansible_facts.os_family == 'RedHat' %}gcc{% else %}build-essential{% endif %}" + - "python3-dev{% if ansible_facts.os_family == 'RedHat' %}el{% endif %}" + - "{% if ansible_facts.os_family == 'Debian' %}python3-venv{% endif %}" - name: Ensure latest version of pip is installed pip: From 24b31d923469bb7d16b214dae99c1107264ae3da Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Fri, 17 Mar 2023 09:53:08 +0000 Subject: [PATCH 07/13] Add new Ironic tags --- etc/kayobe/kolla/globals.yml | 2 ++ .../notes/ironic-fix-online-upgrades-36e86b3ab3ac081c.yaml | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 releasenotes/notes/ironic-fix-online-upgrades-36e86b3ab3ac081c.yaml diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 64f9e9d25..3db61ffcd 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -11,12 +11,14 @@ enable_docker_repo: {% raw %}"{{ 'overcloud' not in group_names or ansible_facts bifrost_tag: xena-20230214T165534 blazar_tag: xena-20230315T122920 caso_tag: xena-20230315T122920 +ironic_tag: xena-20230316T162305 neutron_tag: xena-20230307T142413 prometheus_node_exporter_tag: xena-20230310T170439 {% else %} bifrost_tag: xena-20230215T195824 blazar_tag: xena-20230315T122918 caso_tag: xena-20230315T122918 +ironic_tag: xena-20230317T090705 keystone_tag: xena-20230308T120251 neutron_tag: xena-20230307T142414 prometheus_node_exporter_tag: xena-20230315T164024 diff --git a/releasenotes/notes/ironic-fix-online-upgrades-36e86b3ab3ac081c.yaml b/releasenotes/notes/ironic-fix-online-upgrades-36e86b3ab3ac081c.yaml new file mode 100644 index 000000000..b7e0f9de7 --- /dev/null +++ b/releasenotes/notes/ironic-fix-online-upgrades-36e86b3ab3ac081c.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Adds Ironic images tags to fix a bug with online upgrades for + Bios/Traits. See patch: + https://review.opendev.org/c/openstack/ironic/+/877409 From c01f39e6752543e9ae2a832d7bd4b8269c187c00 Mon Sep 17 00:00:00 2001 From: Matt Crees Date: Fri, 17 Mar 2023 17:18:11 +0000 Subject: [PATCH 08/13] Specify ironic_dnsmasq tag The ironic_dnsmasq container was missed during the ironic container builds. As such, ironic_dnsmasq_tag is explicilty set to the same as the operating-system-equivalent kolla_openstack_release. --- etc/kayobe/kolla/globals.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 3db61ffcd..129c99e6c 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -12,6 +12,7 @@ bifrost_tag: xena-20230214T165534 blazar_tag: xena-20230315T122920 caso_tag: xena-20230315T122920 ironic_tag: xena-20230316T162305 +ironic_dnsmasq_tag: xena-20230214T150257 neutron_tag: xena-20230307T142413 prometheus_node_exporter_tag: xena-20230310T170439 {% else %} @@ -19,6 +20,7 @@ bifrost_tag: xena-20230215T195824 blazar_tag: xena-20230315T122918 caso_tag: xena-20230315T122918 ironic_tag: xena-20230317T090705 +ironic_dnsmasq_tag: xena-20230215T164524 keystone_tag: xena-20230308T120251 neutron_tag: xena-20230307T142414 prometheus_node_exporter_tag: xena-20230315T164024 From cdc5a27c46124012956ef7c955a9c5027081a645 Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Mon, 20 Mar 2023 14:12:33 +0000 Subject: [PATCH 09/13] Add workaround for buggy etcdgw library (#446) undefined --- etc/kayobe/kolla.yml | 10 ++++++++++ etc/kayobe/kolla/globals.yml | 4 ++-- .../fixes-broken-etcdgw-library-2af353ec0dc42109.yaml | 6 ++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index cec4425fb..15f4e243c 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -307,6 +307,16 @@ kolla_build_blocks: RUN sed -i 's/"pc-q35-rhel8.5.0"/"pc-q35-*"/' /usr/share/qemu/firmware/50-edk2-ovmf-cc.json {% endif %} {% endraw %} + neutron_server_footer: | + # This is a workaround for a bug in etcd3gw that was fixed in 1.0.1, but not in v0.2.3. + # https://opendev.org/openstack/etcd3gw/commit/ed899b34e464862525f76fff2377a2cceeb65af7 + {% raw %} + {% if base_distro == 'centos' %} + RUN sed -i 's/decode_unicode=True/decode_unicode=False/' /var/lib/kolla/venv/lib/python3.6/site-packages/etcd3gw/watch.py + {% elif base_distro == 'ubuntu' %} + RUN sed -i 's/decode_unicode=True/decode_unicode=False/' /var/lib/kolla/venv/lib/python3.8/site-packages/etcd3gw/watch.py + {% endif %} + {% endraw %} kolla_build_customizations_common: bifrost_base_pip_packages_append: diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 13da6b4f8..3510739da 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -7,13 +7,13 @@ docker_yum_gpgkey: "https://download.docker.com/linux/centos/gpg" bifrost_tag: wallaby-20230207T194135 blazar_tag: wallaby-20230303T172322 caso_tag: wallaby-20230303T172322 -neutron_tag: wallaby-20230307T113517 +neutron_tag: wallaby-20230317T170927 {% else %} bifrost_tag: wallaby-20230215T160405 blazar_tag: wallaby-20230303T172458 caso_tag: wallaby-20230303T172458 keystone_tag: wallaby-20230308T104024 -neutron_tag: wallaby-20230307T121824 +neutron_tag: wallaby-20230317T170930 {% endif %} glance_tls_proxy_tag: "{% raw %}{{ haproxy_tag | default(openstack_tag) }}{% endraw %}" diff --git a/releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml b/releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml new file mode 100644 index 000000000..e48b16fdc --- /dev/null +++ b/releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + The etcdgw library in the neutron-server container has been patched to + workaround a python3 incompatability. This affects the batching feature in + networking generic switch. From a2c3d1f26dcbc3b9846f56136e2d940873644d07 Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Tue, 21 Mar 2023 09:25:12 +0000 Subject: [PATCH 10/13] Update neutron tag --- etc/kayobe/kolla/globals.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/etc/kayobe/kolla/globals.yml b/etc/kayobe/kolla/globals.yml index 05afd7c27..5ac963f76 100644 --- a/etc/kayobe/kolla/globals.yml +++ b/etc/kayobe/kolla/globals.yml @@ -13,7 +13,7 @@ blazar_tag: xena-20230315T122920 caso_tag: xena-20230315T122920 ironic_tag: xena-20230316T162305 ironic_dnsmasq_tag: xena-20230214T150257 -neutron_tag: FIXME-BUILD-NEW-IMAGE +neutron_tag: xena-20230320T143013 prometheus_node_exporter_tag: xena-20230310T170439 {% else %} bifrost_tag: xena-20230215T195824 @@ -22,7 +22,7 @@ caso_tag: xena-20230315T122918 ironic_tag: xena-20230317T090705 ironic_dnsmasq_tag: xena-20230215T164524 keystone_tag: xena-20230308T120251 -neutron_tag: FIXME-BUILD-NEW-IMAGE +neutron_tag: xena-20230320T143007 prometheus_node_exporter_tag: xena-20230315T164024 {% endif %} From 320ba8b28da879917beec0ce7c4c90c478aaeaf7 Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Wed, 22 Mar 2023 13:20:23 +0000 Subject: [PATCH 11/13] Switch to using a specific version of CentOS Stream (#454) * Switch to using a specific version of CentOS Stream This is to workaround the following breakage: ``` TASK [MichaelRigart.interfaces : RedHat | ensure network service is started and enabled] *** Tuesday 21 March 2023 09:43:32 +0000 (0:00:00.347) 0:02:20.016 ********* fatal: [controller0]: FAILED! => changed=false msg: |- Unable to start service network: Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details. ``` --- .github/workflows/stackhpc-all-in-one.yml | 2 +- terraform/aio/vm.tf | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/stackhpc-all-in-one.yml b/.github/workflows/stackhpc-all-in-one.yml index f819bf7e0..d76a28e8c 100644 --- a/.github/workflows/stackhpc-all-in-one.yml +++ b/.github/workflows/stackhpc-all-in-one.yml @@ -22,7 +22,7 @@ on: vm_image: description: Image for the all-in-one VM type: string - default: CentOS-stream8 + default: bb8c0a34-533f-42fb-a49b-3461e677f3f6 vm_interface: description: Default network interface name type: string diff --git a/terraform/aio/vm.tf b/terraform/aio/vm.tf index bf881e5cc..6a65cff44 100644 --- a/terraform/aio/vm.tf +++ b/terraform/aio/vm.tf @@ -33,9 +33,14 @@ variable "aio_vm_subnet" { type = string } +locals { + image_is_uuid = length(regexall("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", var.aio_vm_image)) > 0 +} + data "openstack_images_image_v2" "image" { name = var.aio_vm_image most_recent = true + count = local.image_is_uuid ? 0 : 1 } data "openstack_networking_subnet_v2" "network" { @@ -52,7 +57,7 @@ resource "openstack_compute_instance_v2" "kayobe-aio" { } block_device { - uuid = data.openstack_images_image_v2.image.id + uuid = local.image_is_uuid ? var.aio_vm_image: data.openstack_images_image_v2.image[0].id source_type = "image" volume_size = 100 boot_index = 0 From ff86865388016e0625cf6e9cfac736cbb9063e30 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Wed, 22 Mar 2023 14:15:01 +0000 Subject: [PATCH 12/13] Revert "Add workaround for buggy etcdgw library (#446)" This reverts commit cdc5a27c46124012956ef7c955a9c5027081a645. This workaround is not required in Yoga. --- etc/kayobe/kolla.yml | 10 ---------- .../fixes-broken-etcdgw-library-2af353ec0dc42109.yaml | 6 ------ 2 files changed, 16 deletions(-) delete mode 100644 releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml index 2cda0c6a0..c35c2cf49 100644 --- a/etc/kayobe/kolla.yml +++ b/etc/kayobe/kolla.yml @@ -354,16 +354,6 @@ kolla_build_blocks: RUN sed -i 's/"pc-q35-rhel8.5.0"/"pc-q35-*"/' /usr/share/qemu/firmware/50-edk2-ovmf-cc.json {% endif %} {% endraw %} - neutron_server_footer: | - # This is a workaround for a bug in etcd3gw that was fixed in 1.0.1, but not in v0.2.3. - # https://opendev.org/openstack/etcd3gw/commit/ed899b34e464862525f76fff2377a2cceeb65af7 - {% raw %} - {% if base_distro == 'centos' %} - RUN sed -i 's/decode_unicode=True/decode_unicode=False/' /var/lib/kolla/venv/lib/python3.6/site-packages/etcd3gw/watch.py - {% elif base_distro == 'ubuntu' %} - RUN sed -i 's/decode_unicode=True/decode_unicode=False/' /var/lib/kolla/venv/lib/python3.8/site-packages/etcd3gw/watch.py - {% endif %} - {% endraw %} # Dict mapping image customization variable names to their values. # Each variable takes the form: diff --git a/releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml b/releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml deleted file mode 100644 index e48b16fdc..000000000 --- a/releasenotes/notes/fixes-broken-etcdgw-library-2af353ec0dc42109.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - The etcdgw library in the neutron-server container has been patched to - workaround a python3 incompatability. This affects the batching feature in - networking generic switch. From 2f90e00d88799b4862a9cbb956a96fe6609116a6 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Wed, 22 Mar 2023 19:51:30 +0000 Subject: [PATCH 13/13] CI: Back to cloud-user for Rocky 9 images --- .github/workflows/stackhpc-pull-request.yml | 4 ++-- etc/kayobe/environments/ci-aio/controllers.yml | 2 +- etc/kayobe/environments/ci-builder/seed.yml | 2 +- etc/kayobe/environments/ci-multinode/compute.yml | 2 +- etc/kayobe/environments/ci-multinode/controllers.yml | 2 +- etc/kayobe/environments/ci-multinode/seed.yml | 2 +- etc/kayobe/environments/ci-multinode/storage.yml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/stackhpc-pull-request.yml b/.github/workflows/stackhpc-pull-request.yml index f193ce251..899f88162 100644 --- a/.github/workflows/stackhpc-pull-request.yml +++ b/.github/workflows/stackhpc-pull-request.yml @@ -142,7 +142,7 @@ jobs: kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} os_distribution: rocky os_release: "9" - ssh_username: rocky + ssh_username: cloud-user neutron_plugin: ovs vm_image: Rocky9 vm_interface: ens3 @@ -159,7 +159,7 @@ jobs: kayobe_image: ${{ needs.build-kayobe-image.outputs.kayobe_image }} os_distribution: rocky os_release: "9" - ssh_username: rocky + ssh_username: cloud-user neutron_plugin: ovn vm_image: Rocky9 vm_interface: ens3 diff --git a/etc/kayobe/environments/ci-aio/controllers.yml b/etc/kayobe/environments/ci-aio/controllers.yml index 1ee9be126..86ef1fad5 100644 --- a/etc/kayobe/environments/ci-aio/controllers.yml +++ b/etc/kayobe/environments/ci-aio/controllers.yml @@ -4,4 +4,4 @@ # User with which to access the controllers via SSH during bootstrap, in order # to setup the Kayobe user account. Default is {{ os_distribution }}. -controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}" +controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}" diff --git a/etc/kayobe/environments/ci-builder/seed.yml b/etc/kayobe/environments/ci-builder/seed.yml index 0a7b393ad..38f28ba88 100644 --- a/etc/kayobe/environments/ci-builder/seed.yml +++ b/etc/kayobe/environments/ci-builder/seed.yml @@ -4,4 +4,4 @@ # User with which to access the seed via SSH during bootstrap, in order # to setup the Kayobe user account. Default is {{ os_distribution }}. -seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}" +seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}" diff --git a/etc/kayobe/environments/ci-multinode/compute.yml b/etc/kayobe/environments/ci-multinode/compute.yml index 6845f5950..7e7701cf0 100644 --- a/etc/kayobe/environments/ci-multinode/compute.yml +++ b/etc/kayobe/environments/ci-multinode/compute.yml @@ -1,5 +1,5 @@ --- -compute_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}" +compute_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}" # List of storage volume groups. See mrlesmithjr.manage-lvm role for # format. compute_lvm_groups: diff --git a/etc/kayobe/environments/ci-multinode/controllers.yml b/etc/kayobe/environments/ci-multinode/controllers.yml index 770b7db38..73c31c27f 100644 --- a/etc/kayobe/environments/ci-multinode/controllers.yml +++ b/etc/kayobe/environments/ci-multinode/controllers.yml @@ -1,5 +1,5 @@ --- -controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}" +controller_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}" # List of storage volume groups. See mrlesmithjr.manage-lvm role for # format. controller_lvm_groups: diff --git a/etc/kayobe/environments/ci-multinode/seed.yml b/etc/kayobe/environments/ci-multinode/seed.yml index 7013f50c6..3eb7afa90 100644 --- a/etc/kayobe/environments/ci-multinode/seed.yml +++ b/etc/kayobe/environments/ci-multinode/seed.yml @@ -1,5 +1,5 @@ --- -seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}" +seed_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}" seed_lvm_groups: - "{{ stackhpc_lvm_group_rootvg }}" diff --git a/etc/kayobe/environments/ci-multinode/storage.yml b/etc/kayobe/environments/ci-multinode/storage.yml index 4aab8a5ed..b152af472 100644 --- a/etc/kayobe/environments/ci-multinode/storage.yml +++ b/etc/kayobe/environments/ci-multinode/storage.yml @@ -1,5 +1,5 @@ --- -storage_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'rocky' if os_release == '9' else 'cloud-user' }}" +storage_bootstrap_user: "{{ os_distribution if os_distribution == 'ubuntu' else 'cloud-user' }}" # List of storage volume groups. See mrlesmithjr.manage-lvm role for # format. storage_lvm_groups: