Xena 系列发布说明

13.9.0-24

新特性

  • 添加了两个新标志来改变 RabbitMQ 中的行为:* rabbitmq_message_ttl_ms,它允许您为消息设置 TTL。* rabbitmq_queue_expiry_ms,它允许您为队列设置到期时间。有关两者的更多信息,请参见 https://rabbitmq.cn/ttl.html

升级说明

  • 现在 ironic_tftp 服务不再绑定到 0.0.0.0,默认情况下它使用 api_interface 的 IP 地址。要恢复到以前的行为,请在 globals.yml 中设置 ironic_tftp_interface_address: 0.0.0.0

  • Influxdb 变量 infuxdb_internal_endpoint 已修复为 influxdb_internal_endpoint。操作员可能需要检查相关变量。

安全问题

  • kolla-genpwd、kolla-mergepwd、kolla-readpwd 和 kolla-writepwd 命令现在会创建或使用正确的权限更新 passwords.yml。它们还会显示有关权限不正确的警告消息。

  • 默认情况下限制对通过 HAProxy 在公共端点暴露的 http Openstack 服务 /server-status 的访问。修复了 Ubuntu/Debian 安装的问题。RockyLinux/CentOS 不受影响。 LP#1996913

错误修复

  • kolla_externally_managed_cert 设置为 true 时,RabbitMQ 的预检查会错误地失败。LP#1999081

  • 修复在配置文件准备好之前创建 sasl 帐户。LP#2015589

  • 修复了当 Kolla 将 producer 任务设置为 None 时的问题,这禁用了所有 designate producer 任务。 LP#1879557

  • 现在自动完成使用 etcd3gw 的所有 Nova 和 Cinder 服务的服务用户令牌的配置,以确保块存储卷数据的安全性。

    有关更多详细信息,请参见 LP#[2004555]

  • 修复了 ironic_tftp,它绑定到系统上的所有 ip 地址。添加了 ironic_tftp_interfaceironic_tftp_address_familyironic_tftp_interface_address 参数,以设置 ironic_tftp 服务的地址。 LP#2024664

  • 添加了必要的配置,以使应用程序凭证访问规则能够正常工作。LP#1965111

  • 修复在使用 Ansible 检查模式时部署的问题。LP#2002661

  • 修复了 Keystone 中 Cyborg 服务的错误端点 URL 和服务类型信息。 LP#2020080

  • 在升级或部署 RabbitMQ 时,如果 om_enable_rabbitmq_high_availability 设置为 false,则会清除策略 ha-all

13.9.0

新特性

  • 由于 CVE-2022-29404 已修复,Apache HTTP Server 中 LimitRequestBody 指令的默认值已从 0(无限制)更改为 1073741824(1 GiB)。这限制了上传到 Horizon 的图像的大小(例如)。现在可以通过 horizon_httpd_limitrequestbody 进行配置。LP#2012588

  • etcd 现在通过 HAProxy 在 etcd_client_port 上内部暴露。

  • 添加了配置选项 rabbitmq_ha_replica_count,以允许更改 RabbitMQ 中镜像队列的复制因子。在未设置该标志的情况下,队列将使用“ha-mode”:”all”在所有节点上进行镜像。请注意,只有当标志 `om_enable_rabbitmq_high_availability` 设置为 True 时,此设置才会生效,因为否则队列不会被镜像。

  • 添加了配置选项 rabbitmq_ha_promote_on_shutdown,它允许更改 RabbitMQ 定义 ha-promote-on-shutdown。默认情况下 ha-promote-on-shutdown 为“when-synced”。我们建议将其更改为“always”。这意味着我们不在乎丢失一些消息,而是优先考虑 rabbitmq 的可用性。这在重启 rabbitmq(例如在升级时)时最相关。请注意,即使将此标志的值设置为默认值“when-synced”,也会在下一次部署时重启 RabbitMQ。有关更多详细信息,请参见:https://rabbitmq.cn/ha.html#cluster-shutdown

  • 通过 tooz 使用 etcd3gw 的服务现在通过 haproxy 使用 etcd。这消除了一个单点故障,我们硬编码了第一个 etcd 主机作为 backend_url。

升级说明

  • ironic.conf 现在设置 [pxe]\kernel_append_params 而不是 [pxe]\pxe_append_params,后者已被弃用。如果您正在覆盖旧配置选项,请覆盖新的配置选项。

  • neutron_tls_proxyglance_tls_proxy 的默认标签已更改为 haproxy_tag,因为这两个服务都使用 haproxy 容器镜像。升级前应更改对这些服务的任何自定义标签覆盖。

错误修复

  • 设置 etcd 内部主机名和 cacert,用于启用 TLS 内部的部署。这允许服务在使用 etcd 进行协调的 TLS 内部部署时与 etcd 协同工作。如果没有此修复,协调后端将无法连接到 etcd,并且服务本身将崩溃。

  • 修复 masakari.conf.j2 中缺失的 [taskflow] 部分 LP#1966536

  • 升级 RabbitMQ 时,仅当 rabbitmq_remove_ha_all_policy 设置为 true 时,才会清除策略 ha-all。现在,还必须将 om_enable_rabbitmq_high_availability 设置为 false

13.8.0

