2024.1 系列发布说明

2024.1-eom

错误修复

  • 修复了 PodmanWorker 在创建新容器时未设置 KOLLA_SERVICE_NAME 环境变量的问题。此外,两个方法从 DockerWorker 移动到 ContainerWorker,因为它们适用于两种引擎。

  • 修复了一个问题,当 Memcached 节点之一不可用时,Horizon 返回 HTTP 500 错误,方法是将缓存后端中的 ignore_exc 设置为 TrueLP#2106557

  • 添加了对 octavia_notification_topics 的缺失覆盖,以便操作员可以为 Octavia 添加自己的通知主题。默认情况下,当启用 ceilometer 时,它会将通知发送到 ceilometer。

18.8.0

安全问题

  • 通过单个前端拒绝访问 /server-status。 LP#2121626

错误修复

  • 修复了错误 LP#2118452,该错误阻止了 RabbitMQ 从版本 3.13 升级到 4.1,即使它受支持。

  • 修复了当网络节点与控制器分离时后端 TLS 配置的问题。 LP#2117084

  • 减小 fluentd 缓冲区的大小,以避免在将日志发送到 opensearch/elasticsearch 时出现 HTTP 413 错误。 所选值基于看似合理的大小。 可以通过编辑 fluentd_bulk_message_request_thresholdfluentd_buffer_chunk_limit_size 变量来自定义这些值。 LP#2079988

18.7.0

新特性

  • 使用仲裁队列处理瞬态/扇出队列。这有助于 OpenStack 服务更能抵抗消息代理故障。此功能默认禁用。您可以通过在 globals.yml 中设置以下内容来启用它:om_enable_rabbitmq_transient_quorum_queue: true。请注意,这将为所有瞬态/扇出消息交换启用仲裁队列,并可能提高系统的弹性。另请参阅 LP#2078339

  • 现在,您可以启用 RabbitMQ 中所有扇出队列的流队列的使用,方法是将 om_enable_rabbitmq_stream_fanout 设置为 true

升级说明

  • 添加了对所有使用 RabbitMQ 的服务使用 oslo.messaging 队列管理器的支持。默认情况下禁用此功能,但可以使用 om_enable_queue_manager 进行配置。

  • om_enable_rabbitmq_transient_quorum_queueom_enable_rabbitmq_quorum_queues 都为 true 时,RabbitMQ 中的扇出队列流(由 om_enable_rabbitmq_stream_fanout 变量控制)默认启用。

  • 添加了对 Ubuntu Noble Numbat 24.04 作为宿主机操作系统的支持。

错误修复

  • 修复了 ovs-dpdk 角色中处理程序调用失败的问题。 LP#2088197

18.6.0

新特性

  • 用户角色分配现在可以自定义域和系统范围。

  • kolla-ansible 现在在通过 kolla-ansible -i $inventory validate-config 调用时验证 Prometheus 配置文件。通过运行 promtool check config 命令来完成此验证。有关 kolla-ansible validate-config 命令的详细信息,请参阅 文档

升级说明

  • 服务用户 ironic-inspector 现在被分配了系统范围 all。 如果您已覆盖默认的角色分配列表,您也应进行此更改。

错误修复

  • 修复了 Redis Sentinel 配置,以确保 Octavia jobboard 的正确高可用性功能。 LP#2100927

  • 服务用户 ironic-inspector 现在被分配了系统范围 all。 这使其能够在节点检查期间再次创建裸机端口。 LP#2064655

18.5.0

错误修复

  • 修复了 Apache 和 placement 写入相同日志文件的问题。 Apache placement VirtualHost ErrorLog 已重命名为 placement-api-error.log(与其他服务类似)。 LP#[2095607]

  • 修复了一个问题,当设置 openstack_cacert 时,cinder.conf 中的 etcd3gw backend_url 将无效。 LP#2085908

  • 通过删除硬编码的版本号修复了 Grafana 数据源更新的问题。 这可确保正确配置数据源更新。 LP#[2096664]

18.4.0

