diff --git a/ansible/inventory/group_vars/all/proxy b/ansible/inventory/group_vars/all/proxy index 2941e3398..549c6f5ae 100644 --- a/ansible/inventory/group_vars/all/proxy +++ b/ansible/inventory/group_vars/all/proxy @@ -12,11 +12,14 @@ https_proxy: "" # List of domains, hostnames, IP addresses and networks for which no proxy is # used. Defaults to ["127.0.0.1", "localhost", "{{ ('http://' ~ -# docker_registry) | urlsplit('hostname') }}"] if docker_registry is set, or -# ["127.0.0.1", "localhost"] otherwise. This is configured only if either -# http_proxy or https_proxy is set. +# docker_registry) | urlsplit('hostname') if docker_registry else '' }}", +# "{{ kolla_internal_vip_address }}", "{{ lookup('vars', +# provision_oc_net_name ~ '_ips', default={})[groups.seed[0]] | +# default('', true) if groups.seed | default([]) | length else '' }}"]. +# This is configured only if either http_proxy or https_proxy is set. no_proxy: - "127.0.0.1" - "localhost" - "{{ ('http://' ~ docker_registry) | urlsplit('hostname') if docker_registry else '' }}" - "{{ kolla_internal_vip_address }}" + - "{{ lookup('vars', provision_oc_net_name ~ '_ips', default={})[groups.seed[0]] | default('', true) if groups.seed | default([]) | length else '' }}" diff --git a/dev/overcloud-test-baremetal.sh b/dev/overcloud-test-baremetal.sh index 3c99055e4..602b2bf41 100755 --- a/dev/overcloud-test-baremetal.sh +++ b/dev/overcloud-test-baremetal.sh @@ -11,6 +11,8 @@ source "${PARENT}/functions" function main { config_init overcloud_test bm1 test-rc provision-net + # Test Redfish as well + overcloud_test bm2 test-rc-red provision-net } main diff --git a/dev/overcloud-test-inspect.sh b/dev/overcloud-test-inspect.sh index ea6aec667..b603b1911 100755 --- a/dev/overcloud-test-inspect.sh +++ b/dev/overcloud-test-inspect.sh @@ -10,6 +10,9 @@ source "${PARENT}/functions" function main { config_init + # Test Redfish as well + overcloud_test_inspect red0 + overcloud_test_inspect tk0 } diff --git a/dev/tenks-deploy-config-compute-libvirt-on-host.yml b/dev/tenks-deploy-config-compute-libvirt-on-host.yml index 53f53d325..158ac9288 100644 --- a/dev/tenks-deploy-config-compute-libvirt-on-host.yml +++ b/dev/tenks-deploy-config-compute-libvirt-on-host.yml @@ -9,7 +9,8 @@ node_types: volumes: # There is a minimum disk space capacity requirement of 4GiB when using Ironic Python Agent: # https://github.com/openstack/ironic-python-agent/blob/master/ironic_python_agent/utils.py#L290 - - capacity: 4GiB + # The cloud image seems to fill a 4GiB disk, so allow 6. + - capacity: 6GiB physical_networks: - physnet1 console_log_enabled: true @@ -19,6 +20,24 @@ node_types: # Stream IPA doesn't fail with "Fatal glibc error: CPU does not support # x86-64-v2". cpu_mode: maximum + type1: + memory_mb: 3072 + vcpus: 1 + volumes: + # There is a minimum disk space capacity requirement of 4GiB when using Ironic Python Agent: + # https://github.com/openstack/ironic-python-agent/blob/master/ironic_python_agent/utils.py#L290 + # The cloud image seems to fill a 4GiB disk, so allow 6. + - capacity: 6GiB + physical_networks: + - physnet1 + console_log_enabled: true + # We seem to hit issues with missing cpu features in CI as a result of using host-model, e.g: + # https://zuul.opendev.org/t/openstack/build/02c33ab51664419a88a5a54ad22852a9/log/primary/system_logs/libvirt/qemu/tk0.txt.gz#38 + # NOTE(bbezak): Force QEMU to expose x86-64‑v2 features, so the CentOS + # Stream IPA doesn't fail with "Fatal glibc error: CPU does not support + # x86-64-v2". + cpu_mode: maximum + ironic_driver: redfish specs: - type: type0 @@ -26,10 +45,18 @@ specs: ironic_config: resource_class: test-rc network_interface: flat + - type: type1 + count: 1 + node_name_prefix: red + ironic_config: + resource_class: test-rc-red + network_interface: flat nova_flavors: - resource_class: test-rc node_type: type0 + - resource_class: test-rc-red + node_type: type1 physnet_mappings: physnet1: breth1 diff --git a/dev/tenks-deploy-config-compute.yml b/dev/tenks-deploy-config-compute.yml index feb46439a..bd53f78c9 100644 --- a/dev/tenks-deploy-config-compute.yml +++ b/dev/tenks-deploy-config-compute.yml @@ -9,7 +9,8 @@ node_types: volumes: # There is a minimum disk space capacity requirement of 4GiB when using Ironic Python Agent: # https://github.com/openstack/ironic-python-agent/blob/master/ironic_python_agent/utils.py#L290 - - capacity: 4GiB + # The cloud image seems to fill a 4GiB disk, so allow 6. + - capacity: 6GiB physical_networks: - physnet1 console_log_enabled: true @@ -19,6 +20,24 @@ node_types: # Stream IPA doesn't fail with "Fatal glibc error: CPU does not support # x86-64-v2". cpu_mode: maximum + type1: + memory_mb: 3072 + vcpus: 1 + volumes: + # There is a minimum disk space capacity requirement of 4GiB when using Ironic Python Agent: + # https://github.com/openstack/ironic-python-agent/blob/master/ironic_python_agent/utils.py#L290 + # The cloud image seems to fill a 4GiB disk, so allow 6. + - capacity: 6GiB + physical_networks: + - physnet1 + console_log_enabled: true + # We seem to hit issues with missing cpu features in CI as a result of using host-model, e.g: + # https://zuul.opendev.org/t/openstack/build/02c33ab51664419a88a5a54ad22852a9/log/primary/system_logs/libvirt/qemu/tk0.txt.gz#38 + # NOTE(bbezak): Force QEMU to expose x86-64‑v2 features, so the CentOS + # Stream IPA doesn't fail with "Fatal glibc error: CPU does not support + # x86-64-v2". + cpu_mode: maximum + ironic_driver: redfish specs: - type: type0 @@ -26,10 +45,18 @@ specs: ironic_config: resource_class: test-rc network_interface: flat + - type: type1 + count: 1 + node_name_prefix: red + ironic_config: + resource_class: test-rc-red + network_interface: flat nova_flavors: - resource_class: test-rc node_type: type0 + - resource_class: test-rc-red + node_type: type1 physnet_mappings: physnet1: breth1 diff --git a/etc/kayobe/proxy.yml b/etc/kayobe/proxy.yml index d7df51e52..a3ddca84b 100644 --- a/etc/kayobe/proxy.yml +++ b/etc/kayobe/proxy.yml @@ -12,10 +12,11 @@ # List of domains, hostnames, IP addresses and networks for which no proxy is # used. Defaults to ["127.0.0.1", "localhost", "{{ ('http://' ~ -# docker_registry) | urlsplit('hostname') }}","{{ kolla_internal_vip_address -# }}"] if docker_registry is set, or ["127.0.0.1", "localhost","{{ -# kolla_internal_vip_address }}"] otherwise. This is configured only if either -# http_proxy or https_proxy is set. +# docker_registry) | urlsplit('hostname') if docker_registry else '' }}", +# "{{ kolla_internal_vip_address }}", "{{ lookup('vars', +# provision_oc_net_name ~ '_ips', default={})[groups.seed[0]] | +# default('', true) if groups.seed | default([]) | length else '' }}"]. +# This is configured only if either http_proxy or https_proxy is set. #no_proxy: ############################################################################### diff --git a/playbooks/kayobe-overcloud-base/baremetal.j2 b/playbooks/kayobe-overcloud-base/baremetal.j2 index 47920424d..131639eb3 100644 --- a/playbooks/kayobe-overcloud-base/baremetal.j2 +++ b/playbooks/kayobe-overcloud-base/baremetal.j2 @@ -2,3 +2,4 @@ hv100 tk0 tk1 +red0 diff --git a/playbooks/kayobe-overcloud-upgrade-base/run.yml b/playbooks/kayobe-overcloud-upgrade-base/run.yml index 820536979..123d5686b 100644 --- a/playbooks/kayobe-overcloud-upgrade-base/run.yml +++ b/playbooks/kayobe-overcloud-upgrade-base/run.yml @@ -90,6 +90,12 @@ cmd: "{{ kayobe_src_dir }}/dev/overcloud-upgrade.sh &> {{ logs_dir }}/ansible/overcloud-upgrade" executable: /bin/bash + # Upgrading restarts libvirt, which breaks sushy-emulator. + - name: Restart sushy-emulator + shell: + cmd: "systemctl restart sushy_emulator.service" + become: true + # Remove unused Docker images to avoid reaching full disk - name: Remove unused Docker images shell: diff --git a/releasenotes/notes/add-seed-ip-to-no-proxy-0d7212317a9b63f3.yaml b/releasenotes/notes/add-seed-ip-to-no-proxy-0d7212317a9b63f3.yaml new file mode 100644 index 000000000..48bde7363 --- /dev/null +++ b/releasenotes/notes/add-seed-ip-to-no-proxy-0d7212317a9b63f3.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixes an issue where seed service deployment could fail with a + ``DiscoveryFailure`` error when an HTTP proxy is configured. The seed's + provisioning IP address is now included in the default ``no_proxy`` list, + preventing the proxy from intercepting requests to seed services such as + Ironic. + `LP#2154438 `__ diff --git a/roles/kayobe-ci-prep/tasks/main.yml b/roles/kayobe-ci-prep/tasks/main.yml index faea392e8..11847e719 100644 --- a/roles/kayobe-ci-prep/tasks/main.yml +++ b/roles/kayobe-ci-prep/tasks/main.yml @@ -64,7 +64,7 @@ - name: Install kernel-modules-extra for running kernel ansible.builtin.dnf: - name: "kernel-modules-extra" + name: "kernel-modules-extra-{{ ansible_facts.kernel }}" state: present when: ansible_facts.os_family == 'RedHat'