Skip to content

Commit fbecec1

Browse files
authored
Merge pull request #562 from stackhpc/upstream/master-2026-05-18
Synchronise master with upstream
2 parents bb0b388 + 5e864fb commit fbecec1

60 files changed

Lines changed: 914 additions & 146 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ansible/baremetal-compute-register.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@
6161
--name {{ inventory_hostname }} \
6262
--driver {{ ironic_driver }} \
6363
{% for key, value in ironic_driver_info.items() %}
64-
--driver-info {{ key }}={{ value }} \
64+
--driver-info {{ (key ~ '=' ~ value) | quote }} \
6565
{% endfor %}
6666
{% for key, value in ironic_properties.items() %}
67-
--property {{ key }}={{ value }} \
67+
--property {{ (key ~ '=' ~ value) | quote }} \
6868
{% endfor %}
6969
--resource-class {{ ironic_resource_class }}
7070
when:

ansible/baremetal-compute-serial-console.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,18 +83,18 @@
8383

8484
- name: Set IPMI serial console terminal port
8585
vars:
86-
name: "{{ node['name'] }}"
87-
port: "{{ hostvars[controller_host].console_allocation_result.ports[name] }}"
86+
node_name: "{{ node['name'] }}"
87+
node_port: "{{ hostvars[controller_host].console_allocation_result.ports[node_name] }}"
8888
# NOTE: Without this, the controller's ansible_host variable will not
8989
# be respected when using delegate_to.
9090
ansible_host: "{{ hostvars[controller_host].ansible_host | default(controller_host) }}"
9191
command: >
92-
{{ venv }}/bin/openstack baremetal node set {{ name }} --driver-info ipmi_terminal_port={{ port }}
92+
{{ venv }}/bin/openstack baremetal node set {{ node_name }} --driver-info ipmi_terminal_port={{ node_port }}
9393
delegate_to: "{{ controller_host }}"
9494
environment: "{{ openstack_auth_env }}"
9595
when: >-
9696
node['driver_info'].ipmi_terminal_port is not defined or
97-
node['driver_info'].ipmi_terminal_port | int != port | int
97+
node['driver_info'].ipmi_terminal_port | int != node_port | int
9898
9999
- name: Enable the IPMI socat serial console
100100
vars:

ansible/container-engine.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
name: docker
1616
vars:
1717
docker_daemon_mtu: "{{ public_net_name | net_mtu | default }}"
18-
docker_configure_for_zun: "{{ kolla_enable_zun | bool }}"
1918
docker_http_proxy: "{{ kolla_http_proxy }}"
2019
docker_https_proxy: "{{ kolla_https_proxy }}"
2120
docker_no_proxy: "{{ kolla_no_proxy | select | join(',') }}"

ansible/dell-switch-bmp.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
- role: dell-switch-bmp
1111
# This is the Nginx web server on the seed node.
1212
dell_switch_bmp_http_base_url: "http://{{ provision_oc_net_name | net_ip }}:8080"
13-
when: dell_switch_bmp_images
13+
when: dell_switch_bmp_images is truthy

ansible/inventory/group_vars/all/bifrost

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ kolla_bifrost_inspector_keep_ports: "present"
106106
# kept to retain full node inspection capabilities.
107107
kolla_bifrost_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}"
108108

109+
# Node driver to use for auto-discovered nodes. Default is
110+
# {{ inspector_discovery_enroll_node_driver }}, defined in inspector.yml. Set
111+
# to 'redfish' for modern BMC implementations.
112+
kolla_bifrost_inspector_default_node_driver: "{{ inspector_discovery_enroll_node_driver }}"
113+
109114
# List of introspection rules for Bifrost's Ironic Inspector service.
110115
kolla_bifrost_inspector_rules: "{{ inspector_rules }}"
111116

