Skip to content

Master changes from upstream release notes #1492

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Feb 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
48 changes: 45 additions & 3 deletions doc/source/operations/upgrading-openstack.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,52 @@ Notable changes in the |current_release| Release
There are many changes in the OpenStack |current_release| release described in
the release notes for each project. Here are some notable ones.

.. TODO Add notable changes
RabbitMQ 4.0
------------

RabbitMQ is being upgraded to 4.0 in Epoxy. Existing transient queues must be
migrated on Caracal prior to upgrading.

.. TODO(mattcrees): Add link to docs when they exist

stackhpc.linux collection
-------------------------

The ``stackhpc.linux`` collection version has been bumped to 1.3.0. Note this
version uses systemd to activate virtual functions. This change is restricted
to the ``stackhpc.linux.sriov`` role, which is not used by Kayobe. If a custom
playbook uses this role, you can retain existing behaviour by setting
``sriov_numvfs_driver`` to ``udev``.

Neutron driver defaults
-----------------------

The default Neutron ML2 type drivers and tenant network types now use
``geneve`` instead of ``vxlan`` when OVN is enabled. This affects the
``kolla_neutron_ml2_type_drivers`` and
``kolla_neutron_ml2_tenant_network_types`` variables.

Custom inspector_keep_ports
---------------------------

If you have customized ``inspector_keep_ports``, ensure it is set to one of:
``all``, ``present``, or ``added``. If you are relying on the previous
behaviour you should set ironic_keep_ports to present.

Seed/Infra VM boot firmware
---------------------------

The default boot firmware for Seed and Infra VMs has changed from ``bios`` to
``efi``. Set ``infra_vm_boot_firmware`` and ``seed_vm_boot_firmware`` to bios
to retain existing behaviour.

Prometheus MSteams
------------------

Placeholder
-----------
The ``prometheus-msteams`` integration in Kolla Ansible has been removed, users
should switch to the `native
<https://prometheus.io/docs/alerting/latest/configuration/#msteams_config>`__
Prometheus Teams integration.

Known issues
============
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,9 +416,6 @@ monitoring
[prometheus-libvirt-exporter:children]
compute

[prometheus-msteams:children]
prometheus-alertmanager

[masakari-api:children]
control

Expand Down
4 changes: 2 additions & 2 deletions etc/kayobe/environments/ci-builder/inventory/groups
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ seed

[network]

[docker:children]
# Hosts in this group will have Docker installed.
[container-engine:children]
# Hosts in this group will have a container engine (Docker/Podman) installed.
seed

[ntp:children]
Expand Down
2 changes: 1 addition & 1 deletion etc/kayobe/inventory/groups
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ vgpu
###############################################################################
# Service groups.

[docker:children]
[container-engine:children]
# Hosts in this group will have Docker installed.
seed
controllers
Expand Down
152 changes: 5 additions & 147 deletions etc/kayobe/kolla/inventory/group_vars/prometheus-blackbox-exporter
Original file line number Diff line number Diff line change
Expand Up @@ -6,132 +6,25 @@
# prometheus_blackbox_exporter_endpoints_kayobe is another set of default
# endpoints that are templated by Kayobe rather than Kolla Ansible. See
# kolla/globals.yml for more details.
prometheus_blackbox_exporter_endpoints: |
prometheus_blackbox_exporter_endpoints_custom: |
{% set endpoints = [] %}
{% for dict_item in (prometheus_blackbox_exporter_endpoints_kayobe | default([]) + prometheus_blackbox_exporter_endpoints_default) %}
{% for dict_item in (prometheus_blackbox_exporter_endpoints_kayobe | default([]) + stackhpc_prometheus_blackbox_exporter_endpoints_default) %}
{% if dict_item.enabled | bool %}
{% for endpoint in dict_item.endpoints %}
{% set _ = endpoints.append(endpoint) %}
{% endfor %}
{% endif %}
{% endfor %}
{{ (endpoints + prometheus_blackbox_exporter_endpoints_custom) | unique | select | list }}
{{ (endpoints + stackhpc_prometheus_blackbox_exporter_endpoints_custom) | unique | select | list }}