新特性

  • 生成一个系统范围的 public-openrc-system.sh 文件。这允许针对公共 API 运行 Ironic 命令,当无法访问内部 API 时很有用。 LP#2051837

错误修复

  • 修复了 fluentd 解析器在 Python 跟踪信息上失败的情况。 OpenStack 服务正则表达式已重新设计,以包含 global_request_id 并处理带有 Python 跟踪信息的情况。 LP#2044370

  • 修复了 busy libvirt 的 secret volume 在 secret 更改时的问题。 LP#2073678

  • 添加了一个检查,以防止部署/升级 RabbitMQ 容器导致 RabbitMQ 版本的降级。

  • 修复了一个问题,RabbitMQ 版本检查由于缺少身份验证而无法拉取新镜像。 LP#2086171

  • 修复了一个错误,其中变量 kolla_same_external_internal_vip 的 IP 地址比较没有正确进行。修复比较以使用 ipaddr 过滤器代替。有关详细信息,请参阅 LP#2076889

18.3.0

新特性

  • 添加了在 Ironic Inspector DHCP 服务器中为多个 DHCP 范围提供 NTP(时间源)服务器的能力。

升级说明

  • 删除了通过设置 kolla_ansible_setup_any_errors_fataltrue 提前失败执行(如果任何主机上的事实收集失败)的支持。这是因为 Ansible 的 any_errors_fatal 参数没有被模板化,导致即使 kolla_ansible_setup_any_errors_fatal 的默认值为 false,该值始终被解释为 true

    可以通过将最大失败百分比设置为 0 来实现等效行为。这可以通过专门为事实收集使用 gather_facts_max_fail_percentage 或全局使用 kolla_max_fail_percentage 来完成。

错误修复

  • 修复了 ironic dnsmasq 在使用 podman 部署中无法启动的问题,因为它需要 NET_RAW 功能。请参阅 LP#2055282

  • 修复了 kolla-ansible 移除放置在 /etc/kolla/<inventory> 中的 inventory 文件的问题。有关更多详细信息,请参阅 LP#2052706

  • 修复了在使用联合身份验证时 keystone 服务配置的 haproxy 问题。 LP#2058656

  • 修复了由于在 mariadb_backup_history 表上缺少 CREATE 权限导致的 mariadb 备份失败问题。 LP#2061889

  • 修复了当 kolla-ansible 从 docker 容器运行时 MariaDB 恢复问题。 LP#2073370

  • 修复了 #2080552。openvswitch 角色现在将 external-ids:hostname 设置为 {{ ansible_facts.fqdn }} 而不是 {{ ansible_facts.hostname }},因为 Neutron 在 requested-chassis 字段中使用基于 FQDN 的主机名。 LP#2080552

  • 修复了由于 mysql_ifaces 配置中 IPv6 地址格式不正确导致 ProxySQL 无法绑定。 LP#2081106

  • 为 redis 添加了缺少的 logrotate 配置。 LP#2084523

  • 修复了在使用 --limit 参数进行事实收集时的问题,如果一台主机的事实收集失败,可能会导致另一台主机在委托事实收集期间失败。

  • 为 multipath.conf defaults 部分添加了 skip_kpartx yes 以防止 kpartx 扫描 multipath 设备并解锁 os-brick 的 multipathd del map 操作以进行卷分离操作。 LP#2078973 <https://launchpad.net/bugs/2078973>`__

  • 修复了 2067036。添加了 octavia_interface_wait_timeout 以控制 octavia-interface.service 超时时间,以便能够等待 openvswitch 代理同步完成并且 octavia-lb-net 可以从主机访问。还将此单元的重启策略设置为 on-failure LP#2067036

  • 修复了 Octavia 服务升级问题,该问题在 Octavia 持久性数据库用户缺失时可能导致失败。 LP#2065591

  • 修复了 neutron_ovn_agent 和 neutron_ovn_metadata_agent 的不可靠的健康检查错误。更改为检查 OVS DB 连接而不是 OVN 南向 DB 连接。 LP#2084128

  • 修复了在使用 podman 时,使用模式说明符的命名卷的问题。有关更多详细信息,请参阅 LP#2054834

  • 修复了 kolla-toolbox 调用内部模块时,数据在标准错误上返回时解析 JSON 输出的问题。 LP#2080544

  • 更新了 proxysql.yaml.j2 以使用 mariadb_port 作为后端。这修复了 database_portmariadb_port 不同的设置。