新特性

  • 添加了标志 om_enable_rabbitmq_high_availablity。将其设置为 true 将在 RabbitMQ 中启用持久队列和经典镜像队列。请注意,经典队列镜像和瞬态(即非持久)队列在 RabbitMQ 版本 4.0 中已被弃用(发布日期未知)。更改用于经典镜像的模式以排除某些队列类型。此模式为 ^(?!(amq\\.)|(.*_fanout_)|(reply_)).*

错误修复

  • 修复了 kolla_docker 模块,该模块没有考虑到 common_options 参数,因此始终存在模块的默认值。LP#2003079

  • 修复了 baremetal 角色,以避免在类似 Debian 的系统上安装 apparmor 包时出现“apparmor_parser apparmor_parser –version failed”错误。 LP#2004583

  • 显式将 [oslo_messaging_rabbit] heartbeat_in_pthread 的值设置为 true 用于 wsgi 应用程序,或 false 用于其他应用程序。

  • 修复了在使用 octavia_auto_configuregenconfig 命令时 Octavia 配置生成的问题。请注意,即使在生成配置时,Octavia 自动配置也需要访问 OpenStack API 才能工作。有关更多详细信息,请参见 LP#1987299

  • 修复了一个问题,在检查模式下运行时,某些预检查会失败或无法运行。LP#2002657

13.7.0

错误修复

  • 修复了 ironic-inspector 使用错误的选项来配置用于与 Ironic API 通信的接口的问题。LP#1995246

13.6.0

升级说明

  • image_upload_use_cinder_backend = True 不再设置为 Cinder 的默认 Ceph RBD 后端,现在使用常见的上游默认值(当前为 False)。请参见 LP#1991516

错误修复

  • image_upload_use_cinder_backend = True 不再设置为 Cinder 的默认 Ceph RBD 后端。防止了 Cinder 和 Glance 日志中的相关错误和警告。LP#1991516

  • 修复了 Keystone OIDC 无法验证 JWT,因为 Azure auth-oidc 端点缺少密钥。添加了一个包含传递缺失密钥的 JWKS uri 的新变量。LP#1990375

  • 移除了 dhcp-sequential-ip 配置选项,以避免在同时检查多个主机时提供相同 IP 地址的竞争条件。

13.5.0

错误修复

  • 修复了 AlertManager 外部 Web URL 无法配置的问题。引入了一个新变量 prometheus_alertmanager_external_url,用户可以使用它将 web.external-url 设置为公共地址。

  • 在 Fluentd-ElasticSearch 集中日志记录管道长时间中断的情况下,有可能生成足够数量的未发送日志数据,其传输缓冲区的时间超过默认 Fluentd 请求超时时间(默认 5 秒)。默认请求超时值增加到 60s,并使用新参数 fluentd_elasticsearch_request_timeout 可进行配置。LP#1983031

  • 修复了启用后端 TLS 加密时 Ironic API 健康检查的问题。LP#1990819

  • 修复 ironic-neutron-agent 使用错误的选项来配置与 Ironic API 通信的接口的问题。 LP#1990675

13.4.0

安全问题

  • Kolla Ansible 以前以非特权 root 用户身份运行 Ironic 的 tftpd。现在,它将显式地使用 nobody 用户。

错误修复

  • 修复 1982777。将 multipathd user_friendly_names 设置为“no”,以便 os-brick 能够在线调整卷大小。添加了覆盖 multipathd 配置的能力。 LP#1982777

  • 修复了 bug #1987982。此错误导致在 keystone 升级后数据库 log_bin_trust_function_creators 变量未被重置为“OFF”。

  • 修复了一个问题,即在某些系统上 ping 可能未安装,导致 HAProxy 预检查失败。

  • 如果 ironic_enabled_notification_topics 设置为 true,则将 ironic_notification_level 设置为 info,以确保 Ironic 实际发送通知。

    有关详细信息,请参阅 bug 1969826

13.3.0

新特性

  • 添加变量以配置是否应将监控服务暴露到外部

    • enable_grafana_external

    • enable_kibana_external

    • enable_prometheus_alertmanager_external

错误修复

  • 修复在多区域环境中,Ironic Inspector 在没有本地 Keystone 服务的区域中被配置而没有身份验证的问题。

13.2.0

新特性

  • 添加了支持,可以使用 prometheus_openstack_exporter_compute_api_version 变量配置 OpenStack 导出器用于 Prometheus 的 Openstack Compute API 微版本。默认值为 2.1,以在使用最新导出器版本时保持指标不变。

错误修复

  • 修复了在重启 kolla-toolbox 容器时 /run/openvswitch 挂载呈指数增长的问题。 LP#1979295

  • 修复了恢复多节点 MariaDB Galera 集群的问题。

  • prometheus_openstack_exporter_timeout 增加到 45 秒,以减少在具有大量 OpenStack 资源的部署中出现抓取失败的可能性。 LP#1976629

13.1.0

新特性

  • 作为 Prometheus 监控堆栈的一部分,部署并配置 prometheus-libvirt-exporter 镜像。

  • 为 Prometheus blackbox 导出器添加 tls_connect 模块。这可用于测试 TLS 服务器的连接性。

  • 添加了新的开关来控制 Masakari 监控器的部署。可以通过 enable_masakari_instancemonitorenable_masakari_hostmonitor 独立控制每种类型监控器的部署。默认情况下,当通过 enable_masakari 启用 Masakari 的部署时,两者都设置为 true

  • 为 ironic-neutron-agent 服务实现容器健康检查。请参阅 蓝图

  • 添加了对 libvirt SASL 身份验证的支持。默认情况下已启用。 LP#1964013

  • 添加了对 Rocky Linux 8 作为宿主机操作系统分发的支持。