# A list of custom prometheus Blackbox exporter endpoints. Each element should
# have the following format:
# - name:module:endpoint
# for example
# - stackhpc:http_2xx:https://stackhpc.com:443
prometheus_blackbox_exporter_endpoints_custom: []
stackhpc_prometheus_blackbox_exporter_endpoints_custom: []

prometheus_blackbox_exporter_endpoints_default:
# OpenStack endpoints
- endpoints:
- "barbican:os_endpoint:{{ barbican_public_endpoint }}"
- "{{ ('barbican_internal:os_endpoint:' + barbican_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_barbican | bool }}"
- endpoints:
- "blazar:os_endpoint:{{ blazar_public_base_endpoint }}"
- "{{ ('blazar_internal:os_endpoint:' + blazar_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_blazar | bool }}"
- endpoints:
- "ceph_rgw:http_2xx:{{ ceph_rgw_public_base_endpoint }}"
- "{{ ('ceph_rgw_internal:http_2xx:' + ceph_rgw_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_ceph_rgw | bool }}"
- endpoints:
- "cinder:os_endpoint:{{ cinder_public_base_endpoint }}"
- "{{ ('cinder_internal:os_endpoint:' + cinder_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_cinder | bool }}"
- endpoints:
- "cloudkitty:os_endpoint:{{ cloudkitty_public_endpoint }}"
- "{{ ('cloudkitty_internal:os_endpoint:' + cloudkitty_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_cloudkitty | bool }}"
- endpoints:
- "designate:os_endpoint:{{ designate_public_endpoint }}"
- "{{ ('designate_internal:os_endpoint:' + designate_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_designate | bool }}"
- endpoints:
- "glance:os_endpoint:{{ glance_public_endpoint }}"
- "{{ ('glance_internal:os_endpoint:' + glance_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_glance | bool }}"
- endpoints:
- "gnocchi:os_endpoint:{{ gnocchi_public_endpoint }}"
- "{{ ('gnocchi_internal:os_endpoint:' + gnocchi_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_gnocchi | bool }}"
- endpoints:
- "heat:os_endpoint:{{ heat_public_base_endpoint }}"
- "{{ ('heat_internal:os_endpoint:' + heat_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
- "heat_cfn:os_endpoint:{{ heat_cfn_public_base_endpoint }}"
- "{{ ('heat_cfn_internal:os_endpoint:' + heat_cfn_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_heat | bool }}"
- endpoints:
- "horizon:http_2xx:{{ horizon_public_endpoint }}"
- "{{ ('horizon_internal:http_2xx:' + horizon_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_horizon | bool }}"
- endpoints:
- "ironic:os_endpoint:{{ ironic_public_endpoint }}"
- "{{ ('ironic_internal:os_endpoint:' + ironic_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
- "ironic_inspector:os_endpoint:{{ ironic_inspector_public_endpoint }}"
- "{{ ('ironic_inspector_internal:os_endpoint:' + ironic_inspector_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_ironic | bool }}"
- endpoints:
- "keystone:os_endpoint:{{ keystone_public_url }}"
- "{{ ('keystone_internal:os_endpoint:' + keystone_internal_url) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_keystone | bool }}"
- endpoints:
- "magnum:os_endpoint:{{ magnum_public_base_endpoint }}"
- "{{ ('magnum_internal:os_endpoint:' + magnum_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_magnum | bool }}"
- endpoints:
- "manila:os_endpoint:{{ manila_public_base_endpoint }}"
- "{{ ('manila_internal:os_endpoint:' + manila_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_manila | bool }}"
- endpoints:
- "neutron:os_endpoint:{{ neutron_public_endpoint }}"
- "{{ ('neutron_internal:os_endpoint:' + neutron_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_neutron | bool }}"
- endpoints:
- "nova:os_endpoint:{{ nova_public_base_endpoint }}"
- "{{ ('nova_internal:os_endpoint:' + nova_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_nova | bool }}"
- endpoints:
- "octavia:os_endpoint:{{ octavia_public_endpoint }}"
- "{{ ('octavia_internal:os_endpoint:' + octavia_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_octavia | bool }}"
- endpoints:
- "placement:os_endpoint:{{ placement_public_endpoint }}"
- "{{ ('placement_internal:os_endpoint:' + placement_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_placement | bool }}"
- endpoints:
- "swift:os_endpoint:{{ swift_public_base_endpoint }}"
- "{{ ('swift_internal:os_endpoint:' + swift_internal_base_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_swift | bool }}"
# Additional service endpoints
- endpoints: "{% set etcd_endpoints = [] %}{% for host in groups.get('etcd', []) %}{{ etcd_endpoints.append('etcd_' + host.replace('-', '') + ':http_2xx:' + hostvars[host]['etcd_protocol'] + '://' + ('api' | kolla_address(host) | put_address_in_context('url')) + ':' + hostvars[host]['etcd_client_port'] + '/metrics')}}{% endfor %}{{ etcd_endpoints }}"
enabled: "{{ enable_etcd | bool }}"
- endpoints:
- "grafana:http_2xx:{{ grafana_public_endpoint }}"
- "{{ ('grafana_internal:http_2xx:' + grafana_internal_endpoint) if not kolla_same_external_internal_vip | bool }}"
enabled: "{{ enable_grafana | bool }}"
- endpoints:
- "opensearch:http_2xx:{{ opensearch_internal_endpoint }}"
enabled: "{{ enable_opensearch | bool }}"
- endpoints:
- "opensearch_dashboards_external:http_2xx_opensearch_dashboards:{{ opensearch_dashboards_external_endpoint }}/api/status"
enabled: "{{ enable_opensearch_dashboards_external | bool }}"
- endpoints:
- "opensearch_dashboards:http_2xx_opensearch_dashboards:{{ opensearch_dashboards_internal_endpoint }}/api/status"
enabled: "{{ enable_opensearch_dashboards | bool }}"
- endpoints:
- "prometheus:http_2xx_prometheus:{{ prometheus_public_endpoint if enable_prometheus_server_external else prometheus_internal_endpoint }}/-/healthy"
enabled: "{{ enable_prometheus | bool }}"
- endpoints:
- "prometheus_alertmanager:http_2xx_alertmanager:{{ prometheus_alertmanager_public_endpoint if enable_prometheus_alertmanager_external else prometheus_alertmanager_internal_endpoint }}"
enabled: "{{ enable_prometheus_alertmanager | bool }}"
- endpoints: "{% set rabbitmq_endpoints = [] %}{% for host in groups.get('rabbitmq', []) %}{{ rabbitmq_endpoints.append('rabbitmq_' + host.replace('-', '') + (':tls_connect:' if rabbitmq_enable_tls | bool else ':tcp_connect:') + ('api' | kolla_address(host) | put_address_in_context('url')) + ':' + hostvars[host]['rabbitmq_port'] ) }}{% endfor %}{{ rabbitmq_endpoints }}"
enabled: "{{ enable_rabbitmq | bool }}"
- endpoints: "{% set redis_endpoints = [] %}{% for host in groups.get('redis', []) %}{{ redis_endpoints.append('redis_' + host.replace('-', '') + ':tcp_connect:' + ('api' | kolla_address(host) | put_address_in_context('url')) + ':' + hostvars[host]['redis_port']) }}{% endfor %}{{ redis_endpoints }}"
enabled: "{{ enable_redis | bool }}"
stackhpc_prometheus_blackbox_exporter_endpoints_default:
# Backend endpoints
- endpoints: "{% set barbican_endpoints = [] %}{% for host in groups.get('barbican-api', []) %}{{ barbican_endpoints.append('barbican_backend_' + host.replace('-', '') + ':os_endpoint:' + ('https' if kolla_enable_tls_backend | bool else 'http') + '://' + ('api' | kolla_address(host) | put_address_in_context('url')) + ':' + hostvars[host]['barbican_api_port']) }}{% endfor %}{{ barbican_endpoints }}"
enabled: "{{ enable_barbican | bool }}"
Expand Down Expand Up @@ -171,38 +64,3 @@ prometheus_blackbox_exporter_endpoints_default:
enabled: "{{ enable_ironic | bool }}"
- endpoints: "{% set swift_endpoints = [] %}{% for host in groups.get('swift-api', []) %}{{ swift_endpoints.append('swift_backend_' + host.replace('-', '') + ':os_endpoint:' + 'http://' + ('api' | kolla_address(host) | put_address_in_context('url')) + ':' + hostvars[host]['swift_api_port']) }}{% endfor %}{{ swift_endpoints }}"
enabled: "{{ enable_swift | bool }}"

