Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3f15fdd
Adds os_family variable
jovial Apr 30, 2026
4c25c48
Stop gathering facts in trust-store playbook
jovial Apr 29, 2026
e288140
Avoid deprecated ansible_managed variable
jovial Apr 27, 2026
dfdf277
Stop caching kolla_ansible_host_vars facts
jovial Apr 29, 2026
758516f
[release] Use OpenStack 2026.1 release
jovial May 13, 2026
92ccce0
tests: trim low-signal nmstate unit test permutations
grzegorzkoper May 8, 2026
a618bce
Merge "Adds os_family variable"
May 16, 2026
fb62710
Merge "Avoid deprecated ansible_managed variable"
May 18, 2026
b461a8b
Merge "Stop gathering facts in trust-store playbook"
May 18, 2026
43294ef
CI: Exclude docker-ce 29.5.1 on CentOS/Rocky Linux
priteau May 19, 2026
297c74f
Bump Ansible collections and roles
priteau May 19, 2026
31ba46b
Adds support for custom watcher configuration files
jovial Apr 23, 2026
4c9ae4b
Merge "[release] Use OpenStack 2026.1 release"
May 20, 2026
0069fb5
Merge "Bump Ansible collections and roles"
May 20, 2026
eb5ab49
CI: Replace use of deprecated cp -n option
priteau May 20, 2026
a5c7792
Merge "Adds support for custom watcher configuration files"
May 20, 2026
3145e7b
Fix broken conditional release note formatting
jovial May 20, 2026
a2b7d9e
[release] Sync with Kolla Ansible for 2026.1
priteau May 20, 2026
70552fa
Merge "Fix broken conditional release note formatting"
May 21, 2026
908d871
Revert "CI: Exclude docker-ce 29.5.1 on CentOS/Rocky Linux"
priteau May 21, 2026
95ef96e
Synchronise IPA documentation with defaults
priteau May 21, 2026
18cc4b9
Deploy more containers
markgoddard Jun 17, 2024
c85f3ec
[CI] Improve network connectivity check
jovial Apr 24, 2026
bf81078
Merge "Deploy more containers"
May 21, 2026
f0e5dbd
Merge "Synchronise IPA documentation with defaults"
May 21, 2026
47a00fc
Merge "Stop caching kolla_ansible_host_vars facts"
May 21, 2026
5be7774
Merge "CI: Replace use of deprecated cp -n option"
May 21, 2026
5def63f
Merge "tests: trim low-signal nmstate unit test permutations"
May 21, 2026
ec4ea84
Merge "[CI] Improve network connectivity check"
May 21, 2026
9ea443d
Merge "Revert "CI: Exclude docker-ce 29.5.1 on CentOS/Rocky Linux""
May 21, 2026
19fe0d4
Fix ansible-collection-kolla not getting installed
seunghun1ee May 22, 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
18 changes: 18 additions & 0 deletions ansible/inventory/group_vars/all/ansible-control
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,24 @@ ansible_control_tuned_active_builtin_profile: "throughput-performance"
# singleplatform-eng.users role.
ansible_control_users: "{{ users_default }}"

###############################################################################
# Ansible control host additional containers configuration

# Dict of containers to deploy.
# Example:
# ansible_control_containers:
# squid:
# image: "docker.io/stackhpc/squid"
# pre: "{{ kayobe_env_config_path }}/containers/squid/pre.yml"
# post: "{{ kayobe_env_config_path }}/containers/squid/post.yml"
# tag: "3.5.20-1"
#
ansible_control_containers: {}

# Whether to attempt a basic authentication login to a registry when
# deploying containers.
ansible_control_manage_containers_registry_attempt_login: "{{ kolla_docker_registry_username is truthy and kolla_docker_registry_password is truthy }}"

###############################################################################
# Ansible control host firewalld configuration.

Expand Down
18 changes: 18 additions & 0 deletions ansible/inventory/group_vars/all/controllers
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,24 @@ controller_tuned_active_builtin_profile: "throughput-performance"
# singleplatform-eng.users role.
controller_users: "{{ users_default }}"

###############################################################################
# Controller node additional containers configuration

# Dict of containers to deploy.
# Example:
# controller_containers:
# squid:
# image: "docker.io/stackhpc/squid"
# pre: "{{ kayobe_env_config_path }}/containers/squid/pre.yml"
# post: "{{ kayobe_env_config_path }}/containers/squid/post.yml"
# tag: "3.5.20-1"
#
controller_containers: {}

