Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c52058c
Tolerate missing image IDs when updating deployment images
jovial Aug 25, 2026
a4b8f9d
Update Docker storage driver default
jovial Jul 3, 2026
1aec029
Skip etc-hosts fixup on hosts not mapped to kolla
jovial Sep 21, 2026
0d2d7c8
Respect custom ansible.cfg for Galaxy installs
jovial Sep 21, 2026
14da58d
Set ANSIBLE_CONFIG for kolla-ansible collections
jovial Sep 22, 2026
f2e9cfc
CI: Use OpenDev Galaxy mirror
jovial Sep 21, 2026
e4ab4eb
Remove Swift support
jovial Sep 21, 2026
1ca3389
Fix Dell OS9 switch config indentation
sellth Sep 28, 2026
c8229e4
Fix Dell OS10 switch config indentation
sellth Sep 25, 2026
df758ee
Fix Dell OS10 switch port changed status with whitespaces
sellth Sep 25, 2026
df19278
Merge "Update Docker storage driver default"
Sep 28, 2026
b321ba3
Wait for firewalld to be ready before configuring
jovial Sep 21, 2026
74bfe44
Merge "Fix Dell OS10 switch config indentation"
Sep 28, 2026
a135bf1
Merge "Fix Dell OS10 switch port changed status with whitespaces"
Sep 28, 2026
9e67960
Merge "Tolerate missing image IDs when updating deployment images"
Sep 28, 2026
f15aed1
Remove extra line break in release note
priteau Sep 28, 2026
94b04e4
Revert "CI: Make Ubuntu overcloud upgrade job periodic"
priteau Sep 28, 2026
503a914
Revert "CI: Skip previous release testing for Ubuntu"
priteau Sep 28, 2026
36086e1
Fix Dell switch config task changed status
sellth Sep 25, 2026
778502f
Merge "Revert "CI: Make Ubuntu overcloud upgrade job periodic""
Sep 29, 2026
ee6d553
Bump community.docker to 5.3.0
priteau Sep 29, 2026
db16de5
Add support for Cisco NX-OS switches
bbezak Sep 22, 2026
ba95130
Merge "Fix Dell switch config task changed status"
Sep 29, 2026
36bfec7
Merge "Fix Dell OS9 switch config indentation"
Sep 29, 2026
66e7d56
Merge "Respect custom ansible.cfg for Galaxy installs"
Sep 29, 2026
2563463
Merge "Skip etc-hosts fixup on hosts not mapped to kolla"
Sep 29, 2026
6b0afb8
Merge "Set ANSIBLE_CONFIG for kolla-ansible collections"
Sep 29, 2026
004db2b
Merge "Remove Swift support"
Sep 29, 2026
31f5844
Merge "CI: Use OpenDev Galaxy mirror"
Sep 29, 2026
a3716f9
Add support for AlliedWare Plus switches
priteau Sep 30, 2026
95bf2ab
Merge "Add support for Cisco NX-OS switches"
Sep 30, 2026
802ecb7
Merge "Revert "CI: Skip previous release testing for Ubuntu""
Sep 30, 2026
88c6670
Merge "Add support for AlliedWare Plus switches"
Sep 30, 2026
a920b30
Merge "Bump community.docker to 5.3.0"
Sep 30, 2026
9d6b1e2
Merge "Wait for firewalld to be ready before configuring"
Sep 30, 2026
f233565
Synchronise network configuration variables
priteau Oct 1, 2026
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
5 changes: 3 additions & 2 deletions ansible/inventory/group_vars/all/container-engine
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ container_engine_volumes_path: "{{ podman_volumes_path if container_engine == 'p
###############################################################################
# Docker configuration.

# Name of the docker storage driver. Default is 'overlay2'.
docker_storage_driver: overlay2
# Name of the docker storage driver. Default is "", which defers to the
# Docker runtime default.
docker_storage_driver: ""

# URL of docker registry
docker_registry:
Expand Down
1 change: 0 additions & 1 deletion ansible/inventory/group_vars/all/controllers
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ controller_default_network_interfaces: >
inspection_net_name,
internal_net_name,
storage_net_name,
swift_storage_net_name,
cleaning_net_name] | select | unique | list }}