18.2.0

新特性

  • 修改了公共 API firewalld 规则,以便立即应用于正在运行的 firewalld 服务。这要求 firewalld 正在运行,但避免重新加载 firewalld,由于 firewalld 构建其防火墙链的方式,重新加载会造成破坏。

错误修复

  • 修复了部署启用 TLS 的内部 VIP 的 opensearch 问题。

  • 修复了在 manila-share 节点上 openvswitch 的处理问题。 LP#1993285

  • 添加了 barbican 所需的数据库配置。 LP#2072554

  • 修复了在使用自定义 CA 时 Python requests 库的问题,方法是将 REQUESTS_CA 环境变量添加到 kolla-toolbox 容器。请参阅 LP#1967132

  • 修复了当在服务配置文件中设置自定义 host 选项时检测 Nova Compute Ironic 服务的问题。请参阅 LP#2056571

  • 移除了 horizon 容器中的默认 /tmp/ 挂载点。此更改是为了加固容器并防止潜在的安全问题。有关更多信息,请参阅 Bug Report:LP#2068126

  • 修复了当部署 alertmanager 时会破坏的 prometheus.yml 模板问题。

  • 修复了 OVN 北向或南向数据库部署在选举新的领导者时可能失败的问题。 LP#2059124

18.1.0

升级说明

  • MariaDB 备份现在使用与正在运行的 MariaDB 服务器相同的镜像。以下与 MariaDB 备份相关的变量不再使用并且已被删除

    • mariabackup_image

    • mariabackup_tag

    • mariabackup_image_full

错误修复

  • 修复了 trove 模块导入问题。所需模块的路径在源 trove 包中已更改,因此配置已更新。 LP#1937120

  • 修改了 MariaDB 程序以使用与正在运行的 MariaDB 服务器容器相同的容器镜像。这应防止可能导致备份失败的兼容性问题。

  • 修复了 kolla_podman_worker 中的一个错误,其中列表中字符串中缺少的逗号会创建应该分开的项目的隐式连接。 LP#2067278

  • 修复了启用内部 TLS 时的 CloudKitty 配置。 LP#1998831

  • 修复了在容器配置中设置像 1g 这样的值时,维度比较的问题,导致 docker 容器即使没有更改也会重新启动,因为我们正在比较 1g 和 docker inspect 中显示的 1073741824,而 1g 在配置中。

  • 修复了 skyline-console 中 keystone 端口指向错误端点端口的问题。 LP#2069855

  • 修复了 2065168。修复 kolla systemd 单元模板,以防止使用 docker.service 重新启动重新启动所有 kolla 服务。 LP#[2065168]

  • 所有稳定的 RabbitMQ 功能标志现在在部署、重新配置和升级期间都已启用。因此,变量 rabbitmq_feature_flags 不再需要。这是对 RabbitMQ SLURP 支持的部分修复。 LP#2049512

  • 修复了 skyline 的旧格式停止任务。它使用了 docker_container,这会导致 podman 部署出现问题。

18.0.0