# Ensure service endpoints are defined
blazar_internal_base_endpoint: "{{ blazar_internal_fqdn | kolla_url(internal_protocol, blazar_api_port) }}"
blazar_public_base_endpoint: "{{ blazar_external_fqdn | kolla_url(public_protocol, blazar_api_public_port) }}"
ceph_rgw_internal_base_endpoint: "{{ ceph_rgw_internal_fqdn | kolla_url(internal_protocol, ceph_rgw_port) }}"
ceph_rgw_public_base_endpoint: "{{ ceph_rgw_external_fqdn | kolla_url(public_protocol, ceph_rgw_public_port) }}"
cinder_internal_base_endpoint: "{{ cinder_internal_fqdn | kolla_url(internal_protocol, cinder_api_port) }}"
cinder_public_base_endpoint: "{{ cinder_external_fqdn | kolla_url(public_protocol, cinder_api_public_port) }}"
cloudkitty_internal_endpoint: "{{ cloudkitty_internal_fqdn | kolla_url(internal_protocol, cloudkitty_api_port) }}"
cloudkitty_public_endpoint: "{{ cloudkitty_external_fqdn | kolla_url(public_protocol, cloudkitty_api_public_port) }}"
gnocchi_internal_endpoint: "{{ gnocchi_internal_fqdn | kolla_url(internal_protocol, gnocchi_api_port) }}"
gnocchi_public_endpoint: "{{ gnocchi_external_fqdn | kolla_url(public_protocol, gnocchi_api_public_port) }}"
grafana_public_endpoint: "{{ grafana_external_fqdn | kolla_url(public_protocol, grafana_server_public_port) }}"
heat_cfn_internal_base_endpoint: "{{ heat_cfn_internal_fqdn | kolla_url(internal_protocol, heat_api_cfn_port) }}"
heat_cfn_public_base_endpoint: "{{ heat_cfn_external_fqdn | kolla_url(public_protocol, heat_api_cfn_public_port) }}"
heat_internal_base_endpoint: "{{ heat_internal_fqdn | kolla_url(internal_protocol, heat_api_port) }}"
heat_public_base_endpoint: "{{ heat_external_fqdn | kolla_url(public_protocol, heat_api_public_port) }}"
horizon_public_endpoint: "{{ horizon_external_fqdn | kolla_url(public_protocol, horizon_tls_port if kolla_enable_tls_external | bool else horizon_port) }}"
ironic_inspector_internal_endpoint: "{{ ironic_inspector_internal_fqdn | kolla_url(internal_protocol, ironic_inspector_port) }}"
ironic_inspector_public_endpoint: "{{ ironic_inspector_external_fqdn | kolla_url(public_protocol, ironic_inspector_public_port) }}"
magnum_internal_base_endpoint: "{{ magnum_internal_fqdn | kolla_url(internal_protocol, magnum_api_port) }}"
magnum_public_base_endpoint: "{{ magnum_external_fqdn | kolla_url(public_protocol, magnum_api_public_port) }}"
manila_internal_base_endpoint: "{{ manila_internal_fqdn | kolla_url(internal_protocol, manila_api_port) }}"
manila_public_base_endpoint: "{{ manila_external_fqdn | kolla_url(public_protocol, manila_api_public_port) }}"
nova_internal_base_endpoint: "{{ nova_internal_fqdn | kolla_url(internal_protocol, nova_api_port) }}"
nova_public_base_endpoint: "{{ nova_external_fqdn | kolla_url(public_protocol, nova_api_public_port) }}"
opensearch_dashboards_external_endpoint: "{{ opensearch_dashboards_external_fqdn | default(kolla_external_fqdn) | kolla_url(public_protocol, opensearch_dashboards_port_external) }}"
opensearch_dashboards_internal_endpoint: "{{ opensearch_dashboards_internal_fqdn | default(kolla_internal_fqdn) | kolla_url(internal_protocol, opensearch_dashboards_port) }}"
placement_internal_endpoint: "{{ placement_internal_fqdn | kolla_url(internal_protocol, placement_api_port) }}"
placement_public_endpoint: "{{ placement_external_fqdn | kolla_url(public_protocol, placement_api_public_port) }}"
prometheus_alertmanager_internal_endpoint: "{{ prometheus_alertmanager_internal_fqdn | kolla_url(internal_protocol, prometheus_alertmanager_port) }}"
prometheus_alertmanager_public_endpoint: "{{ prometheus_alertmanager_external_fqdn | kolla_url(public_protocol, prometheus_alertmanager_public_port) }}"
prometheus_internal_endpoint: "{{ prometheus_internal_fqdn | kolla_url(internal_protocol, prometheus_port) }}"
prometheus_public_endpoint: "{{ prometheus_external_fqdn | kolla_url(public_protocol, prometheus_public_port) }}"
swift_public_base_endpoint: "{{ swift_external_fqdn | kolla_url(public_protocol, swift_proxy_server_port) }}"
4 changes: 2 additions & 2 deletions etc/kayobe/pulp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ stackhpc_pulp_distribution_deb_production: >-