# List of extra networks to which controller nodes are attached.
Expand Down
7 changes: 0 additions & 7 deletions ansible/inventory/group_vars/all/kolla
Original file line number Diff line number Diff line change
Expand Up @@ -244,8 +244,6 @@ overcloud_container_image_regex_map:
enabled: "{{ kolla_enable_redis | bool }}"
- regex: ^skyline
enabled: "{{ kolla_enable_skyline | bool }}"
- regex: ^swift
enabled: "{{ kolla_enable_swift | bool }}"
- regex: ^tacker
enabled: "{{ kolla_enable_tacker | bool }}"
- regex: ^tgtd
Expand Down Expand Up @@ -405,8 +403,6 @@ kolla_overcloud_inventory_pass_through_host_vars_default:
- "kolla_api_interface"
- "kolla_storage_interface"
- "kolla_cluster_interface"
- "kolla_swift_storage_interface"
- "kolla_swift_replication_interface"
- "kolla_provision_interface"
- "kolla_inspector_dnsmasq_interface"
- "kolla_dns_interface"
Expand Down Expand Up @@ -437,8 +433,6 @@ kolla_overcloud_inventory_pass_through_host_vars_map_default:
kolla_api_interface: "api_interface"
kolla_storage_interface: "storage_interface"
kolla_cluster_interface: "cluster_interface"
kolla_swift_storage_interface: "swift_storage_interface"
kolla_swift_replication_interface: "swift_replication_interface"
kolla_provision_interface: "provision_interface"
kolla_inspector_dnsmasq_interface: "ironic_dnsmasq_interface"
kolla_dns_interface: "dns_interface"
Expand Down Expand Up @@ -580,7 +574,6 @@ kolla_enable_prometheus: "no"
kolla_enable_qdrouterd: "no"
kolla_enable_redis: "no"
kolla_enable_skyline: "no"
kolla_enable_swift: "no"
kolla_enable_tacker: "no"
kolla_enable_trove: "no"
kolla_enable_valkey: "no"
Expand Down
14 changes: 5 additions & 9 deletions ansible/inventory/group_vars/all/network
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
---
# Kayobe network configuration.

###############################################################################
# Network role to network name mappings.

# Name of the network used for admin access to the overcloud
admin_oc_net_name: "{{ provision_oc_net_name }}"

# Name of the network used by the overcloud hosts to manage the bare metal
# compute hosts via their out-of-band management controllers.
# Name of the network used by the seed to manage the bare metal overcloud
# hosts via their out-of-band management controllers.
oob_oc_net_name: 'oob_oc_net'

# Name of the network used by the seed to provision the bare metal overcloud
Expand Down Expand Up @@ -43,12 +45,6 @@ storage_net_name: 'storage_net'
# Name of the network used to carry storage management traffic.
storage_mgmt_net_name: 'storage_mgmt_net'

# Name of the network used to carry swift storage data traffic.
swift_storage_net_name: "{{ storage_net_name }}"

# Name of the network used to carry swift storage replication traffic.
swift_storage_replication_net_name: "{{ storage_mgmt_net_name }}"

# Name of the network used to perform hardware introspection on the bare metal
# workload hosts.
inspection_net_name: "{{ 'inspection_net' if kolla_enable_ironic | bool else None }}"
Expand All @@ -58,7 +54,7 @@ inspection_net_name: "{{ 'inspection_net' if kolla_enable_ironic | bool else Non
cleaning_net_name: "{{ provision_wl_net_name }}"

###############################################################################
# Network interface naming conventions.
# Network virtual patch link configuration.

# Suffix for Open vSwitch bridge names.
network_bridge_suffix_ovs: '-ovs'
Expand Down
15 changes: 1 addition & 14 deletions ansible/inventory/group_vars/all/storage
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,7 @@ storage_bootstrap_user: "{{ 'cloud-user' if os_distribution == 'centos' else os_
# List of networks to which storage nodes are attached.
storage_network_interfaces: >
{{ (storage_default_network_interfaces +
storage_extra_network_interfaces +
([swift_storage_net_name]
if storage_needs_swift_network else []) +
([swift_storage_replication_net_name]
if storage_needs_swift_replication_network else [])) | select | unique | list }}
storage_extra_network_interfaces) | select | unique | list }}

