Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions ansible/inventory/group_vars/all/bifrost
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ kolla_bifrost_inspector_hooks: "{{ inspector_hooks }}"
# 'active' or 'pxe'.
kolla_bifrost_inspector_port_addition: "{{ inspector_add_ports }}"

# Which ports to keep after introspection. One of 'all', 'present', or 'added'.
# Default follows Bifrost's default of 'present'.
kolla_bifrost_inspector_keep_ports: "present"

# List of extra kernel parameters for the inspector default PXE configuration.
# Default is {{ inspector_extra_kernel_options }}, defined in inspector.yml.
# When customising this variable, the default extra kernel parameters should be
Expand Down
6 changes: 3 additions & 3 deletions ansible/inventory/group_vars/all/openstack
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
###############################################################################
# OpenStack release configuration.

# Name of the current OpenStack release. Default is "2025.2".
openstack_release: "2025.2"
# Name of the current OpenStack release. Default is "master".
openstack_release: "master"

# Name of the current OpenStack branch. Default is "stable/2025.2".
# Name of the current OpenStack branch. Default is "master".
openstack_branch: >-
{% if openstack_release != 'master' %}stable/{% endif %}{{ openstack_release | lower }}

Expand Down
1 change: 1 addition & 0 deletions ansible/kolla-ansible.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
kolla_inspector_dhcp_pool_end: "{{ inspection_net_name | net_inspection_allocation_pool_end }}"
kolla_inspector_netmask: "{{ inspection_net_name | net_mask }}"
kolla_inspector_default_gateway: "{{ inspection_net_name | net_inspection_gateway or inspection_net_name | net_gateway }}"
kolla_inspector_dns_servers: "{{ inspection_net_name | net_inspection_dns_servers }}"
kolla_inspector_extra_kernel_options: "{{ inspector_extra_kernel_options }}"
kolla_libvirt_tls: "{{ compute_libvirt_enable_tls | bool }}"
kolla_globals_paths_static:
Expand Down
3 changes: 3 additions & 0 deletions ansible/roles/kolla-ansible/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@ kolla_inspector_netmask:
# Default gateway to use for inspection network.
kolla_inspector_default_gateway:

# DNS servers for inspection network.
kolla_inspector_dns_servers: []

# List of extra kernel parameters for the inspector default PXE configuration.
kolla_inspector_extra_kernel_options: []

Expand Down
3 changes: 3 additions & 0 deletions ansible/roles/kolla-ansible/templates/kolla/globals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -401,6 +401,9 @@ ironic_dnsmasq_dhcp_ranges:
{% if kolla_inspector_default_gateway %}
routers: "{{ kolla_inspector_default_gateway }}"
{% endif %}
{% if kolla_inspector_dns_servers %}
dns_servers: "{{ kolla_inspector_dns_servers | join(',') }}"
{% endif %}
{% endif %}
{% if kolla_inspector_extra_kernel_options %}
ironic_kernel_cmdline_extras:
Expand Down
3 changes: 3 additions & 0 deletions ansible/roles/kolla-bifrost/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ kolla_bifrost_inspector_hooks:
# 'active' or 'pxe'.
kolla_bifrost_inspector_port_addition:

# Which ports to keep after introspection. One of 'all', 'present', or 'added'.
kolla_bifrost_inspector_keep_ports:

# List of extra kernel parameters for the inspector default PXE configuration.
kolla_bifrost_inspector_extra_kernel_options:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ inspector_hooks: "{{ kolla_bifrost_inspector_hooks | join(',') }}"
inspector_port_addition: "{{ kolla_bifrost_inspector_port_addition }}"
{% endif %}

{% if kolla_bifrost_inspector_keep_ports %}
# Which ports to keep after introspection. One of 'all', 'present', or 'added'.
inspector_keep_ports: "{{ kolla_bifrost_inspector_keep_ports }}"
{% endif %}