新特性

  • 添加了一个新变量 prometheus_ceph_exporter_interval 用于控制 Ceph 指标的抓取间隔。

  • 公开了一个标志 bifrost_enable_ironic_inspector,用于在 Bifrost 中启用 ironic-inspector。此选项默认为 True,因为它可能对向后兼容性有用。它仍然允许通过将 inspect_interface 设置为 agent 来使用本机带内检查。有关更多详细信息,请参阅 Ironic 文档。

  • 实现了 [配置 tap-as-a-service 插件到 neutron 容器]。添加了必要的更改和配置以使用 neutron 插件 tap-as-a-service 使用 openstack tap 命令创建端口镜像。有关更多信息,请参阅蓝图 configure-taas-plugin

  • 实现了 [启用 Fluentd 插件 Systemd]。添加了必要的更改和配置以使用 fluentd 插件 systemd 默认读取 /var/log/journal 中的日志。这允许我们读取和操作这些日志以进行监控目的。

    这些日志默认情况下将发送到 OpenSearch。要禁用此行为,请将变量 enable_fluentd_systemd 在配置文件 /etc/kolla/globals.yml 中设置为 false

    默认情况下,启用集中日志记录时,我们还会启用 systemd 插件。要在启用集中日志记录时禁用此行为,请将变量 enable_fluentd_systemd 的值设置为 false,在配置文件 /etc/kolla/globals.yml 中。

    fluent-plugin-systemd 源代码:https://github.com/fluent-plugin-systemd/fluent-plugin-systemd

    有关更多信息,请参阅蓝图 enable-fluent-plugin-systemd

  • 已添加用于 neutron 角色的新变量 neutron_dns_integrationneutron_dns_domain。它们允许启用/禁用内部/外部 DNS 集成,或它们的组合。

  • 配置 Grafana OpenSearch 数据源的日志级别字段。这允许根据日志级别对日志进行着色。要应用此设置,需要删除数据源并重新配置 grafana。

  • 已删除 prometheus-haproxy-exporter 的配置和部署,因为它的仓库现在已归档。我们现在使用内置于 HAProxy 中的 Prometheus 的原生支持。为了保持一致性,它在 prometheus_haproxy_exporter_port 端口上公开。 prometheus-haproxy-exporter 容器和配置会自动删除。

  • 已启用 Ironic 中项目范围服务角色的提升访问权限。Ironic 最近开始强制执行新的策略和范围,它是少数几个需要系统范围才能进行某些管理相关 API 调用的 OpenStack 项目之一。但是,Ironic 也开始允许服务角色通过设置 rbac_service_role_elevated_access 来实现项目范围的行为。此更改启用此设置,以实现与其它 OpenStack 项目服务角色相同的行为。

  • 已将服务角色添加到 Ironic 服务用户。Ironic 最近强制执行新的策略验证并添加了对服务角色的支持。

  • 已添加对通过 kolla_max_fail_percentage 设置 Ansible 剧本最大失败百分比的支持。它也可以按服务设置,例如 nova_max_fail_percentage

  • 通过索引状态管理 (ISM) 为 OpenSearch 设置日志保留策略。文档

  • 重新添加了对 neutron-fwaas v2 的支持。设置 enable_neutron_fwaas: yes 以启用。

  • 已添加配置以连接 Skyline 的 Prometheus,以使监控中心正常工作。最新的 Skyline 控制台现在包含管理员视图中的监控中心,该监控中心显示来自 Prometheus 的信息。为此,需要在 skyline.yaml 中设置 Prometheus 连接。

  • 已添加覆盖 Skyline 配置文件名的功能。您可以提供 Skyline 控制台的 nginx.conf、Skyline API 服务器的 gunicorn.py 和 skyline.yaml 的自定义版本。将文件放在 Kolla 配置目录的 skyline 子文件夹中;skyline.yaml 将与 Kolla 提供的版本合并。

  • 已将更多受 Skyline 支持的服务添加到配置中,使其可访问 Skyline 的前端控制台。新的服务包括 Barbican、Designate、Masakari 和 Swift 或 Ceph RGW。如果同时启用了 Swift 和 Ceph RGW,则仅配置 Swift。

  • 允许覆盖 Skyline 控制台徽标。现在可以替换 Skyline 的一些徽标。有关详细信息,请参阅 参考文档

  • 如果启用了 Keystone 联合身份验证并且设置了至少一个具有 openid 协议的身份提供程序,则 Skyline 控制台中启用了单点登录 (SSO)。Skyline 控制台的重定向 URI 已添加到 Keystone 的受信任仪表板中。

