Current Series Release Notes¶
21.0.0.0rc1-302¶
New Features¶
Adds support for LDAP authentication in Grafana. Users can now enable LDAP by setting
grafana_ldap_enabledtotrueand providing anldap.tomlconfiguration file in the{{ node_custom_config }}/grafana/directory.
Added support for RabbitMQ management interface SSL configuration.
Add support for libvirt vTPM (swtpm) configuration. LP#2106219
Increased the default value of
innodb_log_file_sizefrom 96MB to 2GB. This change improves overall performance of MariaDB. However, the recovery of MariaDB may take longer time as a tradeoff. Users can adjust the value by overriding K-A variablemariadb_innodb_log_file_size_mb. The allowed minimum is 4MB and maximum is 524288MB (512GB)
Ironic DHCP can now be configured to supply DNS servers via
ironic_dnsmasq_dhcp_ranges. This enables the inspection ramdisk (IPA) to reach FQDN API endpoints.
Harden the HAProxy TLS configuration according to Mozilla SSL recommendations for HAProxy 2.8.15 and OpenSSL 3.x (Rocky Linux and Ubuntu): https://ssl-config.mozilla.org/#server=haproxy&version=2.8.15&config=modern&openssl=3.0.13&guideline=5.7
Adds explicit support for passing through the
ipa-ntp-serversetting via the kernel commandline to the Ironic Python Agent.You can now also use
ironic_kernel_append_paramsto provide additional arguments to the kernel command line when booting the Ironic Python Agent.
The
nova-cellrole now supports operator-specified custom templates forqemu.confandlibvirtd.conf. Kolla-Ansible will now look for host-specific and global overrides before falling back to the default templates.
Added new Alertmanager datasource in Grafana.
Sets
scope_keytotenant_idin the[collect]section of the CloudKitty configuration file when Prometheus and Openstack Exporter are enabled, to ensure CloudKitty fetches valid metrics from the OpenStack Exporter.
Keystone OpenID metadata files are now templated, enabling variable substitution and dynamic configuration.
Upgrade Notes¶
Minimum supported Ansible version is now
12(ansible-core 2.19) and maximum supported is13(ansible-core 2.20).
barbicanuWSGI configuration has been reworked to use the same service role as other Ansible roles.
The default value of
innodb_log_file_sizehas increased from 96MB to 2GB. This improves MariaDB performance but recovery time from crash may take longer time as a tradeoff. Users are recommended to consider the recovery time with new default before upgrade. Users are recommended to check if disk space is enough with larger InnoDB log file.
Support for deploying
influxdbhas been dropped, because Kolla delivers a community end of life version v1, and there are no plans to upgrade influxdb to v2 - there are better open source alternatives out there. Existing users need to remove influxdb containers and their configuration manually.
Support for deploying
telegrafhas been dropped after earlier deprecation. Existing users need to remove telegraf containers and their configuration manually.
Ironiclegacy upgrade mechanism has been dropped.
lightbits_JWTvariable has been renamed tolightbits_jwt
The global variable
distro_python_versionhas been removed
designate-apiis now running under uWSGI and now supports backend TLS.
glance-apiis now running under uWSGI and supports backend TLS without the additional haproxy container. Theglance-tls-proxycontainer will be removed during the upgrade process.
magnum-apiis now running under uWSGI and now supports backend TLS.
Bug Fixes¶
Fixes an issue where OpenSearch log retention check would fail due to plugins not being fully loaded, resulting in a timeout error. This was caused by the task that checks for the existence of a log. Added a check before plugin tasks to ensure plugins are fully loaded.
Fixed an issue where
neutron-serverand other neutron agents would fail to start whenkolla_copy_ca_into_containerswas enabled but backend TLS was disabled. The configuration now correctly distinguishes between the requirement for backend certificates (neutron-cert.pem) and the optional copying of CA certificates. LP#2121694
Make generation of prometheus.yml consistent when using custom override files.
Previous behaviour would lead to changes in prometheus.yml on every run when custom override files were used, as the find result was not sorted. This could lead to unnecessary restarts and unreadable diffs of the prometheus service. LP#2126635
Fixed an issue where redundant HAProxy backend configuration was generated for the memcached service. The memcached backend entries are no longer created since no OpenStack service uses HAProxy to reach memcached. LP#2130641
Fixed missing
schemaname: novarule in ProxySQL configuration for the default (unnamed) Nova cell. LP#2130985
Fixes issue where ProxySQL certificates were copied over even with
kolla_externally_managed_certset to True. LP#2073159
Adds logrotate configuration for OpenSearch Dashboards. Previously, logs located in
/var/log/kolla/opensearch-dashboards/were not included in the rotation schedule, which could lead to excessive disk space consumption. LP#2137716
Fixes a regression in the Valkey upgrade process where the
valkey_master_hostvariable was not defined if the Redis migration block was skipped. This led to a fatal error during the “Wait for Valkey replication sync” task due to the interaction betweenrun_onceanddelegate_to. The variable is now defined globally at the start of the upgrade tasks. LP#2138440
Fixed an issue where Valkey logs were not being correctly parsed by Fluentd. The timestamp format in the Fluentd configuration has been updated to match the format used by Valkey, ensuring logs are properly collected and indexed in the logging backend. LP#2138451
Fixed a critical issue in
kolla-mergepwdwhere the migration from Redis to Valkey resulted in authentication failures. The tool now automatically inherits the existingredis_master_passwordinto the newvalkey_master_passwordfield during upgrades. This prevents serious cluster damage in deployments using custom Keystone caching solutions and ensures Octavia remains stable throughout the upgrade process, avoiding globalHTTP 401 Unauthorizederrors caused by password mismatches. LP#2138461
Fixed an issue where Neutron sub-services (RPC server, maintenance and periodic workers) would crash when
enable_neutron_vpnaaswas set toyesdue to missingneutron_vpnaas.conffile injection. neutron: inject neutron_vpnaas.conf into auxiliary services LP#2138498
Fixed an issue during upgrades from 2025.1 to 2025.2 where the Valkey role unconditionally referenced the
redisinventory group. Since Redis is no longer present in the default inventories, this caused the upgrade to fail with anAnsibleUndefinedVariableerror. The upgrade logic now correctly handles inventories without aredisgroup.
Fixed an issue where the
masakari-apicontainer was unnecessarily restarted during everyreconfigureoperation. The container handler now correctly includes thehealthcheckconfiguration, ensuring idempotency by matching the container’s runtime definition with the service defaults. LP#2143979
Fixes bug LP#2129930 which made Zuul CI to fail MariaDB backup test sometimes.
Fixes Bifrost bootstrap by disabling the new Bifrost OCI artifact registry which is not compatible with running Bifrost inside a container. LP#2138705
Fixes a placement problem for cyborg api and conductor services, that would be also be scheduled on compute nodes, rather than being exclusively on control plane. LP#2087552
Fixed an issue in Glance where enabling
kolla_copy_ca_into_containersforced a check for missing service certificates. Theglance-apicontainer now only requiresglance-cert.pemifglance_enable_tls_backendis explicitly set toyes.
Fixed TLS errors in Skyline’s nginx configuration when upstream endpoints use HTTPS. LP#2091935 LP#1951437
Prevents users installing plugins via the Grafana UI which will cause Grafana instances to become out-of-sync in multinode deployments. See LP#2122587.
Fix generating passwords longer than 72 characters. This fixes prometheus configuration. LP#2126975