# List of default networks to which storage nodes are attached.
storage_default_network_interfaces: >
Expand All @@ -29,15 +25,6 @@ storage_default_network_interfaces: >
# List of extra networks to which storage nodes are attached.
storage_extra_network_interfaces: []

# Whether this host requires access to Swift networks.
storage_needs_swift_network: >-
{{ kolla_enable_swift | bool and
inventory_hostname in query('inventory_hostnames', swift_hosts) }}

storage_needs_swift_replication_network: >-
{{ kolla_enable_swift | bool and
inventory_hostname in query('inventory_hostnames', swift_hosts) }}

###############################################################################
# Storage node BIOS configuration.

Expand Down
67 changes: 0 additions & 67 deletions ansible/inventory/group_vars/all/swift

This file was deleted.

8 changes: 0 additions & 8 deletions ansible/kolla-ansible.yml
Original file line number Diff line number Diff line change
Expand Up @@ -204,14 +204,6 @@
description: "Cluster network"
network: "{{ storage_mgmt_net_name }}"
required: False
- var_name: "kolla_swift_storage_interface"
description: "Swift storage network"
network: "{{ swift_storage_net_name }}"
required: False
- var_name: "kolla_swift_replication_interface"
description: "Swift storage replication network"
network: "{{ swift_storage_replication_net_name }}"
required: False
- var_name: "kolla_provision_interface"
description: "Bare metal provisioning network"
network: "{{ provision_wl_net_name }}"
Expand Down
15 changes: 13 additions & 2 deletions ansible/overcloud-etc-hosts-fixup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,19 @@
# which it is listening. As a workaround, we remove the stale entries from
# /etc/hosts. See https://github.com/stackhpc/kayobe/issues/14.

- name: Ensure overcloud hosts' /etc/hosts does not contain incorrect IPs
- name: Collect hosts to map through to kolla-ansible
hosts: overcloud
gather_facts: false
tags:
- etc-hosts-fixup
tasks:
- name: Group by kolla_overcloud_inventory_pass_through_enabled
ansible.builtin.group_by:
key: "kolla_mapped_overcloud_host_{{ kolla_overcloud_inventory_pass_through_enabled }}"
changed_when: false