已知问题

  • 现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。这些日志将不会被新的 logrotate 配置删除,需要手动删除。

升级说明

  • 如果未部署 Prometheus,RabbitMQ 的 Prometheus 插件不再默认启用。如果使用外部 Prometheus,则需要启用 rabbitmq_enable_prometheus_plugin 以获得旧行为。

  • 添加 libvirt SASL 身份验证需要在 passwords.yml 中添加新的密码,即 libvirt_sasl_password。可以使用现有的 kolla-genpwdkolla-mergepwd 工具生成此密码。

  • 添加 libvirt SASL 身份验证需要同时更新 nova_libvirtnova_compute 容器,使用包含必要的 Cyrus SASL 依赖项的新镜像,以及包含 SASL 凭据的配置。

  • 不再可以覆盖 Monasca Log Metrics 服务的删除,如果尚未在 Wallaby 版本中删除,则会自动删除。运营商有责任删除任何相关的 docker 卷。

  • 更新 node_custom_config 的默认值为 {{ node_config }}/config,在使用 –configdir 指定时。

安全问题

  • 显式地从具有 Neutron L3 Agent 的主机的 /etc/sysctl.conf 中删除 net.ipv4.ip_forward sysctl。如果没有其他来源提供此 sysctl,则在下次重新启动后它应恢复为默认值 0。这是对先前更改的后续操作,该更改停止设置 sysctl,但使现有系统保留原始值 1。

    希望更积极地更改值的部署者可以使用 Kolla Ansible 的 Yoga 版本将 neutron_l3_agent_host_ipv4_ip_forward 设置为 0。此选项将在未来版本中删除。任何仍然依赖于先前值的部署都可以将 neutron_l3_agent_host_ipv4_ip_forward 设置为 1。 LP#1945453

  • 修复了一个问题,即 libvirt 的默认配置未对通过内部 API 网络暴露的 TCP 上的 API 使用身份验证。这允许任何访问内部 API 网络的人员对 libvirt 进行读写访问。虽然内部 API 网络通常是可信的,但此网络上的其他服务通常至少需要身份验证。

    默认情况下现在已为 libvirt 启用 SASL 身份验证。Kolla Ansible 自 Train 版本以来就支持 libvirt TLS,建议使用它来提供更高层次的安全性。 LP#1964013