{% if kolla_bifrost_inspector_extra_kernel_options %}
# Extra kernel parameters for the inspector default PXE configuration.
inspector_extra_kernel_options: "{{ kolla_bifrost_inspector_extra_kernel_options if kolla_bifrost_inspector_extra_kernel_options is string else kolla_bifrost_inspector_extra_kernel_options | join(' ') }}"
Expand Down
4 changes: 2 additions & 2 deletions ansible/roles/kolla-openstack/molecule/default/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ driver:
lint: |
yamllint .
platforms:
- name: centos-stream9
image: quay.io/centos/centos:stream9
- name: ubuntu-noble
image: quay.io/opendevmirror/ubuntu:24.04
network_mode: host
provisioner:
name: ansible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ driver:
lint: |
yamllint .
platforms:
- name: centos-stream9
image: quay.io/centos/centos:stream9
- name: ubuntu-noble
image: quay.io/opendevmirror/ubuntu:24.04
network_mode: host
provisioner:
name: ansible
Expand Down
3 changes: 3 additions & 0 deletions doc/source/configuration/reference/bifrost.rst
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,9 @@ The following options configure the Ironic Inspector service in the
Which MAC addresses to add as ports during introspection. One of ``all``,
``active`` or ``pxe``. Default is ``{{ inspector_add_ports }}``, defined in
``${KAYOBE_CONFIG_PATH}/inspector.yml``.
``kolla_bifrost_inspector_keep_ports``
Which ports to keep after introspection. One of ``all``, ``present`` or
``added``. Default is ``present`` to align with Bifrost's defaults.
``kolla_bifrost_inspector_extra_kernel_options``
List of extra kernel parameters for the inspector default PXE
configuration. Default is ``{{ inspector_extra_kernel_options }}``, defined
Expand Down
9 changes: 7 additions & 2 deletions doc/source/configuration/reference/network.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ supported:
IP address of the gateway for the hardware introspection network.
``neutron_gateway``
IP address of the gateway for a neutron subnet based on this network.
``inspection_dns_servers``
List of DNS servers used during hardware introspection.
``vlan``
VLAN ID.
``mtu``
Expand Down Expand Up @@ -827,19 +829,22 @@ If using the overcloud to inspect bare metal workload (compute) hosts, it is
necessary to define a DHCP allocation pool for the overcloud's ironic inspector
DHCP server using the ``inspection_allocation_pool_start`` and
``inspection_allocation_pool_end`` attributes of the workload provisioning
network.
network. If ``kolla_internal_fqdn`` is set, it is mandatory to also supply one
or more DNS servers using ``inspection_dns_servers``.

.. note::

This example assumes that the ``example`` network is mapped to
``provision_wl_net_name``.

To configure a network called ``example`` with an inspection allocation pool:
To configure a network called ``example`` with an inspection allocation pool
and inspection DNS servers:

.. code-block:: yaml

example_inspection_allocation_pool_start: 10.0.1.196
example_inspection_allocation_pool_end: 10.0.1.254
example_inspection_dns_servers: [10.0.1.10, 10.0.1.11]

.. note::

Expand Down
6 changes: 6 additions & 0 deletions doc/source/contributor/releases.rst
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,12 @@ all references to ``stable/<openstack_release>`` need to be changed to
unmaintained branch. For example, see
https://review.opendev.org/c/openstack/kayobe/+/968298.

More recent releases which include upgrade jobs from the unmaintained release
should update their CI configuration to use the
``unmaintained/<openstack_release>`` branch. For example, see
https://review.opendev.org/c/openstack/kayobe/+/969411 and
https://review.opendev.org/c/openstack/kayobe/+/970016.

Transitioning to End of Life (EOL)
==================================

Expand Down
4 changes: 4 additions & 0 deletions etc/kayobe/bifrost.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@
# 'active' or 'pxe'.
#kolla_bifrost_inspector_port_addition:

# Which ports to keep after introspection. One of 'all', 'present', or 'added'.
# Default follows Bifrost's default of 'present'.
#kolla_bifrost_inspector_keep_ports:

# List of extra kernel parameters for the inspector default PXE configuration.
# Default is {{ inspector_extra_kernel_options }}, defined in inspector.yml.
# When customising this variable, the default extra kernel parameters should be
Expand Down
4 changes: 2 additions & 2 deletions etc/kayobe/openstack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
###############################################################################
# OpenStack release configuration.