升级说明

  • 支持的 Ansible 最低版本现在是 8 (ansible-core 2.15),最高版本是 9 (ansible-core 2.16)。

  • 已停止对部署 Freezer 的支持。

  • 已停止对部署 Murano 的支持。此外,由于仅用于 Murano,已停止对部署外部 RabbitMQ 的支持。

  • 已停止对部署 Sahara 的支持。

  • 已停止对部署 Senlin 的支持。

  • 已停止对部署 Solum 的支持。

  • 已停止对部署 Vitrage 的支持。

  • 配置变量 designate_enable_notifications_sink 已更改为 no,配置 designate 在 neutron、nova 和控制部署中的通知到 designate-sink,现在是可选的。

    希望保留先前行为的运营商应将其设置为 true

  • 不再使用 grafana 卷。如果您希望自动删除旧卷,请将 grafana_remove_old_volume 设置为 true。请注意,执行此操作将丢失通过 CLI 直接安装的任何插件。如果您之前通过 Grafana UI 或 CLI 安装了 Grafana 插件,则必须更改为在镜像 构建时 安装它们。Grafana 卷,其中包含现有的自定义插件,将在 D 版本中自动删除。

  • 由于从使用 prometheus-haproxy-exporter 更改为使用内置于 HAProxy 中的 Prometheus 的原生支持,指标名称可能会被替换和/或删除,并且在某些情况下,指标名称可能保持不变,但标签可能会更改。警报和仪表板也可能需要更新以使用新的指标。请查看引用旧指标的任何配置,因为这不是向后兼容的更改。

  • Horizon 角色已重新设计为首选 local_settings.d 配置模型。文件 local_settingscustom_local_settings 已重命名为 _9998-kolla-settings.py_9999-custom-settings.py。使用 Horizon 自定义配置的用户必须更改 /etc/kolla/config/horizon 中的这些文件名。

  • 添加了 OpenSearch 中的日志保留,以前由 Elasticsearch Curator 处理。默认情况下,软保留期和硬保留期分别为 30 天和 60 天。如果您正在从 Elasticsearch 升级,并且之前配置了 elasticsearch_curator_soft_retention_period_dayselasticsearch_curator_hard_retention_period_days,则将使用这些变量而不是默认值。您应在 Caracal 版本之前迁移您的配置以使用新的变量名称。

  • 如果在 passwords.yml 中更新了凭据,kolla-ansible 现在能够更新 keystone 数据库和磁盘上配置文件中的这些凭据。

    passwords.yml 的更改在运行 kolla-ansible -i INVENTORY reconfigure 后应用。

    如果您想恢复到旧行为 - 凭据在 passwords.yml 中更改后在重新配置期间不会自动更新 - 您可以通过在 globals.yml 中设置 update_keystone_service_user_passwords: false 来指定。

    请注意,只有在您更改 passwords.yml 中的密码时,才会更改密码。此机制不是自动凭据轮换的完整解决方案。如果您没有在 passwords.yml 内部更改密码,则不会更改任何密码。

弃用说明

  • 对部署 Masakari 的支持不再被弃用。Masakari CI 场景现在可以正常工作,并且已承诺改进该项目的健康状况。