错误修复

  • 修复了 OIDC 身份验证流程中需要用户进行不必要操作的问题。现在自动重定向到目标 IdP 页面。 LP#930055

  • 删除了 barbican.confmax_allowed_secret_in_bytes 的自定义值。Barbican 中的默认最大大小翻倍,以避免某些证书出现问题。 LP #1957795

  • 修复了使用 Cinder Ceph 支持部署 Zun 的问题。为 Zun 添加了在配置了外部 Ceph 的 Cinder 时访问 Cinder 卷的支持。 LP#1848934

  • 通过自定义 RabbitMQ 的 prometheus.tcp.port 来解决端口冲突,从而修复了 outward_rabbitmq 的部署失败。 LP #1885106

  • 在 OpenStack 导出器中使用 Volume V3 API。Volume V2 API 已在 OpenStack Wallaby 中移除。 LP#1938194

  • 修复 grafana 自定义 home dashboard 文件的复制任务。grafana home dashboard 文件的复制任务需要以特权模式运行,否则会发生权限被拒绝的错误。 LP#[1947710]

  • 通过将 ovn_sb_connection 添加到 octavia.conf 来修复 Octavia 的“连接被拒绝”错误。 LP#195011

  • Ironic API 和 Ironic Inspector API 使用单独的策略文件。Ironic 角色已更新,能够分别处理这两个策略。

  • 即使一个操作失败,也要继续运行 Elasticsearch curator 中的所有操作。 LP#1954720

  • 修复 Placement 没有 logrotate 配置 LP#1954723

  • 修复 Nova 在自定义 migration_interface 时调整大小失败的问题。 LP#1956976

  • 修复了当 kolla_enable_tls_external 为 true 时无法连接到 zun 控制台的问题。当 kolla_enable_tls_external 为 true 时,访问任何 zun 容器的控制台都会失败。此修复根据 kolla_enable_tls_external 的值在 zun.conf 中设置 wsproxy base_url 的协议。 LP#1957117

  • 修复了“注册 OpenStack 中的身份提供程序”任务,该任务在 openstack 命令中缺少一个“=”号,导致任务无法使用 Keystone 注册 IDP。 LP#1959022

  • 修复 Glance 与 Cinder iSCSI 后端由于缺少 lock_path 设置而失败的问题。 LP#1959663

  • 修复 openvswitch 和 prometheus 服务缺少 logrotate 配置的问题。 LP#1961795

  • 修复升级时 Ironic 的 PXE 组件未更新的问题。 LP#1963752

  • 修复在 CloudKitty 中使用 Prometheus 收集器时 Prometheus HTTP API URL 的配置。 LP#1961615

  • 修复了一个 Prometheus 抓取的问题,当目标的 Ansible 库存主机名 (inventory_hostname) 无法解析为可访问的 IP 地址时,会出现该问题。恢复到以前的行为,即使用 IP 地址与目标通信。这种副作用是目标实例将再次使用 IP 地址而不是主机名进行标记。 LP#1955563

  • 修复在 Debuntu 二进制版本中 aodh 服务的 apache wsgi 配置。 LP#1953059

  • 修复 baremetal 角色以避免错误“无法删除“libvirtd””。现在该角色会创建符号链接 /etc/apparmor.d/disable/usr.sbin.libvirtd。 LP#1960302

  • 现有的 fluentd 日志轮转未能删除旧的 haproxy、swift、glance-tls-proxy 和 neutron-tls-proxy 日志。标准化使用 logrotate 进行日志轮转和删除。

  • 修复了使用基于 OIDC 的 Keystone 联合与具有不同响应类型的 IDP 时的问题。现在可以使用新的变量 keystone_federation_oidc_response_type 来设置此项。 LP#1959781

  • 添加了通过 kolla 配置 rabbitmq 集群接口的选项 LP#1900160 <https://bugs.launchpad.net/kolla-ansible/+bug/1900160>

  • 修复了在使用 Jinja2 3.1.0 时出现的问题。

  • 修复启用 libvirt SASL 时 Masakari 实例监控出现的问题。libvirt SASL 在 Kolla Ansible 的最近一次更改中默认已启用。 LP#1965754

  • 修复了配置选项,该选项设置了 Neutron 发送请求到 Placement 使用的端点类型。 LP#1960503

  • 修复了 Node Exporter 的配置问题,导致主机的所有文件系统指标都相同。 LP#1961438

  • 修复了一个问题,即任何 Nova 计算服务未能注册自身,将导致只有查询 nova API 的主机失败。现在,只有未能注册的主机会使 Kolla Ansible 运行失败。或者,要使单元中的所有主机在任何计算服务未能注册时都失败,请将 nova_compute_registration_fatal 设置为 trueLP#1940119

  • prometheus openstack 导出器现在位于 haproxy 之后,在 prometheus 数据库中提供唯一的时序。同时,确保在任何给定时间间隔内只有一个导出器查询 openstack API。以前的行为是每个 openstack 导出器都在同一时间被抓取。这导致每个导出器同时查询 openstack API,引入了不必要的负载以及由于实例标签对每个导出器都是唯一的,导致 prometheus 数据库中的重复时序。

  • 修复 RabbitMQ 被配置为镜像所有服务的经典瞬态队列的问题。根据 RabbitMQ 文档,这不是受支持的配置,并导致了许多错误报告。为了避免对 RabbitMQ 集群进行意外更改,有必要将 rabbitmq_remove_ha_all_policy 设置为 yes 以应用此修复。此变量将在 Yoga 版本中删除。 LP#1954925

  • 修复 Cinder 升级时 Cinder 服务仍然固定到先前版本 RPC 和对象版本的问题。 LP#1954932

13.0.1

安全问题

  • 添加了针对 Elasticsearch 中 Apache Log4j2 远程代码执行 (RCE) 漏洞 - CVE-2021-44228 的缓解措施。

错误修复

  • 仅在 ovn-controller 主机上运行 configure ovn in ovsdb 任务。该任务将在没有隧道接口的主机(如 controller 节点)上失败。 LP#1953367

  • 修复 Nova API 日志写入以 -wsgi.log 结尾的文件的问题,这影响了 Fluentd 管道中这些日志的处理。 LP#1950185

  • 在较慢的节点上,grafana 的初始启动可能会遇到超时失败,因为设置数据库的迁移需要比预期更长的时间。已通过增加默认超时来解决此问题。可以通过新的参数 grafana_start_first_node_delay 和 grafana_start_first_node_retries 来更改超时设置,用于 grafana 角色。 LP#1769962

其他说明

  • 容器 ironic-dnsmasq 现在创建 dnsmasq.log,就像容器 neutron-dhcp-agent 一样。对于两个日志文件,可以通过 openstack_logging_debugironic_logging_debugneutron_logging_debug 变量全局提高详细程度。

13.0.0