ansible/inventory/group_vars/all/kolla

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,6 @@ overcloud_container_image_regex_map:
174174
enabled: "{{ kolla_enable_heat | bool }}"
175175
- regex: ^horizon
176176
enabled: "{{ kolla_enable_horizon | bool }}"
177-
- regex: ^influxdb
178-
enabled: "{{ kolla_enable_influxdb | bool }}"
179177
- regex: ^ironic
180178
enabled: "{{ kolla_enable_ironic | bool }}"
181179
- regex: ironic-neutron-agent
@@ -188,8 +186,6 @@ overcloud_container_image_regex_map:
188186
enabled: "{{ kolla_enable_keystone | bool }}"
189187
- regex: kolla-toolbox
190188
enabled: True
191-
- regex: ^kuryr
192-
enabled: "{{ kolla_enable_kuryr | bool }}"
193189
- regex: ^letsencrypt
194190
enabled: "{{ kolla_enable_letsencrypt | bool }}"
195191
- regex: ^magnum
@@ -250,8 +246,6 @@ overcloud_container_image_regex_map:
250246
enabled: "{{ kolla_enable_swift | bool }}"
251247
- regex: ^tacker
252248
enabled: "{{ kolla_enable_tacker | bool }}"
253-
- regex: ^telegraf
254-
enabled: "{{ kolla_enable_telegraf | bool }}"
255249
- regex: ^tgtd
256250
enabled: "{{ kolla_enable_cinder | bool or kolla_enable_ironic | bool }}"
257251
- regex: ^trove
@@ -260,8 +254,6 @@ overcloud_container_image_regex_map:
260254
enabled: "{{ kolla_enable_valkey | bool }}"
261255
- regex: ^watcher
262256
enabled: "{{ kolla_enable_watcher | bool }}"
263-
- regex: ^zun
264-
enabled: "{{ kolla_enable_zun | bool }}"
265257

266258
# List of regular expressions matching names of container images to build for
267259
# overcloud hosts.
@@ -558,13 +550,11 @@ kolla_enable_grafana: "no"
558550
kolla_enable_hacluster: "no"
559551
kolla_enable_heat: "{{ kolla_enable_openstack_core | bool }}"
560552
kolla_enable_horizon: "{{ kolla_enable_openstack_core | bool }}"
561-
kolla_enable_influxdb: "{{ kolla_enable_cloudkitty | bool }}"
562553
kolla_enable_ironic: "no"
563554
kolla_enable_ironic_dnsmasq: "{{ kolla_enable_ironic | bool and kolla_inspector_enable_discovery | bool }}"
564555
kolla_enable_ironic_pxe_filter: "{{ kolla_enable_ironic | bool and kolla_inspector_enable_discovery | bool }}"
565556
kolla_enable_ironic_neutron_agent: "{{ kolla_enable_neutron | bool and kolla_enable_ironic | bool }}"
566557
kolla_enable_iscsid: "{{ kolla_enable_cinder | bool and kolla_enable_cinder_backend_iscsi | bool }}"
567-
kolla_enable_kuryr: "no"
568558
kolla_enable_letsencrypt: "no"
569559
kolla_enable_magnum: "no"
570560
kolla_enable_manila: "no"
@@ -583,19 +573,17 @@ kolla_enable_ovs_dpdk: "no"
583573
kolla_enable_opensearch: "{{ kolla_enable_central_logging | bool or kolla_enable_osprofiler | bool }}"
584574
kolla_enable_opensearch_dashboards: "{{ kolla_enable_opensearch | bool }}"
585575
kolla_enable_osprofiler: "no"
586-
kolla_enable_placement: "{{ kolla_enable_nova | bool or kolla_enable_zun | bool }}"
576+
kolla_enable_placement: "{{ kolla_enable_nova | bool }}"
587577
kolla_enable_prometheus: "no"
588578
kolla_enable_qdrouterd: "no"
589579
kolla_enable_redis: "no"
590580
kolla_enable_skyline: "no"
591581
kolla_enable_swift: "no"
592582
kolla_enable_tacker: "no"
593-
kolla_enable_telegraf: "no"
594583
kolla_enable_trove: "no"
595584
kolla_enable_valkey: "no"
596585
kolla_enable_vitrage: "no"
597586
kolla_enable_watcher: "no"
598-
kolla_enable_zun: "no"
599587

600588
###############################################################################
601589
# Kolla custom config generation.

ansible/ip-allocation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
when:
3333
- item | net_cidr != None
3434
- item | net_bootproto != 'dhcp'
35-
- not item | net_no_ip | bool
35+
- item | net_no_ip is falsy
3636
roles:
3737
- role: ip-allocation
3838
ip_allocation_filename: "{{ kayobe_env_config_path }}/network-allocation.yml"

ansible/kolla-ansible.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@
102102
vars:
103103
kolla_ansible_control_host_become: "{{ kayobe_control_host_become | bool }}"
104104
kolla_ansible_install_epel: "{{ dnf_install_epel }}"
105+
kolla_ansible_custom_requirements_search_paths_static:
106+
- "{{ kayobe_config_path }}"
107+
kolla_ansible_custom_requirements_search_paths: "{{ kolla_ansible_custom_requirements_search_paths_static + kayobe_env_search_paths | default([]) }}"
108+
kolla_ansible_custom_requirements_paths: "{{ kolla_ansible_custom_requirements_search_paths | map('regex_replace', '$', '/kolla/requirements.yml') | list }}"
105109
kolla_external_fqdn_cert: "{{ kolla_config_path }}/certificates/haproxy.pem"
106110
kolla_internal_fqdn_cert: "{{ kolla_config_path }}/certificates/haproxy-internal.pem"
107111
kolla_ansible_passwords_path: "{{ kayobe_env_config_path }}/kolla/passwords.yml"