# Whether to attempt a basic authentication login to a registry when
# deploying controller containers
controller_manage_containers_registry_attempt_login: "{{ kolla_docker_registry_username is truthy and kolla_docker_registry_password is truthy }}"

###############################################################################
# Controller node firewalld configuration.

Expand Down
15 changes: 15 additions & 0 deletions ansible/inventory/group_vars/all/globals
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,17 @@ kayobe_ansible_user: "stack"
# is "rocky".
os_distribution: "rocky"

# Mapping from OS distribution name to OS family. Supported keys are
# "centos", "rocky", and "ubuntu".
os_family_map:
centos: RedHat
rocky: RedHat
ubuntu: Debian

# OS family. Valid options are "RedHat" and "Debian". Default depends on
# os_distribution.
os_family: "{{ os_family_map[os_distribution | lower] }}"

# OS release. Valid options are "10-stream" when os_distribution is "centos",
# "10" when os_distribution is "rocky", or "noble" when os_distribution is
# "ubuntu".
Expand All @@ -66,6 +77,10 @@ os_release: >-
###############################################################################
# Ansible configuration.

# String used as the header comment in files managed by Kayobe. Default is
# "Ansible managed".
kayobe_managed: "Ansible managed"

# Filter to apply to the setup module when gathering facts. Default is to not
# specify a filter.
kayobe_ansible_setup_filter: "{{ omit }}"
Expand Down
18 changes: 18 additions & 0 deletions ansible/inventory/group_vars/all/infra-vms
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,24 @@ infra_vm_tuned_active_builtin_profile: "virtual-guest"
# singleplatform-eng.users role.
infra_vm_users: "{{ users_default }}"

###############################################################################
# Infrastructure VM node additional containers configuration

# Dict of containers to deploy.
# Example:
# infra_vm_containers:
# squid:
# image: "docker.io/stackhpc/squid"
# pre: "{{ kayobe_env_config_path }}/containers/squid/pre.yml"
# post: "{{ kayobe_env_config_path }}/containers/squid/post.yml"
# tag: "3.5.20-1"
#
infra_vm_containers: {}

# Whether to attempt a basic authentication login to a registry when
# deploying Infrastructure VM node containers
infra_vm_manage_containers_registry_attempt_login: "{{ kolla_docker_registry_username is truthy and kolla_docker_registry_password is truthy }}"

###############################################################################
# Infrastructure VM node firewalld configuration.

Expand Down
18 changes: 18 additions & 0 deletions ansible/inventory/group_vars/all/monitoring
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,24 @@ monitoring_tuned_active_builtin_profile: "throughput-performance"
# singleplatform-eng.users role.
monitoring_users: "{{ controller_users }}"

###############################################################################
# Monitoring node additional containers configuration

# Dict of containers to deploy.
# Example:
# monitoring_containers:
# squid:
# image: "docker.io/stackhpc/squid"
# pre: "{{ kayobe_env_config_path }}/containers/squid/pre.yml"
# post: "{{ kayobe_env_config_path }}/containers/squid/post.yml"
# tag: "3.5.20-1"
#
monitoring_containers: {}

# Whether to attempt a basic authentication login to a registry when
# deploying monitoring node containers
monitoring_manage_containers_registry_attempt_login: "{{ kolla_docker_registry_username is truthy and kolla_docker_registry_password is truthy }}"

###############################################################################
# Monitoring node firewalld configuration.

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 "master".
openstack_release: "master"
# Name of the current OpenStack release. Default is "2026.1".
openstack_release: "2026.1"

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

Expand Down
12 changes: 9 additions & 3 deletions ansible/inventory/group_vars/all/seed
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ seed_users: "{{ users_default }}"
###############################################################################
# Seed node additional containers configuration

# Dict of container images to start
# Dict of containers to deploy.
# Example:
# seed_containers:
# squid:
Expand All @@ -144,10 +144,16 @@ seed_users: "{{ users_default }}"
#
seed_containers: {}

# Whether to attempt a basic authentication login to a registry when
# deploying seed containers
# (Deprecated) Whether to attempt a basic authentication login to a registry when
# deploying seed containers.
# TODO(mattcrees): remove seed_deploy_containers_registry_attempt_login in the
# Hibiscus cycle.
seed_deploy_containers_registry_attempt_login: "{{ kolla_docker_registry_username is truthy and kolla_docker_registry_password is truthy }}"