新特性

  • 添加了在 Prometheus 中抓取 Alertmanager 指标的支持。

  • 添加了将 Fluentd 指标集成到 Prometheus 的支持。默认情况下,当 Prometheus 启用时,现在已启用此功能。可以通过 enable_prometheus_fluentd_integration 标志覆盖此行为。默认情况下,该集成提供与 Fluentd 处理日志相关的指标。这些指标可用于监控 Fluentd 服务的状态。还可以通过自定义 Fluentd 配置从日志中提取其他指标。

  • 添加了配置参数 haproxy_nova_spicehtml5_proxy_tunnel_timeout 以配置 spicehtml5proxy haproxy 服务的 Tunnel TimeOut 指令。

  • 添加了对 CentOS Stream 8 作为宿主机操作系统和基础容器镜像的支持。这是 Wallaby 版本中唯一受支持的 CentOS 发行版。Victoria 版本将支持 CentOS Linux 8 和 CentOS Stream 8 宿主机和镜像,并提供迁移路径。

  • 添加了对与 Ceph RadosGW 集成的支持。

  • 支持 Debian Bullseye (11) 作为宿主机发行版。

  • 添加了一个新的变量 disable_firewall,默认值为 true。如果设置为 false,则主机防火墙在 kolla-ansible bootstrap-servers 期间将不会被禁用。

  • 默认情况下禁用 Kibana 中的使用情况收集(遥测)。用户仍然可以通过 GUI 启用它。

  • kolla_docker 模块中添加了设置 Docker 容器的 CgroupnsMode(通过 cgroupns_mode 模块参数)的功能。需要 Docker 20.10。请注意,在 20.10 之前,所有容器的行为都好像以模式 host 运行一样。

  • 添加了一个新的 haproxy 配置文件变量,haproxy_host_ipv4_tcp_retries2,允许用户修改此内核选项。此选项设置在建立连接状态下 TCP 数据包重传的最大次数,之后放弃。默认内核值为 15,对应于大约 13 到 30 分钟的持续时间,具体取决于重传超时。可以使用此变量来缓解 VIP 故障转移时连接卡住的问题,有关详细信息,请参阅 bug 1917068

  • 添加了一个 kolla-ansible gather-facts 命令,可用于收集 Ansible 主机事实。

  • haproxy-config 角色现在允许用户为 haproxy 的后端设置权重。可以通过在库存文件中设置主机变量 haproxy_{{ service }}_weight 来实现,该变量的值为 1 到 256 之间的任何整数,权重越高,负载越高。可以为每个 {{ service }} 设置。如果未指定主机变量,则最终 haproxy 配置中不会渲染后端的权重。

  • 添加了两个新的变量 service_images_pull_retriesservice_images_pull_delay,它们控制镜像拉取任务的行为。如果您的注册表不是 100% 可靠(通常由于负载),这些变量很有用。默认值设置为 3 次重试和 5 秒延迟,以确保更好的默认体验(这些实际上是启用任务重试时的 Ansible 默认值)。

  • 实现了 memcached 服务的容器健康检查。请参阅 蓝图

  • 实现了 rabbitmq 服务的容器健康检查。请参阅 蓝图

  • 为以下服务实现了容器健康检查:ceilometerkafkakeystone-fernetkuryrmistralnova-spicehtml5proxyqdrouterdzun。请参阅 蓝图

  • kolla-ansible 命令添加了两个新参数,--check--diff。它们直接传递给 ansible-playbook

  • 过渡到在使用 Keystone 管理员用户身份验证时使用系统范围的令牌。这是能够启用服务中更新的 oslo 策略,从而可以对系统级资源和 API 进行更细粒度的访问控制的必要步骤。从 Queens 开始,管理员角色被分配给具有系统范围以及管理员项目中的管理员用户。

  • 添加了使用和启用 neutron 数据包日志记录框架的能力。

  • 添加了覆盖自动检测 fluentd_versionfluentd_binary 的能力。现在可以将它们定义为额外的变量。这消除了配置生成对配置 docker 的依赖。

  • 添加了对在 kolla-toolbox 容器中覆盖 rabbitmq 配置(erl_inetrcrabbitmq-env.conf)的支持。

  • OVN 部署现在将配置 external_ids:ovn-chassis-mac-mappings 以使 DVR 在 VLAN 租户网络上工作。

  • 更改 Prometheus 中的目标名称为用户友好的基于 Ansible 库存的值。

  • 添加了一个新的变量 prometheus_cadvisor_cmdline_extras,用于将额外的运行时选项传递给 cAdvisor。默认情况下,系统 cgroups 的指标被禁用,并且容器标签不会暴露给 Prometheus。通常不应导出的昂贵指标也被强制禁用 - 请参阅 https://github.com/google/cadvisor/blob/2025.2/docs/runtime_options.md#metrics 以获取列表。这些默认设置通过 cAdvisor 和 Prometheus 节省了资源使用量。

  • 由于删除了 Monasca Grafana 分支,Monasca 数据源现在配置在 vanilla Grafana 中。

  • 添加了对通过 kolla_ansible_setup_filterkolla_ansible_setup_gather_subset 分别配置 setup 模块的 filtergather_subset 参数的支持。这些可用于减少事实的数量,这会对 Ansible 的性能产生重大影响。

  • 添加了功能,允许将为 Kolla Ansible 生成的密码存储在 Hashicorp Vault 中。使用新的 CLI 命令 kolla-readpwdkolla-writepwd 将 Kolla Ansible 密码读写到配置的 Hashicorp Vault kv secrets 引擎。

  • 添加了“manila_cephfs_filesystem_name”变量以支持多 fs Ceph Pacific+ 部署。

  • 现在可以向 kolla-ansible 传递多个库存。为此,应多次指定 --inventory

  • 添加了新的变量 ironic_enable_keystone_integration。如果我们需要连接到现有的 keystone(而不是同时安装它),它有助于将 keystone 连接信息添加到 ironic.conf 中。

