Skip to content

Commit 3338f2d

Browse files
authored
Merge pull request #612 from stackhpc/upstream/master-2026-08-24
Synchronise master with upstream
2 parents 43426f2 + 720683b commit 3338f2d

12 files changed

Lines changed: 87 additions & 91 deletions

File tree

ansible/idrac-bootstrap-one.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,10 @@
4545
- block:
4646
- name: Ensure DellOS6 switch interface is a member of the bootstrap VLAN
4747
dellos6_config:
48-
provider: "{{ dell_switch_provider }}"
4948
lines:
5049
- "switchport access vlan {{ idrac_bootstrap_vlan }}"
5150
parents:
5251
- "interface {{ switch_interface_name }}"
53-
delegate_to: localhost
5452
when: switch_type == 'dellos6'
5553

5654
# The tasks in this block are delegated to the controller.
@@ -170,12 +168,10 @@
170168
always:
171169
- name: Ensure DellOS6 switch iDRAC interface is a member of the management VLAN
172170
dellos6_config:
173-
provider: "{{ dell_switch_provider }}"
174171
lines:
175172
- "switchport access vlan {{ idrac_network_vlan }}"
176173
parents:
177174
- "interface {{ switch_interface_name }}"
178-
delegate_to: localhost
179175
when: switch_type == 'dellos6'
180176

181177
when: idrac_bootstrap_required

ansible/idrac-bootstrap.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@
116116
# interfaces to it.
117117
- role: dell-switch
118118
dell_switch_type: "{{ switch_type }}"
119-
dell_switch_provider: "{{ switch_dellos_provider }}"
120119
dell_switch_config:
121120
- "vlan {{ idrac_bootstrap_vlan }}"
122121
dell_switch_interface_config: "{{ switch_interface_config_bootstrap }}"
@@ -147,7 +146,6 @@
147146
include_tasks: idrac-bootstrap-one.yml
148147
vars:
149148
dell_switch_type: "{{ switch_type }}"
150-
dell_switch_provider: "{{ switch_dellos_provider }}"
151149
switch_interface_name: "{{ item.key }}"
152150
idrac_port_description: "{{ item.value.description }}"
153151
idrac_network_ip: "{{ idrac_network_ips[idrac_port_description] }}"
@@ -181,7 +179,6 @@
181179
# interfaces from it.
182180
- role: dell-switch
183181
dell_switch_type: "{{ switch_type }}"
184-
dell_switch_provider: "{{ switch_dellos_provider }}"
185182
dell_switch_config:
186183
- "no vlan {{ idrac_bootstrap_vlan }}"
187184
dell_switch_interface_config: "{{ switch_interface_config_bootstrap }}"

ansible/inventory/group_vars/all/switches/dell

Lines changed: 0 additions & 14 deletions
This file was deleted.

ansible/physical-network.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@
138138

139139
- role: dell-switch
140140
dell_switch_type: "{{ switch_type }}"
141-
dell_switch_provider: "{{ switch_dellos_provider }}"
142141
dell_switch_config: "{{ switch_config }}"
143142
dell_switch_interface_config: "{{ switch_interface_config }}"
144143
dell_switch_save: "{{ switch_config_save }}"

ansible/roles/dell-switch/README.md

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Dell Switch
22
===========
33

4-
This role configures Dell switches using the `dellos6`, `dellos9`, or
5-
`dellos10` Ansible modules. It provides a fairly minimal abstraction of the
6-
configuration interface provided by the `dellos` modules, allowing for
4+
This role configures Dell switches using the `dellemc.os6`, `dellemc.os9`, or
5+
`dellemc.os10` Ansible collections. It provides a fairly minimal abstraction of
6+
the configuration interface provided by the collections, allowing for
77
application of arbitrary switch configuration options.
88

99
Requirements
@@ -17,9 +17,6 @@ Role Variables
1717
`dell_switch_type` is the type of Dell switch. One of `dellos6`, `dellos9`, or
1818
`dellos10`.
1919

20-
`dell_switch_provider` is authentication provider information passed as the
21-
`provider` argument to the `dellos` modules.
22-
2320
`dell_switch_config` is a list of configuration lines to apply to the switch,
2421
and defaults to an empty list.
2522

@@ -50,12 +47,6 @@ passwords. It applies global configuration for LLDP, and enables two
5047
roles:
5148
- role: dell-switch
5249
dell_switch_type: "dellos9"
53-
dell_switch_provider:
54-
host: "{{ switch_host }}"
55-
username: "{{ switch_user }}"
56-
password: "{{ switch_password }}"
57-
authorize: yes
58-
auth_pass: "{{ switch_auth_pass }}"
5950
dell_switch_config:
6051
- "protocol lldp"
6152
- " advertise dot3-tlv max-frame-size"

ansible/roles/dell-switch/defaults/main.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
# Type of Dell switch. One of dellos6, dellos9, or dellos10.
33
dell_switch_type:
44

5-
# Authentication provider information.
6-
dell_switch_provider:
7-
85
# List of configuration lines to apply to the switch.
96
dell_switch_config: []
107

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,18 @@
11
---
22
- name: Ensure DellOS6 switches are configured
3-
delegate_to: localhost
4-
dellemc.os6.os6:
5-
provider: "{{ dell_switch_provider }}"
6-
src: "{{ lookup('template', 'dellos6-config.j2') }}"
3+
dellemc.os6.os6_config: # noqa fqcn[canonical]
4+
src: "../templates/dellos6-config.j2"
75
save: "{{ dell_switch_save | bool }}"
86
when: dell_switch_type == 'dellos6'
97