# Name of the current OpenStack release. Default is "2025.2".
# Name of the current OpenStack release. Default is "master".
#openstack_release:

# Name of the current OpenStack branch. Default is "stable/2025.2".
# Name of the current OpenStack branch. Default is "master".
#openstack_branch:

###############################################################################
Expand Down
7 changes: 7 additions & 0 deletions kayobe/plugins/filter/networks.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,12 @@ def net_inspection_allocation_pool_end(context, name, inventory_hostname=None):
net_inspection_gateway = _make_attr_filter('inspection_gateway')


@jinja2.pass_context
def net_inspection_dns_servers(context, name, inventory_hostname=None):
return net_attr(context, name, 'inspection_dns_servers',
inventory_hostname)


@jinja2.pass_context
def net_neutron_allocation_pool_start(context, name, inventory_hostname=None):
return net_attr(context, name, 'neutron_allocation_pool_start',
Expand Down Expand Up @@ -791,6 +797,7 @@ def get_filters():
'net_inspection_allocation_pool_end': (
net_inspection_allocation_pool_end),
'net_inspection_gateway': net_inspection_gateway,
'net_inspection_dns_servers': net_inspection_dns_servers,
'net_neutron_allocation_pool_start': net_neutron_allocation_pool_start,
'net_neutron_allocation_pool_end': net_neutron_allocation_pool_end,
'net_neutron_gateway': net_neutron_gateway,
Expand Down
6 changes: 6 additions & 0 deletions playbooks/kayobe-overcloud-host-configure-base/pre.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,9 @@
become: true
loop: "{{ range(2, 8) | list }}"
when: ansible_facts.os_family == 'Debian'

- name: Ensure firewalld is unmasked
ansible.builtin.systemd_service:
name: firewalld
masked: false
become: true
6 changes: 6 additions & 0 deletions releasenotes/notes/bifrost-keep-ports-5f2e583a201645b9.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
features:
- |
Allows configuring ``inspector_keep_ports`` for Bifrost via
``kolla_bifrost_inspector_keep_ports`` (defaults to ``present`` to match
Bifrost).
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
features:
- |
Configure inspection network DNS servers to enable Ironic inspection
when ``kolla_internal_fqdn`` is set.
2 changes: 1 addition & 1 deletion requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
collections:
- name: https://opendev.org/openstack/ansible-collection-kolla
type: git
version: stable/2025.2
version: master
- name: community.docker
version: 3.11.0
- name: community.network
Expand Down
10 changes: 5 additions & 5 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,15 @@ setenv =
OS_TEST_TIMEOUT=60
ANSIBLE_VERBOSITY=3
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2025.2}
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run {posargs}

[testenv:pep8]
# sphinx8 needs the sphinx package which is required via doc/requirements.txt
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2025.2}
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
-r{toxinidir}/test-requirements.txt
Expand All @@ -42,7 +42,7 @@ commands =

[testenv:venv]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2025.2}
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = {posargs}
Expand All @@ -60,7 +60,7 @@ commands =

[testenv:molecule]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2025.2}
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/molecule-requirements.txt
commands =
Expand Down Expand Up @@ -131,7 +131,7 @@ commands =

[testenv:docs]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2025.2}
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build/html
Expand Down
8 changes: 0 additions & 8 deletions zuul.d/jobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -71,19 +71,11 @@
required-projects:
# Include kayobe to ensure other projects can use this job.
- name: openstack/ansible-collection-kolla
# TODO(priteau): Remove when kayobe stable/2025.2 exists.
override-checkout: stable/2025.2
- name: openstack/kayobe
- name: openstack/kayobe-config-dev
- name: openstack/kolla
# TODO(priteau): Remove when kayobe stable/2025.2 exists.
override-checkout: stable/2025.2
- name: openstack/kolla-ansible
# TODO(priteau): Remove when kayobe stable/2025.2 exists.
override-checkout: stable/2025.2
- name: openstack/requirements
# TODO(priteau): Remove when kayobe stable/2025.2 exists.
override-checkout: stable/2025.2
- name: openstack/tenks
irrelevant-files:
- ^\..+
Expand Down