升级说明

  • 支持的 Ansible 最低版本现在是 2.10,最高版本是 4(ansible-core 2.11)。

  • 更新了 Kolla Ansible 中所有对 Ansible facts 的引用,从使用单个 fact 变量到使用 ansible_facts 字典中的项目。这允许用户禁用 Ansible 配置中的 fact 变量注入,这可能会提高一些性能。检查本地配置文件中引用的 facts,并在禁用 fact 变量注入之前更新为使用 ansible_facts

  • rp_filter 不再由 Kolla Ansible 默认设置。用户可能希望从 kolla_sysctl_conf_path(默认情况下为 /etc/sysctl.conf)中删除相关的设置。

  • Kolla Ansible 现在默认将 docker_registry_insecure 设置为 false。如果您依赖于以前的行为,请将其重新打开,但请注意相关安全说明以及链接的错误报告中讨论的后果。 LP#1940547

  • 为了修复 LP#1941940,nova_libvirt_dimensions 现在默认情况下与 nova_libvirt_default_dimensions 组合。请在自定义该变量时考虑这一点。

  • 将最低要求的 Docker 版本提高到 18.09,将最低要求的 Docker Python SDK 版本提高到 3.4.1。这两个版本都在预检查中进行检查。

  • CentOS Linux 8 不再支持作为宿主机操作系统或基础容器镜像。CentOS 用户应迁移到 CentOS Stream 8。Victoria 版本将支持 CentOS Linux 8 和 CentOS Stream 8 宿主机和镜像,并提供迁移路径。

  • 将默认镜像类型更新为 source。如果希望部署 binary 类型镜像的用户应在 globals.yml 中将 kolla_install_type 设置为 binary。此更改是为了反映源镜像经过更彻底的测试,并且我们(作为 OpenStack 社区)可以更好地控制它们这一事实。

  • 添加了一个新的标志 docker_disable_ip_forward,它默认为 docker_disable_default_iptables_rules,用于禁用 docker 的 ip-forward 选项,该选项使 docker 将 sysctl net.ipv4.ip_forward 设置为 1。默认情况下,docker_disable_default_iptables_rulestrue,在这种情况下,docker 的 ip-forward 选项被 disabled

    对于现有主机,当通过 kolla-ansible bootstrap-servers 配置 Docker 时,此配置更改将被应用。Docker 以非持久的方式更改 sysctl,因此如果未在其他地方配置,它将在重启后恢复到默认值 0。这不应引起问题,因为 Kolla Ansible 会在必要时应用 sysctl。操作员可能希望主动执行重启,或通过其他方式应用默认值。

  • enable_host_ntp 变量已根据弃用流程删除。

  • 在升级之前,需要在 inventory 文件中添加一个新的组 loadbalancerloadbalancer 组是 haproxy 组的替代品。

  • 现在,无论是否启用了 iPXE,Ironic conductor 都会始终部署 HTTP 服务器,而之前仅在启用 iPXE 时才部署。

    在 Xena 版本中,Ironic 移除了 iSCSI 驱动程序。推荐的部署驱动程序是 direct,它使用 HTTP 传输磁盘镜像。这需要一个 HTTP 服务器,最简单的选择是使用之前在设置 enable_ironic_ipxetrue 时部署的 HTTP 服务器。

  • haproxy 角色中不再支持 haproxy_single_service_listen.cfg.j2 模板,并已将其删除。

  • mariadb_clustercheck_tagmariabackup_tag 的默认值从 openstack_tag 更改为 mariadb_tag。这允许一个变量为所有 MariaDB 镜像设置标签。

  • monasca_ntp_server 的默认值从 external_ntp_servers[0] 更改为 0.pool.ntp.org。这是由于移除了 external_ntp_servers 变量,作为 Chrony 部署移除的一部分。

  • 修改了 ceph_nova_user 的默认值,从 nova 变为 ceph_cinder_user 的值,与 ceph_nova_keyring 的默认值一致。如果已经覆盖 ceph_nova_keyring 以使用 Nova 和 Cinder 之间的单独 keyring 的用户,还应覆盖 ceph_nova_user 以匹配 Nova keyring。 LP#1934145

  • 更改 Prometheus 目标命名。这使得它们的名称更易于使用,但也创建了一组全新的时间序列数据。新的目标名称来自 Ansible inventory,并去除了导出器端口号。任何依赖于目标特定、硬编码命名模式的 Grafana 仪表板在升级后将停止显示指标。

  • cAdvisor 现在默认导出的 Prometheus 指标和标签数量减少。这意味着相应的时序数据将不再创建。如果现有设置依赖于这些数据,例如用于可视化或告警,可以在升级之前使用新的变量 prometheus_cadvisor_cmdline_extras 显式启用它们。有关可能的选项,请参阅:https://github.com/google/cadvisor/blob/2025.2/docs/runtime_options.md#metrics

  • 修改了 rabbitmq_server_additional_erl_args 的默认值,从空字符串变为 +S 2:2 +sbwt none +sbwtdcpu none +sbwtdio none

  • 已移除 chrony 部署的支持。

  • Monasca Grafana 服务的容器和配置将被自动移除。操作员需要移除相关的 HAProxy 配置、Monasca Grafana 数据库和相关的 Docker 卷。

  • 由于上游已停止维护,已移除对 panko 的支持。

  • 移除了对 Prometheus v1 部署的支持。任何先前部署的 Prometheus v1 实例将在升级期间产生冲突。应该手动停止/移除它们,或者通过将 enable_prometheus 设置为 no 来禁用 Prometheus v2 部署。

  • Rallytempest 项目不是 OpenStack 服务,而是客户端。由于 Xena 周期,它们的镜像和支持已被移除。

  • 移除了 wsrep-notify.sh 脚本(在 Wallaby 中已弃用)。

  • 将默认镜像源 (docker_registry) 切换到 quay.iodocker_namespace 也更改为 openstack.kolla 以匹配。这样做是为了改善默认体验,特别是对于中国用户、部署多次的用户以及/或超出用于开发、测试和评估的全合一 (AIO) 环境的用户。请注意,对于多节点和生产部署,仍然建议使用本地 registry,如文档所述。LP#1942134

