Current Series Release Notes¶
20.0.0-178¶
Prelude¶
The Kolla Ansible 21.0.0 (Flamingo) release focuses on tightening
operations for the control plane, database layer, and observability stack
while following upstream service retirements. Highlights include:
Database services now use
ProxySQLby default withMariaDBadopting the upstreamhealthcheck.shscript, TLS enabled for allMariaDBconnections throughProxySQL, andValkeyreplacingRedis. The legacyHAProxy/clustercheckpath and containers have been removed.Logging and monitoring were overhauled:
Fluentdmoved into its own role and sends logs directly toOpenSearchnodes,Prometheusnode-exporters run from a dedicated role, andOpenSearch Dashboardsconnects to the data nodes without an intermediateHAProxyhop.Control-plane services gained multiple lifecycle improvements.
Neutronnow mirrors the upstream layout with new maintenance/RPC workers, wrapper containers manage the OVN metadata-agent HAProxy processes,nova-metadataruns in its own container,Horizonuses port8080when fronted byHAProxy, and the defaultuWSGIprovider now covers more services.Tooling and reliability improvements: the supported
ansiblewindow is 11–12, host bootstrap tasks moved intoansible-collection-kolla, CA bundle trust paths were aligned on Enterprise Linux hosts,mod_oidcgained templated error pages, and several HA fixes landed (Let’s Encrypt ACME cleanup, Horizon memcached resilience, RabbitMQ single-node upgrades, andProxySQLrouting improvements).With
ironic-inspectorretired upstream, Kolla Ansible now provides theironic-pxe-filterservice to cover bare-metal PXE filtering and removes other unused integrations such asVenusandVMwaredrivers.
New Features¶
Adds knobs for the Keystone mod_auth_openidc integration: tune the timeout manager via
OIDCStateTimeoutand provide a custom error page at{{ node_custom_config }}/keystone/federation/modoidc-error-page.html.
ProxySQL is now enabled automatically whenever MariaDB is enabled, and the container health check now uses the upstream healthcheck.sh script instead of
clustercheck.
Fluentd now sends logs directly to OpenSearch node IPs instead of using a Load Balancer. This change reduces Load Balancer overhead from high log volumes. The Load Balancer for OpenSearch remains in place, as it is still used by OpenSearch Dashboards. Fluentd continues to handle node availability, automatically distributing logs via round-robin to available nodes, ensuring log delivery even if individual OpenSearch nodes become unavailable.
Adds the optional
ironic-pxe-filterservice controlled byenable_ironic_pxe_filter. This brings parity with the standalone inspector. Upstream currently classifies the PXE filter as experimental.
Implement
neutron_agents_wrappersfor the neutron-ovn-metdata-agent. This allows the haproxy processes which forward metadata requests in ml2/ovn setups to spawn in separate containers.
The OVN container images (
ovn-nb-db,ovn-northdandovn-sb-db) have now default environment variables in place that ease running ofovn-nbctlandovn-sbctlcommands for operators.
Added a Valkey role with Sentinel so deployments use Valkey instead of Redis without changing coordination endpoints.
Improves performance of Prometheus deployment by separating the
prometheus_node_exporterandprometheus_cadvisorservices to a newprometheus-node-exportersrole.
TLS support for MariaDB connections has been enabled for all services when using ProxySQL.
bootstrap-serversnow always uses the system Python interpreter viaauto_silentautodetection.octavia-certificatesnow use the same Python interpreter as the one running thekolla-ansiblecommand itself.
HTTP chunked input is now enabled by default for all
uWSGIservices.
Adds support for running following services using uWSGI (without using Apache+mod_wsgi) which is enabled by default. To disable it please set <service>_wsgi_provider to
apache(default isuwsgi):Service
Variable
Aodh
aodh_wsgi_provider
Gnocchi
gnocchi_wsgi_provider
Heat
heat_wsgi_provider
Horizon
horizon_wsgi_provider
Ironic
ironic_wsgi_provider
Keystone
keystone_wsgi_provider
Masakari
masakari_wsgi_provider
Octavia
octavia_wsgi_provider
Upgrade Notes¶
Minimum supported Ansible version is now
11(ansible-core 2.18) and maximum supported is12(ansible-core 2.19).
Changes haproxy and rabbitmq default trusted CA store path on EL systems to
ca-bundle.crtfromca-bundle.trust.crt.
The
crontasks now live in their own Ansible role instead of being shipped insidecommon.
Deployments now ship a default template at
ansible/roles/keystone/templates/modoidc-error-page.html.j2to handle federated authentication errors. Operators can override the full template or just adjust the redirect delay viakeystone_federation_oidc_error_page_retry_login_delay_milliseconds. The default redirect delay is 5 seconds.
The HAProxy +
clustercheckbackend for MariaDB is no longer supported. Runningkolla-ansible upgradenow deploys ProxySQL and removes the oldclustercheckcontainers automatically.
Support for deploying
ironic-inspectorhas been dropped following the service’s retirement upstream. The remaining variables and artifacts were renamed for consistency:ironic_inspector_kernel_cmdline_extrasbecomesironic_kernel_cmdline_extras,ironic_inspector_pxe_filterbecomesironic_pxe_filter, andinspector.ipxebecomesipa.ipxe.
bifrostalso removed its legacy inspector integration, so thebifrost_enable_ironic_inspectoroption has been deleted.
neutron_legacy_iptablesand its handling has been dropped.
Support for deploying
Venuscontainer images has been dropped.
VMwaredrivers across Nova, Cinder, and Neutron are no longer deployed. Upstream projects removed the integration and the third-party libraries are unmaintained.
fluentdnow has its own Ansible role instead of being deployed from thecommonrole.
Horizondefault port (80/443) has been changed to8080when using HAProxy, while the old default has been retained for development environments usingenable_haproxyset tono.
Neutron agent wrappers are now enabled by default. The wrapper containers restart DHCP, L3, and related agents without having to respawn the main service containers, which reduces dataplane disruptions during upgrades and restarts. Operators who need the previous behaviour can set
neutron_agents_wrappersto"no"in/etc/kolla/globals.yml.
Neutronnow runs its API workers under uWSGI and moves auxiliary processes into dedicated containers, matching the upstream deployment model. TLS is terminated directly on uWSGI, so theneutron-tls-proxyservice was removed. New containers introduced with this change include:neutron-ovn-maintenance-workerneutron-rpc-serverneutron-periodic-workers
OpenSearch Dashboards now connects directly to OpenSearch nodes, rather than via a HAProxy endpoint. This should have no user facing impact.
Support for Linux Bridge mechanism driver has been removed. The driver was already removed from neutron.
Redis has been replaced with Valkey. Before running
kolla-ansible upgrade, setenable_redis: "no"andenable_valkey: "yes"inglobals.yml. The upgrade playbooks automatically migrate Redis data into Valkey using temporary ports and then switch back to the defaults.
Deployments using a file-based external certificate and Let’s Encrypt for the internal certificate (separate VIPs) default to managing the external certificate with Let’s Encrypt. To retain a file-based external certificate, set
letsencrypt_external_cert_server: "".
Security Issues¶
Deny access to /server-status via the single frontend. LP#2121626
Bug Fixes¶
Fixes bug LP#2118452 which stopped the RabbitMQ upgrade from version 3.13 to 4.1 even though it is supported.
Fixes handler invocation failure in the
ovs-dpdkrole. LP#2088197
Fixes haproxy configurations that kept rendering the
acme_client_backbackend and thepath_reg ^/.well-known/acme-challenge/.+ACL even when Let’s Encrypt support was disabled. LP#2097452
Fixes an issue where Horizon returned HTTP 500 errors when one of the Memcached nodes was unavailable by setting
ignore_exctoTruein the cache backend. LP#2106557
In the kolla-toolbox configuration with external rabbitmq an unnecessary “comma” is generated, which is why the container does not want to start. LP#2111267
Fixes an issue where vendordata.json, if defined, was not being copied to the nova-metadata directory. LP#2111328
Single-node RabbitMQ upgrades no longer fail on the unsupported
draincommand; the playbooks now callstop_appin that scenario. LP#2111916
Improves ProxySQL routing by setting
default_hostgroupfor every MariaDB user and by adding user-based rules alongside the schema-based rules. Statements that run before a schema is selected (for exampleSET AUTOCOMMITorROLLBACK) now land in a valid hostgroup instead of failing againstNULLbackends. LP#2112339
Fixed certificate script rendering in Let’s Encrypt role. LP#2115230
Fixes configuration of backend TLS when network nodes are separate from controllers. LP#2117084
Handlers to trigger a restart nova_libvirt and ovn_sb_db_relay containers have been removed and restarts of these services are now under the control of the service-check-containers role LP#2123946.
Fix an issue causing etcd backend TLS certificates to not be templated as the
kolla_copy_backend_tls_filesvariable was evaluating to false due to theetcd_enable_tls_backendvariable being undefined.
Fixes deployment of Cyborg in dev mode. LP#2030849
Remove reference to EXTRA_OPTS in documentation.
Fixes an issue where CORS can be blocked when attempting to upload an image via the Horizon user interface.
Fixes a bug where Cinder endpoint that Nova uses does not get overridden because of the use of invalid option. LP#2115064
Fixes the bug where Keystone become unable to start when the option
OIDCXForwardedHeadersis set with empty string inwsgi-keystone.conf. LP#2119344
Fixes RabbitMQ version check which would always be skipped. LP#2102662
Fixes a bug where K-A can fail service deployment because it tries to copy backend TLS certificates of some hosts to containers when both hosts and containers are not part of backend TLS and do not have certificates to copy. LP#2105505
Fixed Fluentd configuration template to avoid generating unnecessary empty lines when optional parameters are not set.
Prevents accidental
libvirtdowngrades innova_libvirtcontainer image during deploy and upgrade. Adds anova_libvirtversion check that resolves the target image digest once on the first compute host and runs only on hypervisors where the running container digest differs from the target.
Move tasks that modified host configuration from kolla-ansible role common to a-c-k as they need to be run only once at the bootstrap of the host and are not strongly related to the common services.
Adds a missing override for
octavia_notification_topicsso that operators can add their own notification topics for Octavia. By default it will send notifications to ceilometer when ceilometer is enabled.
Allow operators to run
kolla-ansible post-deploywithout escalating privileges on the deploy node whennode_configis writable for that user.
Restore the default Let’s Encrypt ACME server for external certificates so that enabling
enable_letsencryptworks out of the box again without explicitly settingletsencrypt_external_cert_server. The default ishttps://acme-v02.api.letsencrypt.org/directory.