# Whether to sync Rocky Linux 9 packages.
stackhpc_pulp_sync_rocky_9: "{{ os_distribution == 'rocky' }}"
# Rocky 9 minor version number. Supported values: 1, 2, 3, 4, 5. Default is 5
# Rocky 9 minor version number. Supported values: 5. Default is 5
stackhpc_pulp_repo_rocky_9_minor_version: 5
# Rocky 9 Snapshot versions. The defaults use the appropriate version from
# pulp-repo-versions.yml for the selected minor release.
Expand Down Expand Up @@ -510,12 +510,12 @@ stackhpc_pulp_images_kolla:
- prometheus-elasticsearch-exporter
- prometheus-libvirt-exporter
- prometheus-memcached-exporter
- prometheus-msteams
- prometheus-mtail
- prometheus-mysqld-exporter
- prometheus-node-exporter
- prometheus-openstack-exporter
- prometheus-v2-server
- proxysql
- rabbitmq
- redis
- redis-sentinel
Expand Down
6 changes: 6 additions & 0 deletions releasenotes/notes/blackbox-updates-db81e29a45063a42.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
upgrade:
- |
The ``prometheus_blackbox_exporter_endpoints_custom`` variable has been
renamed to ``stackhpc_prometheus_blackbox_exporter_endpoints_custom`` to
avoid conflits with an upstream Kolla-Ansible var of the same name.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
upgrade:
- |
Support for Rocky Linux 9.1 to 9.4 has been dropped. Hosts must be updated
to RL9.5 or above before upgrading to this OpenStack release.
deprecations:
- |
Support for Rocky Linux 9.1 to 9.4 has been dropped.
Loading