弃用说明

  • 通过 Kolla Ansible 设置 rp_filter 已被弃用。

  • 弃用对 NTP 守护程序配置的支持(通过 enable_host_ntp)。将在下一个 Kolla Ansible 版本 (Xena) 中移除。请使用其他方式配置 NTP。

  • 由于缺乏维护,Monasca 的 Grafana 分支已被弃用,并将从 Xena 版本中移除。相反,将提供支持,允许 Monasca 用户迁移到带有 Monasca 数据源的 vanilla Grafana 服务。

  • 弃用对部署 tempestrally 的支持,并将从 Xena 周期中移除。原因是这些不是 OpenStack 云的服务,而是其客户端。

关键问题

  • 修复了一个关键的 bug,该 bug 导致使用 libvirtd(默认/常用选择)的 Nova 实例在 libvirtd (nova_libvirt) 容器停止时(以及因此任何重启 - 无论是手动重启还是通过运行 Kolla Ansible 完成的重启)被杀死。它影响了 CentOS、Ubuntu 和 Debian Buster(不包括 Bullseye)上的 Wallaby+。如果您的部署也受到影响,请阅读引用的 Launchpad bug 报告,评论 #22,了解如何在不冒数据丢失风险的情况下修复它。简而言之:修复需要重新部署,这将触发该 bug,因此首先必须迁移重要的虚拟机,然后才能重新部署空的计算节点。LP#1941706

安全问题

  • 此前,Kolla Ansible 默认情况下(如在多个地方记录)将 Docker 配置为配置的 registry 的不安全模式(即,如果未使用默认 registry)。这由 docker_registry_insecure 变量控制。如果操作员没有注意到这个小技巧,他们可能会使他们的部署面临潜在的中间人攻击。有关更多讨论,请参阅 bug 报告。LP#1940547

  • 修复了 net.ipv4.ip_forward 不被 Kolla Ansible 在默认网络命名空间中启用。它在具有 Neutron L3 Agent 的主机上启用(因此在大多数具有 OVS 和/或 Linux Bridge 的常见设置中,但不是 OVN),并且除非用户有额外的 iptables 规则来避免这种情况,否则允许任何流量被接受进行转发(只要它是可路由的并且通过了其他检查)。建议现有设置的用户重新评估是否需要启用此 sysctl,如果不需要则禁用。Kolla Ansible 将不再尝试设置此 sysctl。Neutron L3 Agent 处理每个管理命名空间的转发启用。