- name: Ensure overcloud hosts' /etc/hosts does not contain incorrect IPs
hosts: kolla_mapped_overcloud_host_True
max_fail_percentage: >-
{{ overcloud_etc_hosts_fixup_max_fail_percentage |
default(kayobe_max_fail_percentage) |
Expand All @@ -28,7 +39,7 @@
become: True

- name: Ensure rabbitmq containers' /etc/hosts does not contain incorrect IPs
hosts: overcloud
hosts: kolla_mapped_overcloud_host_True
max_fail_percentage: >-
{{ overcloud_etc_hosts_fixup_max_fail_percentage |
default(kayobe_max_fail_percentage) |
Expand Down
1 change: 0 additions & 1 deletion ansible/overcloud-host-configure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,5 @@
- import_playbook: "kolla-target-venv.yml"
- import_playbook: "container-engine.yml"
- import_playbook: "apparmor-libvirt.yml"
- import_playbook: "swift-block-devices.yml"
- import_playbook: "compute-libvirt-host.yml"
- import_playbook: "vgpu.yml"
34 changes: 34 additions & 0 deletions ansible/physical-network.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
physical_network_display: False
# List of supported values for the 'switch_type' variable.
supported_switch_types:
- alliedware-plus
- arista
- cisco-nxos
- dellos6
- dellos9
- dellos10
Expand Down Expand Up @@ -109,6 +111,22 @@
debug:
var: switch_interface_config

- name: Ensure AlliedWare Plus physical switches are configured
hosts: switches_of_type_alliedware-plus:&switches_in_display_mode_False
gather_facts: no
max_fail_percentage: >-
{{ physical_network_max_fail_percentage |
default(kayobe_max_fail_percentage) |
default(100) }}
roles:
- role: ssh-known-host
when: not switch_skip_keyscan | bool

- role: alliedware-plus-switch
alliedware_plus_switch_config: "{{ switch_config }}"
alliedware_plus_switch_interface_config: "{{ switch_interface_config }}"
alliedware_plus_switch_save: "{{ switch_config_save }}"

- name: Ensure Arista physical switches are configured
hosts: switches_of_type_arista:&switches_in_display_mode_False
gather_facts: no
Expand All @@ -126,6 +144,22 @@
arista_switch_config: "{{ switch_config }}"
arista_switch_interface_config: "{{ switch_interface_config }}"

- name: Ensure Cisco NX-OS physical switches are configured
hosts: switches_of_type_cisco-nxos:&switches_in_display_mode_False
gather_facts: no
max_fail_percentage: >-
{{ physical_network_max_fail_percentage |
default(kayobe_max_fail_percentage) |
default(100) }}
roles:
- role: ssh-known-host
when: not switch_skip_keyscan | bool

- role: cisco-nxos-switch
cisco_nxos_switch_config: "{{ switch_config }}"
cisco_nxos_switch_interface_config: "{{ switch_interface_config }}"
cisco_nxos_switch_save: "{{ switch_config_save }}"

- name: Ensure DellOS physical switches are configured
hosts: switches_of_type_dellos6:switches_of_type_dellos9:switches_of_type_dellos10:&switches_in_display_mode_False
gather_facts: no
Expand Down
79 changes: 79 additions & 0 deletions ansible/roles/alliedware-plus-switch/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
AlliedWare Plus Switch
======================

This role configures AlliedWare Plus switches using the
`alliedtelesis.awplus.awplus_config` Ansible module. It provides a fairly
minimal abstraction of the configuration interface provided by the
`awplus_config` module, allowing for application of arbitrary switch
configuration options.

Requirements
------------

The switches should be configured to allow SSH access.

The `alliedtelesis.awplus` Ansible collection must be installed.

Role Variables
--------------

`alliedware_plus_switch_config` is a list of configuration lines to apply to
the switch, and defaults to an empty list.

`alliedware_plus_switch_interface_config` contains interface configuration. It
is a dict mapping switch interface names to configuration dicts, and defaults
to an empty dict. Each dict may contain the following items:

- `description` - an optional description to apply to the interface.
- `config` - a list of per-interface configuration commands.

`alliedware_plus_switch_save` controls whether the running configuration is
saved to the startup configuration when they differ, including any previously
unsaved changes. Defaults to `false`.

Dependencies
------------

None

Example Playbook
----------------

The following playbook configures hosts in the `alliedware-plus-switches`
group. It assumes host variables for each switch holding the host and SSH
credentials.

---
- name: Ensure AlliedWare Plus switches are configured
hosts: alliedware-plus-switches
gather_facts: no
vars:
ansible_connection: ansible.netcommon.network_cli
ansible_network_os: alliedtelesis.awplus.awplus
roles:
- role: alliedware-plus-switch
alliedware_plus_switch_config:
- "vlan database"
- " vlan 1000,1001 state enable"
alliedware_plus_switch_interface_config:
port1.0.1:
description: server-1
config:
- "no shutdown"
- "switchport"
- "switchport mode trunk"
- "switchport trunk native vlan 1000"
- "switchport trunk allowed vlan add 1001"
port1.0.2:
description: server-2
config:
- "no shutdown"
- "switchport"
- "switchport mode trunk"
- "switchport trunk native vlan 1000"
- "switchport trunk allowed vlan add 1001"

Author Information
------------------

- Pierre Riteau (<pierre@stackhpc.com>)
11 changes: 11 additions & 0 deletions ansible/roles/alliedware-plus-switch/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# List of configuration lines to apply to the switch.
alliedware_plus_switch_config: []

# Interface configuration. Dict mapping switch interface names to configuration
# dicts. Each dict contains an optional 'description' item and a 'config' item
# which should contain a list of per-interface configuration.
alliedware_plus_switch_interface_config: {}

# Whether to save the configuration.
alliedware_plus_switch_save: false
6 changes: 6 additions & 0 deletions ansible/roles/alliedware-plus-switch/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
- name: Ensure AlliedWare Plus switches are configured
alliedtelesis.awplus.awplus_config:
lines: "{{ lookup('template', 'alliedware-plus-config.j2') }}"
save_when: >-
{{ alliedware_plus_switch_save | bool | ternary('modified', 'never') }}
Loading
Loading