错误修复

  • 添加了针对内核中禁用 IPv6 的 IPv6 sysctl 设置的条件。在这些系统上更改与 IPv6 相关的 sysctl 设置会导致错误。LP#1906306

  • 修复了 nova-cell 在 VIP 更改时未更新 cell0 数据库地址的问题。有关更多详细信息,请参阅 LP#1915302

  • 修复了非持久的 Neutron 代理状态数据。LP2009884

  • 从 ansible-core 2.13 开始,列表连接格式已更改,导致无法覆盖 horizon 策略文件。有关更多详细信息,请参阅 LP#2045660

  • 修复了在使用 systemd 时服务重启时间过长的问题。LP#2048130

  • 通过将每个容器的 housekeeping 间隔设置为与 Prometheus 抓取间隔相同的值,修复了 cAdvisor 容器的高 CPU 使用率问题。LP#2048223

  • 修复了 Nova 操作使用 scp 命令(例如冷迁移或调整大小)在 Debian Bookworm 上的问题。LP#2048700

  • 修复了 nova-compute 和 nova-compute-ironic 的配置,这将启用通过 configdrive 暴露 vendordata。LP#2049607

  • 修复了使用 Ansible check 模式时的 mariadb 角色部署。LP#2052501

  • 修复了当指定 neutron_bridge_name 为两个网桥时,openvswitch 网桥创建的问题。有关详细信息,请参阅 LP#2056332

  • 修复了将 Redis 作为协调后端使用的问题。有关详细信息,请参阅 LP#2056667

  • 修复了 ovs-dpdk 服务配置错误,导致 Kolla-Ansible 部署中断。有关详细信息,请参阅 bug 2058372

  • Podman 部分中的不正确条件阻止了检索所有容器的事实,当未提供名称时。 LP#2058492

  • 修复了使用 podman 作为容器引擎时负载均衡器升级任务失败的问题。LP#2063896

  • 更新了所有 Nova 和 Cinder 服务的服务用户令牌的配置,以停止对服务令牌使用管理员角色,并使用服务角色。

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

  • 修复了启用不必要的用法审计通知的问题。请参阅 LP##2049503

  • 修复了启用 TLS 的 Swift 时 cinder-backup 服务。LP#2051986

  • 修复了 OpenSearch 升级任务中的幂等性问题,后续的 kolla-ansible 升级会使分片分配处于禁用状态。LP#2049512

  • 修复了 sahara_engine 容器的 Docker 健康检查。LP#2046268

  • 修复了一个 trove 部署错误,由于 guest-agent.conf 中缺少 oslo_messaging_rabbit 配置,导致 trove guest-agent 无法连接到 RabbitMQ。详情请参阅 bug 2048822

  • 修复了 trove 无法发现 swift 端点的问题,原因是 guest-agent.conf 中缺少 service_credentials。详情请参阅 bug 2048829

  • 修复了一个问题,如果日志中未找到序列号,MariaDB 集群恢复过程将失败。恢复过程现在会检查完整的日志文件以查找序列号并恢复集群。详情请参阅 LP#1821173

  • 更新了默认 Grafana OpenSearch 数据源配置,以使用适用于 OpenSearch 的值,使其开箱即用。替换了之前使用的 Elasticsearch 值。可以通过删除数据源并通过 Kolla Ansible 重新配置 Grafana 来应用新的配置。为了防止在删除数据源时仪表板损坏,应该在 Grafana 中使用 数据源变量 <https://grafana.org.cn/docs/grafana/2025.2/dashboards/variables/add-template-variables/#add-a-data-source-variable>。详情请参阅 bug 2039500 <https://bugs.launchpad.net/kolla-ansible/+bug/2039500>

  • 修复了 bug #2039498,该 bug 导致 Grafana docker 卷绑定挂载到镜像构建时安装的 Grafana 插件之上。通过将仪表板从现有的绑定挂载复制到容器中而不是使用 grafana 卷来修复此问题。但是,这会留下该卷,可以通过将 grafana_remove_old_volume 设置为 true 来删除。请注意,通过 CLI 直接安装而非通过 Kolla 安装的任何插件在执行此操作时都会丢失。在未来的版本中,grafana_remove_old_volume 将默认设置为 true

  • 添加了 OpenSearch 中的日志保留功能,之前由 Elasticsearch Curator 处理,现在使用 Index State Management (ISM) OpenSearch 捆绑插件。 LP#2047037

  • 为 Prometheus Ironic 导出器和 Alertmanager 指标添加了友好的标签支持。详情请参阅 LP#2041855

  • passwords.yml 中更改服务用户密码时,现在将在重新配置服务时应用。

    可以通过将 update_keystone_service_user_passwords: false 来撤销此行为。

    修复了 LP#2045990