ansible/network-connectivity.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@
5151
ping {{ item | net_gateway }} -c1 -M do {% if mtu %} -s {{ mtu | int - icmp_overhead_bytes }}{% endif %}
5252
with_items: "{{ network_interfaces }}"
5353
when:
54-
- item | net_ip
55-
- item | net_gateway
54+
- item | net_ip is truthy
55+
- item | net_gateway is truthy
5656
changed_when: False
5757
vars:
5858
mtu: "{{ item | net_mtu }}"
@@ -77,14 +77,14 @@
7777
when:
7878
- remote_hosts | length > 0
7979
- remote_ip | length > 0
80-
- item | net_ip
80+
- item | net_ip is truthy
8181
changed_when: False
8282
vars:
8383
# Select other hosts targeted by this play which have this network
8484
# interface (item).
8585
remote_hosts: >
8686
{{ hostvars.values() |
87-
selectattr('inventory_hostname', 'is_in', play_hosts) |
87+
selectattr('inventory_hostname', 'is_in', ansible_play_batch) |
8888
selectattr('network_interfaces', 'defined') |
8989
selectattr('network_interfaces', 'issuperset', [item]) |
9090
rejectattr('inventory_hostname', 'equalto', inventory_hostname) |
@@ -95,5 +95,5 @@
9595
# in the command. Assumption was that this was being evaluated once
9696
# for the when clause and then again for the command. Bug?
9797
remote_host: "{{ remote_hosts | random(seed=ansible_facts.date_time.iso8601) if remote_hosts | length > 0 else '' }}"
98-
remote_ip: "{{ lookup('cached', 'vars', item ~ '_ips', default={})[remote_host] | default('', true) }}"
98+
remote_ip: "{{ lookup('vars', item ~ '_ips', default={})[remote_host] | default('', true) }}"
9999
mtu: "{{ item | net_mtu }}"
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
- name: Ensure overcloud hosts are registered in Bifrost
3+
hosts: overcloud
4+
gather_facts: false
5+
vars:
6+
seed_host: "{{ groups['seed'][0] }}"
7+
# Try to reduce contention on Bifrost and resolve db lock errors
8+
serial: 10
9+
tasks:
10+
- name: Fail when no supported drivers are available
11+
ansible.builtin.fail:
12+
msg: This node uses an unsupported or undefined driver, only Redfish is supported.
13+
when:
14+
- ironic_driver | default ('') not in ['redfish']
15+
16+
- name: List baremetal nodes
17+
command: >
18+
{{ container_engine }} exec bifrost_deploy
19+
bash -c '
20+
export OS_CLOUD=bifrost &&
21+
openstack baremetal node show {{ inventory_hostname }}'
22+
register: node_show
23+
failed_when: false
24+
changed_when: false
25+
delegate_to: "{{ seed_host }}"
26+
vars:
27+
ansible_host: "{{ hostvars[seed_host].ansible_host | default(seed_host) }}"
28+
29+
- name: Create baremetal nodes
30+
command: >
31+
{{ container_engine }} exec bifrost_deploy
32+
bash -c '
33+
export OS_CLOUD=bifrost &&
34+
openstack baremetal node create
35+
--driver {{ ironic_driver }}
36+
{% for key, value in ironic_driver_info.items() %}
37+
--driver-info {{ (key ~ '=' ~ value) | quote }}
38+
{% endfor %}
39+
{% for key, value in ironic_properties.items() %}
40+
--property {{ (key ~ '=' ~ value) | quote }}
41+
{% endfor %}
42+
--name {{ inventory_hostname }}'
43+
delegate_to: "{{ seed_host }}"
44+
vars:
45+
ansible_host: "{{ hostvars[seed_host].ansible_host | default(seed_host) }}"
46+
when:
47+
- node_show.rc != 0
48+
49+
- name: Manage baremetal nodes
50+
command: >
51+
{{ container_engine }} exec bifrost_deploy
52+
bash -c '
53+
export OS_CLOUD=bifrost &&
54+
openstack baremetal node manage
55+
{{ inventory_hostname }}
56+
--wait'
57+
delegate_to: "{{ seed_host }}"
58+
vars:
59+
ansible_host: "{{ hostvars[seed_host].ansible_host | default(seed_host) }}"
60+
when:
61+
- node_show.rc != 0

0 commit comments

Comments
 (0)