# Whether to attempt a basic authentication login to a registry when
# deploying seed containers.
seed_manage_containers_registry_attempt_login: "{{ seed_deploy_containers_registry_attempt_login }}"

###############################################################################
# Seed node firewalld configuration.

Expand Down
18 changes: 18 additions & 0 deletions ansible/inventory/group_vars/all/storage
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,24 @@ storage_tuned_active_builtin_profile: "throughput-performance"
# singleplatform-eng.users role.
storage_users: "{{ users_default }}"

###############################################################################
# Storage node additional containers configuration

# Dict of containers to deploy.
# Example:
# storage_containers:
# squid:
# image: "docker.io/stackhpc/squid"
# pre: "{{ kayobe_env_config_path }}/containers/squid/pre.yml"
# post: "{{ kayobe_env_config_path }}/containers/squid/post.yml"
# tag: "3.5.20-1"
#
storage_containers: {}

# Whether to attempt a basic authentication login to a registry when
# deploying storage containers
storage_manage_containers_registry_attempt_login: "{{ kolla_docker_registry_username is truthy and kolla_docker_registry_password is truthy }}"

###############################################################################
# Storage node firewalld configuration.

Expand Down
10 changes: 10 additions & 0 deletions ansible/inventory/group_vars/ansible-control/manage-containers
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
###############################################################################
# Ansible control host custom containers configuration.

# Dict of containers to deploy.
manage_custom_containers: "{{ ansible_control_containers }}"

# Whether to attempt a basic authentication login to a registry when
# deploying Ansible control host containers
manage_containers_registry_attempt_login: "{{ ansible_control_manage_containers_registry_attempt_login }}"
10 changes: 10 additions & 0 deletions ansible/inventory/group_vars/controllers/manage-containers
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
###############################################################################
# Controller node custom containers configuration.

# Dict of containers to deploy.
manage_custom_containers: "{{ controller_containers }}"

# Whether to attempt a basic authentication login to a registry when
# deploying controller node containers
manage_containers_registry_attempt_login: "{{ controller_manage_containers_registry_attempt_login }}"
10 changes: 10 additions & 0 deletions ansible/inventory/group_vars/infra-vms/manage-containers
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
###############################################################################
# Infrastructure VM node custom containers configuration.

# Dict of containers to deploy.
manage_custom_containers: "{{ infra_vm_containers }}"

# Whether to attempt a basic authentication login to a registry when
# deploying infrastructure VM containers
manage_containers_registry_attempt_login: "{{ infra_vm_manage_containers_registry_attempt_login }}"
10 changes: 10 additions & 0 deletions ansible/inventory/group_vars/monitoring/manage-containers
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
###############################################################################
# Monitoring node custom containers configuration.

# Dict of containers to deploy.
manage_custom_containers: "{{ monitoring_containers }}"

# Whether to attempt a basic authentication login to a registry when
# deploying monitoring node containers
manage_containers_registry_attempt_login: "{{ monitoring_manage_containers_registry_attempt_login }}"
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
---
###############################################################################
# Seed node docker regsitry configuration.
# Seed node custom containers configuration.

# Dict of containers to deploy.
manage_custom_containers: "{{ seed_containers }}"

# Whether to attempt a basic authentication login to a registry when
# deploying seed containers
deploy_containers_registry_attempt_login: "{{ seed_deploy_containers_registry_attempt_login }}"
manage_containers_registry_attempt_login: "{{ seed_manage_containers_registry_attempt_login }}"
10 changes: 10 additions & 0 deletions ansible/inventory/group_vars/storage/manage-containers
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
###############################################################################
# Storage node custom containers configuration.

# Dict of containers to deploy.
manage_custom_containers: "{{ storage_containers }}"

# Whether to attempt a basic authentication login to a registry when
# deploying storage node containers
manage_containers_registry_attempt_login: "{{ storage_manage_containers_registry_attempt_login }}"
4 changes: 1 addition & 3 deletions ansible/kayobe-target-venv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@
filter: "{{ kayobe_ansible_setup_filter }}"
gather_subset: "{{ kayobe_ansible_setup_gather_subset }}"
when:
#TODO(mattcrees): Enable this check once this bug is fixed:
# https://bugs.launchpad.net/kayobe/+bug/2144548
# - ansible_facts is undefined or ansible_facts is falsy
- ansible_facts is undefined or ansible_facts is falsy
- kayobe_virtualenv is defined
register: gather_facts_result
# Before any facts are gathered, ansible doesn't know about
Expand Down
10 changes: 10 additions & 0 deletions ansible/kolla-ansible.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,11 @@
description: "Bifrost provisioning network"
network: "{{ provision_oc_net_name }}"
required: "{{ kolla_enable_bifrost | bool }}"
register: kolla_host_vars_result