Bug 修复

  • 修复了 monasca-thresh 未能正确地将拓扑提交到 Storm。以前的容器在本地模式(在容器内)中运行拓扑,并且未使用 Storm 云。新的容器处理将拓扑提交到 Storm,并处理在配置更改时杀死和替换拓扑。因此,monasca-thresh 容器仅用于提交,并在完成后退出。拓扑的日志现在将在 storm worker-artifact 日志中可用。 LP#1808805

  • 通过默认跳过它来解决 rp_filter 设置问题。LP#1837551

  • 修复了一个问题,即容器中的配置可能会变得陈旧。这阻止了具有更新配置的容器重新启动,例如,如果使用了 kolla-ansible genconfigkolla-ansible deploy-containers 命令一起使用。 LP#1848775

  • chronyd 在服务器重启时崩溃循环 (Debian) LP#1915528

  • 修复了在 Debian/Ubuntu 上启动后配置 Docker 的问题,导致在禁用它们之前创建 iptables 规则。 LP#1923203

  • 修复用户禁用 Octavia 自动配置时 Octavia SSH 密钥复制出现的问题。 LP##1927727

  • 修复了 elasticsearch fluentd 输出在未启用 elasticsearch 时被启用的问题。 LP#1927880

  • 修复了由于缺少 six 而导致 docker python SDK 5.0.0 失败的问题 - 引入了约束以安装低于 5.x 的版本。 LP#1928915

  • 修复了超过 2 个节点的 RabbitMQ 升级随机失败的问题。 LP#1930293

  • 修复了启用 TLS 时的 Swift 部署。添加了缺少的处理程序并更正了容器名称。 LP#1931097

  • 修复了 keystone_auth 部分中缺失的 region_name。有关详细信息,请参阅 bug 1933025

  • 修复了当前基于 CentOS 8 的镜像中 iscsid 失败的问题,因为 pid 文件被不必要地设置。 LP#1933033

  • 修复了 Debian 主机引导程序未删除冲突软件包的问题。现在它的行为符合文档。

  • 修复了默认 Masakari 主机监控配置,使其与 Kolla Ansible 设置的其他配置一起工作。这设置了 disable_ipmi_check,因为 restrict_to_remotes 已设置。它防止了主机监控在需要采取行动时发生的 TypeError。到目前为止,这不会影响任何功能,因为 Kolla Ansible 不管理 Pacemaker 中的 IPMI 凭据。LP#1933209

  • 修复部署主机上的 timesync 检查问题。请参阅 bug 1933347 以获取详细信息。

  • 修复 horizon 在启用 SSL 时的健康检查。 LP#1933846

  • 修复了在 CentOS 上自定义 Docker Yum 存储库 URL 时,docker_yum_gpgkey 变量未一致使用的错误。 LP#1934913

  • 修复了一个问题,spice 控制台在一段时间后会冻结,请参阅 LP#1938549

  • 修复 Masakari 在多区域部署中查询 Nova API 在其自身区域中的问题。 LP#1939291

  • 修复从先前版本升级时的 nova 健康检查。 LP#1939679

  • 修复了在禁用 RabbitMQ 且使用 IPv6 时损坏的 kolla-toolbox 容器。 LP#1939883

  • 修复了在 Debian Bullseye 上将设备(例如,通过 iSCSI/FC 的卷)附加到实例的问题。LP#1941940

  • 修复了 kolla-toolbox ansible.log 日志记录,用于不同于 ansible 的用户。LP#1942846

  • 修复了 mariadb-clustercheck 在没有 HAProxy 时不会运行的问题。 LP#1944114

  • 不再创建 haproxy 和 swift 日志的目录,这些目录是不需要的。 LP#1945070

  • 修复了多节点 MariaDB 部署中可能因 Galera 4 的新行为导致 playbook 执行在 WSREP 检查时失败的问题。 LP#1947485

  • 修复了禁用 HAProxy 的单节点 MariaDB 部署的问题。有关详细信息,请参阅 bug 1947534

  • 修复了在部署 MariaDB 节点时使用 --limit 时在 galera.cnf 中生成 wsrep_cluster_address 的问题。 LP#1947589

  • 修复了 placement 角色中的一个错误,该错误阻止在使用了自定义策略文件时部署 placement 服务。 LP#1948835

  • 修复了错误消息中缺少当前的 Ansible 版本。 LP#1948979

  • 修复 octavia 角色未设置 amphora 网络的 gateway_ip LP#1949260

  • 修复了一个问题,当使用错误的命令名称执行 kolla-ansible 时,kolla-ansible 会以零退出代码退出。 LP#1929397

  • 修复了 Cyborg 部署中的一个问题。 LP#1937911

  • 移除了 Designate 配置中的已弃用的 export_synchronous 选项。

  • 修复了非 HA 部署中 Alertmanger 的潜在问题。在这种情况下,对等八卦协议现在被禁用,Alertmanger 不会尝试与不存在的其他实例形成集群。 LP#1926463

  • 添加了一个新的标志,docker_disable_ip_forward,它默认为 docker_disable_default_iptables_rules,并用于禁用 docker 的 ip-forward 选项,该选项使 docker 将 sysctl net.ipv4.ip_forward 设置为 1。这样做是为了防止创建全转发主机。LP#1931615

  • 修复了在 kolla-ansible bootstrap-servers 期间生成 /etc/hosts 时,一个或多个主机具有 api_interface 中带有破折号 (-) 的名称的问题。 LP#1927357

  • 修复了 Debian 和 Ubuntu 系统上 ironic_ipxe 容器的容器健康检查。LP#1937037

  • 修复了禁用 gnocchi-statsd 时 Gnocchi 的问题。LP#1926914

  • 修复了在使用 kolla_externally_managed_cert 时 HAProxy 预检查的问题。

  • 修复了启用 TLS 时的 Magnum 问题。 LP#781062

  • 修复了 neutron-serverconfig.json 中存在的问题,当使用了 VMware 插件代理时。

  • 停止了 Fluentd 在发布到 Elasticsearch 7 bulk API 时的警告消息。

  • 修复了当 neutron_external_interface 包含多个接口时,Neutron linuxbridge ML2 代理出现的问题。 LP#1863935

  • 修复了 Manila 配置中缺少 [glance] 部分的问题,这阻止了一些驱动程序运行。

  • 修复了 mariabackup 使用的容器镜像。它使用的是 mariadb 镜像,该镜像在 Victoria 中已弃用,并在 Wallaby 中移除。LP#1928129

  • 修复了 Nova 默认配置中 Ceph 的问题,RBD 用户设置为 nova,但仅复制了 cinder keyring。 ceph_nova_user 的默认值更改为 ceph_cinder_user 的值,与 ceph_nova_keyring 的默认值一致。 LP#1934145

  • 修复了在使用自定义服务身份验证项目部署 Octavia 时的问题。如果 octavia_service_auth_project 设置为不存在的项目,Octavia 部署将失败。现在会创建该项目。 LP#1922100

  • 修复了一个 Libvirt 密钥未持久保存的问题。目前尚无已知的副作用,但已作为预防措施进行了修复。LP#1821696

  • 移除了与 Wallaby 之前的 Manila 使用子文件夹相关的“fix_cephfs_owner.yaml”。Post-wallaby Manila 现在使用 cephfs 卷,因此此文件不再需要。 LP#1938285 LP#1935784

  • 移除了在 Manila 配置中使用“cephfs_enable_snapshots”的方法,因为此选项已在 Wallaby 版本中从 Manila 中移除。

其他说明

  • 由于 Cinder 上游,已删除对使用 ZFSSA 与 Cinder 的支持。ZFSSA 在 Train 中不受支持,并在 Ussuri 中删除。

  • 优化了镜像拉取,以避免循环遍历禁用的服务。