108
- name: Ensure DellOS9 switches are configured
11-
delegate_to: localhost
12-
dellemc.os9.os9:
13-
provider: "{{ dell_switch_provider }}"
14-
src: "{{ lookup('template', 'dellos9-config.j2') }}"
9+
dellemc.os9.os9_config: # noqa fqcn[canonical]
10+
src: "../templates/dellos9-config.j2"
1511
save: "{{ dell_switch_save | bool }}"
1612
when: dell_switch_type == 'dellos9'
1713

1814
- name: Ensure DellOS10 switches are configured
19-
delegate_to: localhost
20-
dellemc.os10.os10:
21-
provider: "{{ dell_switch_provider }}"
22-
src: "{{ lookup('template', 'dellos10-config.j2') }}"
15+
dellemc.os10.os10_config: # noqa fqcn[canonical]
16+
src: "../templates/dellos10-config.j2"
2317
save: "{{ dell_switch_save | bool }}"
2418
when: dell_switch_type == 'dellos10'

ansible/roles/kolla-ansible/tasks/install.yml

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -97,37 +97,6 @@
9797
with_items:
9898
- { name: pip }
9999

100-
- block:
101-
- name: Gather list of installed Python packages
102-
pip_package_info:
103-
clients: "{{ kolla_ansible_pip }}"
104-
register: pip_packages
105-
106-
# Upgrading directly from Ansible 2.9 to Ansible 2.10 or from Ansible 2.10
107-
# to Ansible 4 is known to cause problems. Uninstall Ansible first if its
108-
# version is lower than 4.0.0. Although 2.10 is allowed by version limits,
109-
# this is needed even it is present from Wallaby, because we request
110-
# `state: latest`.
111-
- name: Uninstall Ansible if an old version is present
112-
pip:
113-
name: ansible
114-
state: absent
115-
virtualenv: "{{ kolla_ansible_venv }}"
116-
virtualenv_python: "{{ kolla_ansible_venv_python }}"
117-
when:
118-
- "'ansible' in pip_packages.packages[kolla_ansible_pip]"
119-
- pip_packages.packages[kolla_ansible_pip].ansible[0].version is version('4.0.0', '<')
120-
121-
- name: Uninstall ansible-base
122-
pip:
123-
name: ansible-base
124-
state: absent
125-
virtualenv: "{{ kolla_ansible_venv }}"
126-
virtualenv_python: "{{ kolla_ansible_venv_python }}"
127-
when: "'ansible-base' in pip_packages.packages[kolla_ansible_pip]"
128-
vars:
129-
kolla_ansible_pip: "{{ kolla_ansible_venv }}/bin/pip"
130-
131100
- name: Ensure required Python packages are installed
132101
vars:
133102
kolla_ansible_packages:

doc/source/configuration/reference/physical-network.rst

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -241,27 +241,22 @@ by Ansible:
241241
Dell OS6, OS9, and OS10
242242
-----------------------
243243

244-
Configuration for these devices is applied using the ``dellos6_config``,
245-
``dellos9_config``, and ``dellos10_config`` Ansible modules.
244+
Configuration for these devices is applied using the
245+
``dellemc.os6.os6_config``, ``dellemc.os9.os9_config``, and
246+
``dellemc.os10.os10_config`` Ansible modules.
246247

247248
``switch_type`` should be set to ``dellos6``, ``dellos9``, or ``dellos10``.
248249

249250
``switch_config_save`` may be set to ``true`` to enable saving configuration
250251
after it has been applied.
251252

252-
Provider
253-
^^^^^^^^
254-
255253
* ``ansible_host`` is the hostname or IP address. Optional.
256-
257254
* ``ansible_user`` is the SSH username.
258-
259255
* ``ansible_ssh_pass`` is the SSH password.
260-
261256
* ``switch_auth_pass`` is the 'enable' password.
262-
263-
Alternatively, set ``switch_dellos_provider`` to the value to be passed as the
264-
``provider`` argument to the ``dellos*_config`` module.
257+
* ``ansible_connection`` should be ``ansible.netcommon.network_cli``.
258+
* ``ansible_network_os`` should be ``dellemc.os6.os6``, ``dellemc.os9.os9`` or
259+
``dellemc.os10.os10`` depending on the switch type.
265260

266261
Dell PowerConnect
267262
-----------------

kayobe/plugins/filter/nmstate.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -519,6 +519,8 @@ def get_iface(name):
519519
# <network>_port_type_<portname>.
520520
for port in br_ports or []:
521521
port_iface = get_iface(port)
522+
if mtu:
523+
port_iface.setdefault("mtu", mtu)
522524
if "type" not in port_iface:
523525
# Check for explicit type configuration
524526
port_type = networks.net_attr(
@@ -586,6 +588,22 @@ def get_iface(name):
586588
parent = re.sub(
587589
r'\.{}$'.format(vlan_id), '', iface_name)
588590

591+
# NOTE(bbezak): Do not pass MTU for VLAN interfaces on bridges when
592+
# it is identical to the parent bridge, to work around a
593+
# NetworkManager bug.
594+
bridge_mtus = {}
595+
for bridge in networks.net_select_bridges(
596+
context, names, inventory_hostname):
597+
bridge_interface = networks.net_interface(
598+
context, bridge, inventory_hostname)
599+
bridge_mtus[bridge_interface] = networks.net_mtu(
600+
context, bridge, inventory_hostname)
601+
602+
if parent in bridge_mtus:
603+
parent_mtu = bridge_mtus[parent]
604+
if mtu and mtu == parent_mtu:
605+
del iface["mtu"]
606+
589607
iface["vlan"] = {
590608
"base-iface": parent,
591609
"id": int(vlan_id)

0 commit comments

Comments
 (0)