- name: Set Kolla Ansible host variable facts
set_fact:
args: "{{ kolla_host_vars_result.kolla_ansible_host_vars }}"

- import_role:
name: kolla-ansible-host-vars
Expand Down Expand Up @@ -233,6 +238,11 @@
network: "{{ public_net_name }}"
required: "{{ inventory_hostname in groups[controller_loadbalancer_group] }}"
external_networks: "{{ ironic_networks + provider_networks }}"
register: kolla_host_vars_result

- name: Set Kolla Ansible host variable facts
set_fact:
args: "{{ kolla_host_vars_result.kolla_ansible_host_vars }}"

- import_role:
name: kolla-ansible-host-vars
Expand Down
17 changes: 17 additions & 0 deletions ansible/manage-containers.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
- name: "Ensure defined container images are {{ kayobe_action | default('deploy') }}ed"
hosts: "{{ manage_containers_target_hosts | default('seed') }}"
tags:
# Kept for backward compatibility.
# TODO(mattcrees): Will be removed in the Hibiscus release.
- seed-deploy-containers
- seed-manage-containers
- manage-containers
tasks:
- import_role:
name: manage-containers
vars:
manage_containers_registry: "{{ kolla_docker_registry }}"
manage_containers_registry_username: "{{ kolla_docker_registry_username }}"
manage_containers_registry_password: "{{ kolla_docker_registry_password }}"
manage_containers_action: "{{ kayobe_action | default('deploy') }}"
1 change: 1 addition & 0 deletions ansible/overcloud-extras.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
# action: One of deploy, destroy, pull, reconfigure, upgrade

- import_playbook: docker-registry.yml
- import_playbook: manage-containers.yml
- import_playbook: opensm.yml
2 changes: 1 addition & 1 deletion ansible/roles/apt/templates/auth.conf.j2
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# {{ ansible_managed }}
# {{ kayobe_managed }}

machine {{ auth.machine }}
login {{ auth.login }}
Expand Down
2 changes: 1 addition & 1 deletion ansible/roles/apt/templates/kayobe.sources.j2
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# {{ ansible_managed }}
# {{ kayobe_managed }}

{% for repo in apt_repositories %}
{% if reponame == repo.name | default('kayobe') %}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# {{ ansible_managed }}
# {{ kayobe_managed }}

# This file provides dnsmasq configuration for Dell Switches using Bare Metal
# Provisioning (BMP).
Expand Down
4 changes: 4 additions & 0 deletions ansible/roles/docker-registry/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,3 +95,7 @@ docker_registry_volumes:

docker_registry_restart_policy: "unless-stopped"
#docker_registry_restart_retries:

# Owner and group for docker registry configuration files.
docker_registry_ansible_user_uid: "{{ ansible_user }}"
docker_registry_ansible_user_gid: "{{ ansible_user }}"
15 changes: 14 additions & 1 deletion ansible/roles/kolla-ansible/tasks/install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,12 +147,25 @@
virtualenv: "{{ kolla_ansible_venv }}"
virtualenv_python: "{{ kolla_ansible_venv_python }}"

- name: Ensure core Ansible collections are installed
command:
cmd: >-
ansible-galaxy collection install --force
-r {{ kolla_ansible_core_requirements_yml }}
-p {{ kolla_ansible_venv }}/share/kolla-ansible/ansible/collections/
environment:
# NOTE(wszumski): Ignore collections shipped with ansible, so that we can install
# newer versions.
ANSIBLE_COLLECTIONS_SCAN_SYS_PATH: "False"
# NOTE(wszumski): Don't use path configured for kayobe
ANSIBLE_COLLECTIONS_PATH: ''
when: not kolla_ansible_venv_ansible

- name: Ensure Ansible collections are installed
command:
cmd: >-
ansible-galaxy collection install --force
-r {{ kolla_ansible_requirements_yml }}
{% if not kolla_ansible_venv_ansible %}-r {{ kolla_ansible_core_requirements_yml }}{% endif %}
-p {{ kolla_ansible_venv }}/share/kolla-ansible/ansible/collections/
environment:
# NOTE(wszumski): Ignore collections shipped with ansible, so that we can install
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ control

[cyborg:children]
control
compute

[gnocchi:children]
control
Expand Down
Loading