diff --git a/.gitreview b/.gitreview index 8739a7c488..35cc6527f5 100644 --- a/.gitreview +++ b/.gitreview @@ -2,4 +2,4 @@ host=review.opendev.org port=29418 project=openstack/openstack-ansible.git - +defaultbranch=stable/2024.2 diff --git a/ansible-collection-requirements.yml b/ansible-collection-requirements.yml index 5b51e3eb3c..7d3ae405bd 100644 --- a/ansible-collection-requirements.yml +++ b/ansible-collection-requirements.yml @@ -11,7 +11,7 @@ collections: - name: openstack.osa source: https://opendev.org/openstack/openstack-ansible-plugins type: git - version: master + version: 2cfba0520eee0b5416555c200e67366cefbb9365 - name: community.general source: https://github.com/ansible-collections/community.general type: git diff --git a/ansible-role-requirements.yml b/ansible-role-requirements.yml index 41d1206739..45b2d5ef99 100644 --- a/ansible-role-requirements.yml +++ b/ansible-role-requirements.yml @@ -20,9 +20,9 @@ - name: python_venv_build src: https://opendev.org/openstack/ansible-role-python_venv_build scm: git - version: ed1cb28419b8bed87bd1339ae4fde4969f1dc791 + version: 82c76f41ea8f95d995d035aaa285f72781ed66eb trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-01-30' - name: qdrouterd scm: git src: https://opendev.org/openstack/ansible-role-qdrouterd @@ -38,9 +38,9 @@ - name: systemd_networkd src: https://opendev.org/openstack/ansible-role-systemd_networkd scm: git - version: 2f562be134f295a5b8a4787cf6aa1a874b348185 + version: 70555898e8a6c8463cfea8d3f06b9aea861f1583 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-01-07' - name: systemd_service src: https://opendev.org/openstack/ansible-role-systemd_service scm: git @@ -74,27 +74,27 @@ - name: galera_server scm: git src: https://opendev.org/openstack/openstack-ansible-galera_server - version: 2f2912a30812c0fa46a380c0a57ac09989e8758e + version: 7d46ef260cc432257a56b7b567666f1ea7fc99fe trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-06-03' - name: haproxy_server scm: git src: https://opendev.org/openstack/openstack-ansible-haproxy_server - version: f4846463a5ccabfefc3d23bdb6e1779247e21d45 + version: e22724aa2b3815ddad2e815cb8c44a59a3c5360d trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-02-24' - name: lxc_container_create scm: git src: https://opendev.org/openstack/openstack-ansible-lxc_container_create - version: 48d8aa72f561edb096b6a08184335d12a1264151 + version: cd4577303d9117641175b90378d64156cd535f55 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-01-07' - name: lxc_hosts scm: git src: https://opendev.org/openstack/openstack-ansible-lxc_hosts - version: 41470784fd9dc2438799f45417a9fbcef0d069d3 + version: a58cde80d982496a0dd0b4ad35f101ebb0c8db23 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-05-14' - name: memcached_server scm: git src: https://opendev.org/openstack/openstack-ansible-memcached_server @@ -182,27 +182,27 @@ - name: os_horizon scm: git src: https://opendev.org/openstack/openstack-ansible-os_horizon - version: 55cc1785fabee4b8c415e43127223463d5c9ef8f + version: 5187e725ecf49117bde8e72edbe43549afd81f0d trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-05-15' - name: os_ironic scm: git src: https://opendev.org/openstack/openstack-ansible-os_ironic - version: 1eadfb4925015a75cdc4177f93505f952fc0a18d + version: 16e97d9bd77bf7c2cea8f82933d7999adaa2f915 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-02-11' - name: os_keystone scm: git src: https://opendev.org/openstack/openstack-ansible-os_keystone - version: 9d9509103f13994c8e6328438d1b6c623ee4caab + version: ba3b26280e25b70f68c3763d0feeeddbf3161874 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-09-13' - name: os_magnum scm: git src: https://opendev.org/openstack/openstack-ansible-os_magnum - version: be694a172572ea249fd671a4dc9d2b1b654f546a + version: 24bb7b4f70be1dc32f4a1dc28ec78640593576ee trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-06-29' - name: os_manila scm: git src: https://opendev.org/openstack/openstack-ansible-os_manila @@ -224,21 +224,21 @@ - name: os_neutron scm: git src: https://opendev.org/openstack/openstack-ansible-os_neutron - version: 83b30f0c883c34fb00fa8c591e826d2146d35502 + version: f8e8ca37995492e84884f065ed5f84fe0197f3f4 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-11-05' - name: os_nova scm: git src: https://opendev.org/openstack/openstack-ansible-os_nova - version: f8148653a16add4b70ccb9050b5dc66259be5dfa + version: 5ce463551aeda103d218d4bc66347facaa625fcf trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-03-16' - name: os_octavia scm: git src: https://opendev.org/openstack/openstack-ansible-os_octavia - version: 17dd5a3079a6da936f55b5fc2827e39e9ed2a0d0 + version: ec92a438a5a8607c856ba0a2deb23f69e91d8ff8 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-08-29' - name: os_placement scm: git src: https://opendev.org/openstack/openstack-ansible-os_placement @@ -254,9 +254,9 @@ - name: os_skyline scm: git src: https://opendev.org/openstack/openstack-ansible-os_skyline - version: 410dab5168797be342dbcc44d0a7778cc7d97e25 + version: 6298ff06e71b6dd34a0c921183fcc4e1a4dc3b35 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-01-05' - name: os_swift scm: git src: https://opendev.org/openstack/openstack-ansible-os_swift @@ -290,15 +290,15 @@ - name: rabbitmq_server scm: git src: https://opendev.org/openstack/openstack-ansible-rabbitmq_server - version: 1afc2a503be837afacf30f8171bf7af90c6cfbd7 + version: e3c24fa37cd08bcc3cdad3f7045a265e478599be trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2026-01-12' - name: repo_server scm: git src: https://opendev.org/openstack/openstack-ansible-repo_server - version: c314d4299807cc20fc1c593e227d5b028b763ae2 + version: a4caa5ad92a6d907ba5c23dab589235c66a8cb86 trackbranch: stable/2024.2 - shallow_since: '2024-11-27' + shallow_since: '2025-01-09' # External dependencies - name: etcd scm: git @@ -333,6 +333,6 @@ - name: ceph-ansible scm: git src: https://github.com/ceph/ceph-ansible - version: 88b6ecef519e52fcd2b7368905f847fa53dcd1d5 + version: 1a613004e3fb3804f26a60369cec32ef9255bd2d trackbranch: stable-8.0 - shallow_since: '2024-10-28' + shallow_since: '2025-09-16' diff --git a/doc/source/admin/upgrades/major-upgrades.rst b/doc/source/admin/upgrades/major-upgrades.rst index 0217cb1c4e..8e536c4826 100644 --- a/doc/source/admin/upgrades/major-upgrades.rst +++ b/doc/source/admin/upgrades/major-upgrades.rst @@ -157,13 +157,11 @@ Please review the contents of the playbook for more information. .. note:: - With upgrade to 2024.1 (Caracal) release usage of RabbitMQ Quorum Queues - is enabled by default. Migration to usage of Quorum Queues results - in prolonged downtime for services during upgrade. - - To reduce downtime you might want to set - ``oslomsg_rabbit_quorum_queues: false`` at this point and migrate to - Quorum Queues usage after OpenStack upgrade is done. + With upgrade to 2024.2 (Dalmation) release and beyond, usage of RabbitMQ + Quorum Queues is mandatory to ensure high availability of queues. If you + had previously set ``oslomsg_rabbit_quorum_queues: false``, please + consider migrating before continuing with this upgrade which uses RabbitMQ + 4.x. Please, check `RabbitMQ maintenance `_ for more information about switching between Quourum and HA Queues. diff --git a/doc/source/index.rst b/doc/source/index.rst index 79144b480c..d63ce16440 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -7,229 +7,19 @@ Abstract OpenStack-Ansible provides Ansible playbooks and roles for the deployment and configuration of an OpenStack environment. -Documentation for each of the following releases is available. - -2024.2 (Dalmatian): Under development -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +2024.2 (Dalmatian): Maintained +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -OpenStack-Ansible 2024.2 (Dalmatian) is currently Under Development. +OpenStack-Ansible 2024.2 (Dalmatian) was first released with the 30.0.0 tag on +December 2, 2024. .. toctree:: :maxdepth: 1 - Deployment guide - Release notes + Deployment guide + Release notes admin/index user/index contributor/contributing contributor/index reference/index - -2024.1 (Caracal): Maintained -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible 2024.1 (Bobcat) was first released with the 29.0.0 tag on -June 6, 2024. - -* `OpenStack-Ansible 2024.1 Documentation`_ - -* `OpenStack-Ansible 2024.1 series release notes`_ - -.. _OpenStack-Ansible 2024.1 Documentation: https://docs.openstack.org/openstack-ansible/2024.1/ -.. _OpenStack-Ansible 2024.1 series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/2024.1.html - - -2023.2 (Bobcat): Maintained -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible 2023.2 (Bobcat) was first released with the 28.0.0 tag on -December 7, 2023. - -* `OpenStack-Ansible 2023.2 Documentation`_ - -* `OpenStack-Ansible 2023.2 series release notes`_ - -.. _OpenStack-Ansible 2023.2 Documentation: https://docs.openstack.org/openstack-ansible/2023.2/ -.. _OpenStack-Ansible 2023.2 series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/2023.2.html - - -2023.1 (Antelope): Maintained -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible 2023.1 (Antelope) was first released with the 27.0.0 tag on -June 1, 2023. - -* `OpenStack-Ansible 2023.1 Documentation`_ - -* `OpenStack-Ansible 2023.1 series release notes`_ - -.. _OpenStack-Ansible 2023.1 Documentation: https://docs.openstack.org/openstack-ansible/2023.1/ -.. _OpenStack-Ansible 2023.1 series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/2023.1.html - -Zed: EOM (end-of-maintenance) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Zed series was EOM-ed on June 6, 2024 - -* `OpenStack-Ansible Zed Documentation`_ - -* `OpenStack-Ansible Zed series release notes`_ - -.. _OpenStack-Ansible Zed Documentation: https://docs.openstack.org/openstack-ansible/zed/ -.. _OpenStack-Ansible Zed series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/zed.html - -Yoga: EOM (end-of-maintenance) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Yoga series was EOM-ed on February 8, 2024. - -* `OpenStack-Ansible Yoga Documentation`_ - -* `OpenStack-Ansible Yoga series release notes`_ - -.. _OpenStack-Ansible Yoga Documentation: https://docs.openstack.org/openstack-ansible/yoga/ -.. _OpenStack-Ansible Yoga series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/yoga.html - - -Xena: EOM (end-of-maintenance) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Xena series was EOM-ed on April 12, 2024. - -* `OpenStack-Ansible Xena Documentation`_ - -* `OpenStack-Ansible Xena series release notes`_ - -.. _OpenStack-Ansible Xena Documentation: https://docs.openstack.org/openstack-ansible/xena/ -.. _OpenStack-Ansible Xena series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/xena.html - - -Wallaby: EOM (end-of-maintenance) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Wallaby series was EOM-ed on April 12, 2024. - -* `OpenStack-Ansible Wallaby Documentation`_ - -* `OpenStack-Ansible Wallaby series release notes`_ - -.. _OpenStack-Ansible Wallaby Documentation: https://docs.openstack.org/openstack-ansible/wallaby/ -.. _OpenStack-Ansible Wallaby series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/wallaby.html - - -Victoria: EOM (end-of-maintenance) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Victoria series was EOM-ed on April 12, 2024. - -* `OpenStack-Ansible Victoria Documentation`_ - -* `OpenStack-Ansible Victoria series release notes`_ - -.. _OpenStack-Ansible Victoria Documentation: https://docs.openstack.org/openstack-ansible/victoria/ -.. _OpenStack-Ansible Victoria series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/victoria.html - - -Ussuri: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Ussuri series was EOL'd on 3 January 2024. - -* `OpenStack-Ansible Ussuri Documentation`_ - -* `OpenStack-Ansible Ussuri series release notes`_ - -.. _OpenStack-Ansible Ussuri Documentation: https://docs.openstack.org/openstack-ansible/ussuri/ -.. _OpenStack-Ansible Ussuri series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/ussuri.html - - -Train: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible Train series was EOL'd on 3 January 2024. - -* `OpenStack-Ansible Train Documentation`_ - -* `OpenStack-Ansible Train series release notes`_ - -.. _OpenStack-Ansible Train Documentation: https://docs.openstack.org/openstack-ansible/train/ -.. _OpenStack-Ansible Train series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/train.html - -Stein: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible's Stein series was EOL'd on 14 December 2023. - -* `OpenStack-Ansible Stein Documentation`_ - -* `OpenStack-Ansible Stein series release notes`_ - -.. _OpenStack-Ansible Stein Documentation: https://docs.openstack.org/openstack-ansible/stein/ -.. _OpenStack-Ansible Stein series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/stein.html - - -Rocky: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible's Rocky series was EOL'd on 11 July 2023. - -* `OpenStack-Ansible Rocky Documentation`_ - -* `OpenStack-Ansible Rocky series release notes`_ - -.. _OpenStack-Ansible Rocky Documentation: https://docs.openstack.org/openstack-ansible/rocky/ -.. _OpenStack-Ansible Rocky series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/rocky.html - -Queens: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~~ -OpenStack-Ansible's Queens series was EOL'd on 19 October 2022. - -* `OpenStack-Ansible Queens Documentation`_ - -* `OpenStack-Ansible Queens series release notes`_ - -.. _OpenStack-Ansible Queens Documentation: https://docs.openstack.org/openstack-ansible/queens/ -.. _OpenStack-Ansible Queens series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/queens.html - -Pike: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible's Pike series was EOL'd on 17 June 2022. - -* `OpenStack-Ansible Pike Documentation`_ - -* `OpenStack-Ansible Pike series release notes`_ - -.. _OpenStack-Ansible Pike Documentation: https://docs.openstack.org/openstack-ansible/pike/ -.. _OpenStack-Ansible Pike series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/pike.html - -Ocata: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible's Ocata series was EOL'd on 21 December 2022. - -* `OpenStack-Ansible Ocata Documentation`_ - -* `OpenStack-Ansible Ocata series release notes`_ - -.. _OpenStack-Ansible Ocata Documentation: https://docs.openstack.org/openstack-ansible/ocata/ -.. _OpenStack-Ansible Ocata series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/ocata.html - -Newton: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible's Newton series was EOL'd on 3 April 2018. - -To view the documentation only, -see the `OpenStack-Ansible Newton Documentation `_. - -.. _OpenStack-Ansible Newton series timeline: https://launchpad.net/openstack-ansible/newton -.. _OpenStack-Ansible Newton series release notes: https://docs.openstack.org/releasenotes/openstack-ansible/newton.html - -Mitaka: EOL (end-of-life) -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -OpenStack-Ansible's Mitaka series was EOL'd on 10 April 2017. - -To view the documentation only, -see the `OpenStack-Ansible Mitaka Documentation `_. diff --git a/inventory/dynamic_inventory.py b/inventory/dynamic_inventory.py index ebb8720a39..5a41a4b8d2 100755 --- a/inventory/dynamic_inventory.py +++ b/inventory/dynamic_inventory.py @@ -15,7 +15,6 @@ # # (c) 2014, Kevin Carter -import argparse import os import sys @@ -28,57 +27,8 @@ from osa_toolkit import generate -# Function kept in order to use relative pathing for the env.d directory -def args(arg_list): - """Setup argument Parsing.""" - parser = argparse.ArgumentParser( - usage='%(prog)s', - description='OpenStack Inventory Generator', - epilog='Inventory Generator Licensed "Apache 2.0"') - - parser.add_argument( - '--config', - help='Path containing the user defined configuration files', - required=False, - default=os.getenv('OSA_CONFIG_DIR', None) - ) - parser.add_argument( - '--list', - help='List all entries', - action='store_true' - ) - - parser.add_argument( - '--check', - help="Configuration check only, don't generate inventory", - action='store_true', - ) - - parser.add_argument( - '-d', - '--debug', - help=('Output debug messages to log file. ' - 'File is appended to, not overwritten'), - action='store_true', - default=False, - ) - - parser.add_argument( - '-e', - '--environment', - help=('Directory that contains the base env.d directory.\n' - 'Defaults to /inventory/.'), - required=False, - default=os.path.dirname(__file__), - ) - - return vars(parser.parse_args(arg_list)) - - def main(): - all_args = args(sys.argv[1:]) - output = generate.main(**all_args) - print(output) + generate.main() if __name__ == '__main__': diff --git a/inventory/group_vars/adjutant_all/source_git.yml b/inventory/group_vars/adjutant_all/source_git.yml index 36cb149dcc..2dfd87b380 100644 --- a/inventory/group_vars/adjutant_all/source_git.yml +++ b/inventory/group_vars/adjutant_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.07.2024 ### +### HEAD as of 29.09.2025 ### ## Adjutant service adjutant_git_repo: "{{ openstack_opendev_base_url }}/openstack/adjutant" -adjutant_git_install_branch: b8c1194f908fe2c2c9c497864ffb8025829d5ce0 +adjutant_git_install_branch: b50ec71c235be28c1dba40041d37bbae0fc6eaff adjutant_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/all/source_git.yml b/inventory/group_vars/all/source_git.yml index 4cd2e1648b..e95379ee65 100644 --- a/inventory/group_vars/all/source_git.yml +++ b/inventory/group_vars/all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 29.09.2025 ### ## Global Requirements requirements_git_repo: "{{ openstack_opendev_base_url }}/openstack/requirements" -requirements_git_install_branch: 9a8c2060724233415cb3d751947eaf30f7936d58 +requirements_git_install_branch: 2c31269cffe9d6e5414822882d6158934df536ee requirements_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/blazar_all/source_git.yml b/inventory/group_vars/blazar_all/source_git.yml index c5e5e94d0b..592364a275 100644 --- a/inventory/group_vars/blazar_all/source_git.yml +++ b/inventory/group_vars/blazar_all/source_git.yml @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 29.09.2025 ### ## Blazar service blazar_git_repo: "{{ openstack_opendev_base_url }}/openstack/blazar" -blazar_git_install_branch: 03630d9ffd3d0b585cb337400fe6c0c6facd9aac +blazar_git_install_branch: 2484089d96d055f3ab89d46bc7221478e0d4fc65 blazar_git_track_branch: stable/2024.2 ## Blazar Nova Service diff --git a/inventory/group_vars/ceilometer_all/source_git.yml b/inventory/group_vars/ceilometer_all/source_git.yml index a3e881637a..cc58e01cd8 100644 --- a/inventory/group_vars/ceilometer_all/source_git.yml +++ b/inventory/group_vars/ceilometer_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 30.09.2024 ### +### HEAD as of 29.09.2025 ### ## Ceilometer service ceilometer_git_repo: "{{ openstack_opendev_base_url }}/openstack/ceilometer" -ceilometer_git_install_branch: a36cc766ca7366ce09bd41f32c81b9f28c6e3675 +ceilometer_git_install_branch: c99c0c9f6d491b0bf103705221bc6cdafadfb395 ceilometer_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/cinder_all/source_git.yml b/inventory/group_vars/cinder_all/source_git.yml index aa23b1f8ab..8b2772bfcc 100644 --- a/inventory/group_vars/cinder_all/source_git.yml +++ b/inventory/group_vars/cinder_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 14.01.2026 ### ## Cinder service cinder_git_repo: "{{ openstack_opendev_base_url }}/openstack/cinder" -cinder_git_install_branch: 9dbf2967bee1060ae7419897942dfe554432a742 +cinder_git_install_branch: 7b390f1022a5ec176fe8774f642fbca499127d1a cinder_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/cloudkitty_all/source_git.yml b/inventory/group_vars/cloudkitty_all/source_git.yml index e440829a06..497589e9ef 100644 --- a/inventory/group_vars/cloudkitty_all/source_git.yml +++ b/inventory/group_vars/cloudkitty_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 29.09.2025 ### ## Cloudkitty service cloudkitty_git_repo: "{{ openstack_opendev_base_url }}/openstack/cloudkitty" -cloudkitty_git_install_branch: 82b0d01fae653f2f702d3be49a2dce01b69f89a0 +cloudkitty_git_install_branch: b7a4be00afa6a6dc202abadde31021164e610304 cloudkitty_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/designate_all/source_git.yml b/inventory/group_vars/designate_all/source_git.yml index 4549c5191f..6b74fa8905 100644 --- a/inventory/group_vars/designate_all/source_git.yml +++ b/inventory/group_vars/designate_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 26.05.2025 ### ## Designate service designate_git_repo: "{{ openstack_opendev_base_url }}/openstack/designate" -designate_git_install_branch: a2f6f07e2ca7d1b67b8b221bed0529e93aebc90a +designate_git_install_branch: 5bfc35864c28a97ded6104dea05fa9691a7f14d8 designate_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/glance_all/source_git.yml b/inventory/group_vars/glance_all/source_git.yml index 7afbbf63b4..c834e4f28d 100644 --- a/inventory/group_vars/glance_all/source_git.yml +++ b/inventory/group_vars/glance_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 24.06.2025 ### ## Glance service glance_git_repo: "{{ openstack_opendev_base_url }}/openstack/glance" -glance_git_install_branch: 0dcb9aff2c8f96e33a3dc1f40b5cb3c4cee758ad +glance_git_install_branch: 097f38158189efc5c7d52fd56467455a58442c73 glance_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/gnocchi_all/source_git.yml b/inventory/group_vars/gnocchi_all/source_git.yml index edbe0e3ef9..a627d1a3a3 100644 --- a/inventory/group_vars/gnocchi_all/source_git.yml +++ b/inventory/group_vars/gnocchi_all/source_git.yml @@ -13,12 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 08.05.2025 ### ## Gnocchi service ## This service has a different stable branch strategy to the rest of OpenStack. ## The SHA is recorded here to make the SHA updating easier. gnocchi_git_repo: "{{ openstack_github_base_url }}/gnocchixyz/gnocchi" -gnocchi_git_install_branch: b6895c44b5cc36a31176058a9b1e5ef6f65c31fb +gnocchi_git_install_branch: 1554674704e39c69b1193f7e1184407c7f45bf8f gnocchi_git_track_branch: stable/4.6 diff --git a/inventory/group_vars/heat_all/source_git.yml b/inventory/group_vars/heat_all/source_git.yml index 85059bd557..2fdff704b2 100644 --- a/inventory/group_vars/heat_all/source_git.yml +++ b/inventory/group_vars/heat_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 25.11.2025 ### ## Heat service heat_git_repo: "{{ openstack_opendev_base_url }}/openstack/heat" -heat_git_install_branch: 64bdbb9bc66c38760989dd7bb2574ccc14069872 +heat_git_install_branch: 50c081b7a5747c3c76e10f77790a159860d977e6 heat_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/horizon_all/source_git.yml b/inventory/group_vars/horizon_all/source_git.yml index dca76b45b0..6ee5337811 100644 --- a/inventory/group_vars/horizon_all/source_git.yml +++ b/inventory/group_vars/horizon_all/source_git.yml @@ -13,16 +13,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 14.01.2026 ### ## Horizon service horizon_git_repo: "{{ openstack_opendev_base_url }}/openstack/horizon" -horizon_git_install_branch: e70198f486afc59621780c2de4d48c990300cb31 +horizon_git_install_branch: fdaaf6e1a1708deeb6b7a24ab0961e2480337e1c horizon_git_track_branch: stable/2024.2 ## Adjutant dashboard plugin adjutant_dashboard_git_repo: "{{ openstack_opendev_base_url }}/openstack/adjutant-ui" -adjutant_dashboard_git_install_branch: bab31ad14dbf75019abf3132363910614865b23e +adjutant_dashboard_git_install_branch: c41568a2617316e1b2af98b039d26d0c2e1e642f adjutant_dashboard_git_track_branch: stable/2024.2 ## Barbican dashboard plugin @@ -52,7 +52,7 @@ ironic_dashboard_git_track_branch: stable/2024.2 ## Horizon Magnum dashboard plugin magnum_dashboard_git_repo: "{{ openstack_opendev_base_url }}/openstack/magnum-ui" -magnum_dashboard_git_install_branch: 5f285a0863484e521d18d2b4f2fcf6f04e543f78 +magnum_dashboard_git_install_branch: 6aff149e855b03b75778b163d5ea03bfe575f6b2 magnum_dashboard_git_track_branch: stable/2024.2 ## Horizon Masakari dashboard plugin @@ -77,5 +77,5 @@ neutron_vpnaas_dashboard_git_track_branch: stable/2024.2 ## Horizon Neutron FWaaS dashboard plugin neutron_fwaas_dashboard_git_repo: "{{ openstack_opendev_base_url }}/openstack/neutron-fwaas-dashboard" -neutron_fwaas_dashboard_git_install_branch: 94a00c572853b17999d0b4478d98b76eaa3864c8 +neutron_fwaas_dashboard_git_install_branch: 098fd216a10465d5144c58d3063285d14839d2a0 neutron_fwaas_dashboard_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/ironic_all/source_git.yml b/inventory/group_vars/ironic_all/source_git.yml index b17e6ed3c3..7701c1d15d 100644 --- a/inventory/group_vars/ironic_all/source_git.yml +++ b/inventory/group_vars/ironic_all/source_git.yml @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 14.01.2026 ### ## Ironic service ironic_git_repo: "{{ openstack_opendev_base_url }}/openstack/ironic" -ironic_git_install_branch: 17914538dfd1657cd9ba7e44ea84d9a5c8a1ae1a +ironic_git_install_branch: 428cc528cc7b288d3376ff0d5048b9a90ee8cca8 ironic_git_track_branch: stable/2024.2 ## Ironic inspector service diff --git a/inventory/group_vars/keystone_all/source_git.yml b/inventory/group_vars/keystone_all/source_git.yml index 1f63e7558d..578d8808f2 100644 --- a/inventory/group_vars/keystone_all/source_git.yml +++ b/inventory/group_vars/keystone_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 14.01.2026 ### ## Keystone service keystone_git_repo: "{{ openstack_opendev_base_url }}/openstack/keystone" -keystone_git_install_branch: 47891f4ae8fd7876e5a7657f58c32c371feeddc3 +keystone_git_install_branch: 489e170f8161dac7c8388a9bd5864078a1338cc9 keystone_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/magnum_all/source_git.yml b/inventory/group_vars/magnum_all/source_git.yml index 07529da2ee..c0d1b05601 100644 --- a/inventory/group_vars/magnum_all/source_git.yml +++ b/inventory/group_vars/magnum_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 28.11.2024 ### +### HEAD as of 29.09.2025 ### ## Magnum service magnum_git_repo: "{{ openstack_opendev_base_url }}/openstack/magnum" -magnum_git_install_branch: 71729a8d716ef7cd6a869408e35d60e96bc125d8 +magnum_git_install_branch: b8a351b99b40c0aa123be3d51a4d0b73e66aa2dc magnum_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/manila_all/source_git.yml b/inventory/group_vars/manila_all/source_git.yml index 10ea378bc1..d22e6af2c7 100644 --- a/inventory/group_vars/manila_all/source_git.yml +++ b/inventory/group_vars/manila_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 06.11.2025 ### ## Manila service manila_git_repo: "{{ openstack_opendev_base_url }}/openstack/manila" -manila_git_install_branch: 052e324e26b6ebdc4b8e011df9f41b43f1cea09b +manila_git_install_branch: 338bcb77f8d36c422e616e0349b7bbf297c63c3a manila_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/mistral_all/source_git.yml b/inventory/group_vars/mistral_all/source_git.yml index 6e1afb571a..db0e4ba887 100644 --- a/inventory/group_vars/mistral_all/source_git.yml +++ b/inventory/group_vars/mistral_all/source_git.yml @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 30.09.2024 ### +### HEAD as of 29.09.2025 ### ## Mistral service mistral_git_repo: "{{ openstack_opendev_base_url }}/openstack/mistral" -mistral_git_install_branch: c4d32f8ae4c56955a97031f087b8e269ec8e45ab +mistral_git_install_branch: cc997d3b3b3b5274104c79f22e006e9bfa04be4f mistral_git_track_branch: stable/2024.2 mistral_extra_git_repo: "{{ openstack_opendev_base_url }}/openstack/mistral-extra" diff --git a/inventory/group_vars/neutron_all/source_git.yml b/inventory/group_vars/neutron_all/source_git.yml index cd43db8972..7f46c2c94c 100644 --- a/inventory/group_vars/neutron_all/source_git.yml +++ b/inventory/group_vars/neutron_all/source_git.yml @@ -13,19 +13,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 28.11.2024 ### +### HEAD as of 14.01.2026 ### ## Neutron service neutron_git_repo: "{{ openstack_opendev_base_url }}/openstack/neutron" -neutron_git_install_branch: 5cdeab2bd48129375bef845aac3d8c59f24d3e0e +neutron_git_install_branch: 796278e55567d7226188735af99e49243daf9260 neutron_git_track_branch: stable/2024.2 neutron_vpnaas_git_repo: "{{ openstack_opendev_base_url }}/openstack/neutron-vpnaas" -neutron_vpnaas_git_install_branch: 990e478b1e6db459b6cb9aec53ce808e2957bb65 +neutron_vpnaas_git_install_branch: 11ffc53800e528d0b0544f7467a7487e0822bd3f neutron_vpnaas_git_track_branch: stable/2024.2 neutron_fwaas_git_repo: "{{ openstack_opendev_base_url }}/openstack/neutron-fwaas" -neutron_fwaas_git_install_branch: 7d40be7362ceafe39774e9dcd388863dff153d2e +neutron_fwaas_git_install_branch: 36db6ddb6a2369377bcf82b37067319304d075fd neutron_fwaas_git_track_branch: stable/2024.2 neutron_dynamic_routing_git_repo: "{{ openstack_opendev_base_url }}/openstack/neutron-dynamic-routing" @@ -41,7 +41,7 @@ networking_sfc_git_install_branch: 2e64dc0f7f9893c83d30878b95df6edca4d25cb9 networking_sfc_git_track_branch: stable/2024.2 networking_generic_switch_git_repo: "{{ openstack_opendev_base_url}}/openstack/networking-generic-switch" -networking_generic_switch_git_install_branch: 58e5d5039e6bddaad5e8a1802d44aec92b71f14f +networking_generic_switch_git_install_branch: a6ad4a1a031a4ef9c5bb7f824f2414459dab2d5d networking_generic_switch_git_track_branch: stable/2024.2 networking_nsx_git_repo: "{{ openstack_opendev_base_url }}/x/vmware-nsx" @@ -49,7 +49,7 @@ networking_nsx_git_install_branch: 715cb5fc1174b9226f043e49ffd389add44f070a networking_nsx_git_track_branch: master networking_nsxlib_git_repo: "{{ openstack_opendev_base_url }}/x/vmware-nsxlib" -networking_nsxlib_git_install_branch: c8a80f7e6f74f4c87311d4e58f5e122f209dd308 +networking_nsxlib_git_install_branch: 948a72da034acdd74a08eded88aa19b080e40927 networking_nsxlib_git_track_branch: master networking_baremetal_git_repo: "{{ openstack_opendev_base_url }}/openstack/networking-baremetal" @@ -57,5 +57,5 @@ networking_baremetal_git_install_branch: 1fba63ce21619d3fe70117c6679e53629c612bc networking_baremetal_git_track_branch: stable/2024.2 networking_ovn_bgp_git_repo: "{{ openstack_opendev_base_url }}/openstack/ovn-bgp-agent" -networking_ovn_bgp_git_install_branch: 02b7a8efb0189b857746f9f50cb5983df49b893d +networking_ovn_bgp_git_install_branch: 221a35eb448d280ae169824ff4fd4de1ebec89d5 networking_ovn_bgp_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/nova_all/source_git.yml b/inventory/group_vars/nova_all/source_git.yml index 051e9e1377..e924b306d2 100644 --- a/inventory/group_vars/nova_all/source_git.yml +++ b/inventory/group_vars/nova_all/source_git.yml @@ -23,11 +23,11 @@ ## * All items with this file should be separated by `name_` note that the name of the ## package should be one long name with no additional `_` separating it. -### HEAD as of 28.11.2024 ### +### HEAD as of 14.01.2026 ### ## NOVNC from source novncproxy_git_repo: "{{ openstack_github_base_url }}/novnc/noVNC" -novncproxy_git_install_branch: 52ddb20d2597c4d6c72cedce447c6fe9998308d4 +novncproxy_git_install_branch: 6d0a9746657b085c11309dc5356083fcbb018526 novncproxy_git_track_branch: master ## spice-html5 from source @@ -37,5 +37,5 @@ spicehtml5_git_track_branch: master ## Nova service nova_git_repo: "{{ openstack_opendev_base_url }}/openstack/nova" -nova_git_install_branch: 89c07d735319801b192ddc1db0d6a8ce7abea2fc +nova_git_install_branch: 19df809bb4f8baf6739a2f7b16ae3b13c01efa93 nova_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/octavia_all/source_git.yml b/inventory/group_vars/octavia_all/source_git.yml index a3acec4894..fdc674c44e 100644 --- a/inventory/group_vars/octavia_all/source_git.yml +++ b/inventory/group_vars/octavia_all/source_git.yml @@ -13,14 +13,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 14.01.2026 ### ## Octavia service octavia_git_repo: "{{ openstack_opendev_base_url }}/openstack/octavia" -octavia_git_install_branch: 7aa08d17ffc93596a58194bd3ba0acaaddd25e3a +octavia_git_install_branch: 577ff3d6712f0235b3fda3ae3f89ce1b5582d2a8 octavia_git_track_branch: stable/2024.2 ## Octavia OVN provider octavia_ovn_octavia_provider_git_repo: "{{ openstack_opendev_base_url }}/openstack/ovn-octavia-provider" -octavia_ovn_octavia_provider_git_install_branch: 156ca765008943d2f6de4f2d14b23e56fc660945 +octavia_ovn_octavia_provider_git_install_branch: f673dc05ef46d46fb1ed10004a8535a63396c603 octavia_ovn_octavia_provider_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/placement_all/source_git.yml b/inventory/group_vars/placement_all/source_git.yml index 449eca768b..8008241bc6 100644 --- a/inventory/group_vars/placement_all/source_git.yml +++ b/inventory/group_vars/placement_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 30.09.2024 ### +### HEAD as of 14.01.2026 ### ## Placement service placement_git_repo: "{{ openstack_opendev_base_url }}/openstack/placement" -placement_git_install_branch: 901dc8274a3198c38bd0faa515c729903d5d1e0d +placement_git_install_branch: 8345235b183c5fcf4dc5c9f7b075fd99168db022 placement_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/repo_all.yml b/inventory/group_vars/repo_all.yml index 3a574626fd..b2931a629a 100644 --- a/inventory/group_vars/repo_all.yml +++ b/inventory/group_vars/repo_all.yml @@ -28,6 +28,12 @@ repo_server_systemd_mounts: type: glusterfs state: 'started' enabled: true + config_overrides: + Unit: + BindsTo: glusterd.service + After: + ? glusterd.service + ? network-online.target openstack_repo_server_enable_glusterfs: True diff --git a/inventory/group_vars/skyline_all/source_git.yml b/inventory/group_vars/skyline_all/source_git.yml index 579613b20c..02f1a11ff2 100644 --- a/inventory/group_vars/skyline_all/source_git.yml +++ b/inventory/group_vars/skyline_all/source_git.yml @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 26.11.2024 ### +### HEAD as of 06.11.2025 ### ## Skyline service skyline_git_repo: "{{ openstack_opendev_base_url }}/openstack/skyline-apiserver" -skyline_git_install_branch: c8bf698666044bc05b92ddde7dc780fe90c1b538 +skyline_git_install_branch: 0e891e9299889814a585ec22807d8cb59c88797a skyline_git_track_branch: stable/2024.2 skyline_console_git_repo: "{{ openstack_opendev_base_url }}/openstack/skyline-console" diff --git a/inventory/group_vars/swift_all/source_git.yml b/inventory/group_vars/swift_all/source_git.yml index a33964e396..476646dc38 100644 --- a/inventory/group_vars/swift_all/source_git.yml +++ b/inventory/group_vars/swift_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 30.09.2024 ### +### HEAD as of 06.11.2025 ### ## Swift service swift_git_repo: "{{ openstack_opendev_base_url }}/openstack/swift" -swift_git_install_branch: 27503ac2df5cb77b5fdf29196e555178ddbfdef7 +swift_git_install_branch: 9d495089a7aa6c5b222037bc699075d3c3005fa4 swift_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/trove_all/source_git.yml b/inventory/group_vars/trove_all/source_git.yml index 35d7e48199..555a0f345e 100644 --- a/inventory/group_vars/trove_all/source_git.yml +++ b/inventory/group_vars/trove_all/source_git.yml @@ -13,9 +13,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 28.11.2024 ### +### HEAD as of 26.02.2025 ### ## Trove service trove_git_repo: "{{ openstack_opendev_base_url }}/openstack/trove" -trove_git_install_branch: 4c191c30322a6fac2acfe6743daf151630bf8480 +trove_git_install_branch: 93efb5f57f7bc6f683c5a5829ba9d7c955b30219 trove_git_track_branch: stable/2024.2 diff --git a/inventory/group_vars/zun_all/source_git.yml b/inventory/group_vars/zun_all/source_git.yml index 716a7172db..aef7151e90 100644 --- a/inventory/group_vars/zun_all/source_git.yml +++ b/inventory/group_vars/zun_all/source_git.yml @@ -13,11 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -### HEAD as of 30.09.2024 ### +### HEAD as of 08.05.2025 ### ## Zun service zun_git_repo: "{{ openstack_opendev_base_url }}/openstack/zun" -zun_git_install_branch: e5a1e10a4d95684e26b71084239f82af4bd5b41d +zun_git_install_branch: 49566b75957a604f85b308069623b9e9bfb43ae7 zun_git_track_branch: stable/2024.2 ## Zun kuryr service diff --git a/osa_toolkit/generate.py b/osa_toolkit/generate.py old mode 100755 new mode 100644 index 117d14e6de..ab932886e9 --- a/osa_toolkit/generate.py +++ b/osa_toolkit/generate.py @@ -15,17 +15,23 @@ # # (c) 2014, Kevin Carter +import argparse import copy import json import logging -import netaddr -from osa_toolkit import dictutils as du -from osa_toolkit import filesystem as filesys -from osa_toolkit import ip +from os import getenv as os_env +from os import path as os_path import re +import sys import uuid import warnings +import netaddr + +from osa_toolkit import __path__ as repo_path +from osa_toolkit import dictutils as du +from osa_toolkit import filesystem as filesys +from osa_toolkit import ip logger = logging.getLogger('osa-inventory') @@ -50,6 +56,53 @@ ] +def args(argv): + """Setup argument Parsing.""" + parser = argparse.ArgumentParser( + usage='%(prog)s', + description='OpenStack Inventory Generator', + epilog='Inventory Generator Licensed "Apache 2.0"') + + parser.add_argument( + '--config', + help='Path containing the user defined configuration files', + required=False, + default=os_env('OSA_CONFIG_DIR', None) + ) + + parser.add_argument( + '--list', + help='List all entries', + action='store_true' + ) + + parser.add_argument( + '--check', + help="Configuration check only, don't generate inventory", + action='store_true', + ) + + parser.add_argument( + '-d', + '--debug', + help=('Output debug messages to log file. ' + 'File is appended to, not overwritten'), + action='store_true', + default=False, + ) + + parser.add_argument( + '-e', + '--environment', + help=('Directory that contains the base env.d directory.\n' + 'Defaults to /inventory/.'), + required=False, + default=f'{os_path.dirname(repo_path[0])}/inventory', + ) + + return vars(parser.parse_args(argv)) + + class MultipleHostsWithOneIPError(Exception): def __init__(self, ip, assigned_host, new_host): self.ip = ip @@ -290,13 +343,14 @@ def _append_to_host_groups(inventory, container_type, assignment, host_type, container = hdata['container_name'] = hname else: container = hdata['container_name'] + container_name = re.sub(r'_', '-', f'{container}') component = hdata.get('component') if container.startswith(host_type): if 'physical_host' not in hdata: hdata['physical_host'] = host_type - if container.startswith('{}-'.format(type_and_name)): + if container_name.startswith('{}-'.format(type_and_name)): appended = du.append_if(array=iah, item=container) if appended: logger.debug("Added host %s to %s hosts", @@ -307,7 +361,7 @@ def _append_to_host_groups(inventory, container_type, assignment, host_type, if appended: logger.debug("Added is_metal host %s to %s hosts", container, assignment) - if container.startswith('{}-'.format(type_and_name)): + if container_name.startswith('{}-'.format(type_and_name)): appended = du.append_if(array=iph, item=container) if appended: logger.debug("Added host %s to %s hosts", @@ -1138,7 +1192,11 @@ def _prepare_debug_logger(): logger.info("Beginning new inventory run") -def main(config=None, check=False, debug=False, environment=None, **kwargs): +def generate(config=None, + check=False, + debug=False, + environment=None, + **kwargs): """Run the main application. :param config: ``str`` Directory from which to pull configs and overrides @@ -1262,3 +1320,10 @@ def main(config=None, check=False, debug=False, environment=None, **kwargs): filesys.save_inventory(inventory_json, inv_path) return inventory_json + + +def main(argv=sys.argv[1:]): + + all_args = args(argv) + data = generate(**all_args) + print(data) diff --git a/playbooks/openstack-resources.yml b/playbooks/openstack-resources.yml index 3551bff829..2eb5035ee3 100644 --- a/playbooks/openstack-resources.yml +++ b/playbooks/openstack-resources.yml @@ -14,7 +14,7 @@ # limitations under the License. - name: Create requested OpenStack Resources - hosts: "{{ openstack_service_setup_host | default('localhost') }}" + hosts: "{{ openstack_service_setup_host | default(groups['utility_all'][0] | default('localhost')) }}" tasks: - name: Setup installation variables include_role: diff --git a/releasenotes/notes/aa_disable_respect_code-f15967693989df79.yaml b/releasenotes/notes/aa_disable_respect_code-f15967693989df79.yaml new file mode 100644 index 0000000000..ce5a8e6fde --- /dev/null +++ b/releasenotes/notes/aa_disable_respect_code-f15967693989df79.yaml @@ -0,0 +1,8 @@ +--- +fixes: + - | + ``os_neutron`` role was ignoring actual exit code of ``aa-disable`` command, + when it was exiting abnormally. It could result in unobvious failures later + in neutron agents. + This was fixed and the role will fail if ``aa-disable`` fails to disable + required apparmor profiles instead of suppressing the issue. diff --git a/releasenotes/notes/archive_mariadb-2c04a473b25a3bbb.yaml b/releasenotes/notes/archive_mariadb-2c04a473b25a3bbb.yaml new file mode 100644 index 0000000000..2d65902db3 --- /dev/null +++ b/releasenotes/notes/archive_mariadb-2c04a473b25a3bbb.yaml @@ -0,0 +1,11 @@ +--- +fixes: + - | + With change of policy regarding stored versions of MariaDB in + ``mirror.mariadb.org``, currently pinned MariaDB versions were removed + from the repo. + With a switch to ``archive.mariadb.org``, this should resolve failing + installation for MariaDB. +other: + - | + Mirror for MariaDB has been switched to ``archive.mariadb.org`` diff --git a/releasenotes/notes/dep_repo_change-bfbb23a12ffb0fb4.yaml b/releasenotes/notes/dep_repo_change-bfbb23a12ffb0fb4.yaml new file mode 100644 index 0000000000..8a251309f8 --- /dev/null +++ b/releasenotes/notes/dep_repo_change-bfbb23a12ffb0fb4.yaml @@ -0,0 +1,5 @@ +--- +other: + - | + Debian/Ubuntu Repository for RabbitMQ has changed from ppa1.rabbitmq.com + to deb1.rabbitmq.com and deb2.rabbitmq.com. diff --git a/releasenotes/notes/gluster_mount_wait_service-9d7f6f8850cce6d2.yaml b/releasenotes/notes/gluster_mount_wait_service-9d7f6f8850cce6d2.yaml new file mode 100644 index 0000000000..9ee7547e59 --- /dev/null +++ b/releasenotes/notes/gluster_mount_wait_service-9d7f6f8850cce6d2.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed a race condition on start of the repo container, when + var-www-mount.repo is started before glusterd.service is fully + operational. diff --git a/releasenotes/notes/lxc_apparmor_issue-e25bbc97e7f2ba62.yaml b/releasenotes/notes/lxc_apparmor_issue-e25bbc97e7f2ba62.yaml new file mode 100644 index 0000000000..e0592b5c32 --- /dev/null +++ b/releasenotes/notes/lxc_apparmor_issue-e25bbc97e7f2ba62.yaml @@ -0,0 +1,10 @@ +--- +issues: + - | + It was discovered that LXC 5.0.3 in Ubuntu 24.04 (Noble Numbat) + contains packaging issue resulting in apparmor profiling conflicts. + A temporary workaround has been applied in ``lxc_hosts`` role to + apply a hotfix to the profile. However, it will be wiped with the + next update of ``liblxc-common`` package. + Please, check the `bug #2110635 `_ + for more details on the issue. diff --git a/releasenotes/notes/neutron_uwsgi_re_disable-45f28da6a4e29e54.yaml b/releasenotes/notes/neutron_uwsgi_re_disable-45f28da6a4e29e54.yaml new file mode 100644 index 0000000000..e8ddbd27be --- /dev/null +++ b/releasenotes/notes/neutron_uwsgi_re_disable-45f28da6a4e29e54.yaml @@ -0,0 +1,17 @@ +--- +upgrade: + - | + A uWSGI for Neutron has been disabled again by default in favor of eventlet + server. This also stops and disables following services needed for uWSGI mode: + + * ``neutron-periodic-workers`` + * ``neutron-ovn-maintenance-worker`` + * ``neutron-rpc-server`` + +fixes: + - | + A `bug #2096937 `_ + related to HashRing generation has been reported when using uWSGI + with Neutron. In order to quickly address the bug, uWSGI mode has been + disabled again by default for Neutron until a proper fix is provided for + uWSGI. diff --git a/releasenotes/notes/ossa-2025-002-78a99472c2d04272.yaml b/releasenotes/notes/ossa-2025-002-78a99472c2d04272.yaml new file mode 100644 index 0000000000..6497e9ea59 --- /dev/null +++ b/releasenotes/notes/ossa-2025-002-78a99472c2d04272.yaml @@ -0,0 +1,4 @@ +--- +security: + - | + Includes patched versions of Keystone and Swift for `OSSA-2025-002 `_ diff --git a/releasenotes/notes/ovn_bgp_git_track-51f2f484516aad31.yaml b/releasenotes/notes/ovn_bgp_git_track-51f2f484516aad31.yaml new file mode 100644 index 0000000000..d134ffc83a --- /dev/null +++ b/releasenotes/notes/ovn_bgp_git_track-51f2f484516aad31.yaml @@ -0,0 +1,10 @@ +--- +upgrade: + - | + Variable ``networking_ovn_bgp_install_branch`` has been renamed to + ``networking_ovn_bgp_git_install_branch`` in order to match existing + naming convention. +fixes: + - | + Fixes SHA pinning and installation of ``ovn-bgp-agent``, as SHA pinning + and role were using different variable names. diff --git a/releasenotes/notes/rabbitmq_ensure_no_queue_mirroring-c032f6e169f09c2d.yaml b/releasenotes/notes/rabbitmq_ensure_no_queue_mirroring-c032f6e169f09c2d.yaml new file mode 100644 index 0000000000..ca9f0db47c --- /dev/null +++ b/releasenotes/notes/rabbitmq_ensure_no_queue_mirroring-c032f6e169f09c2d.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Fixed RabbitMQ upgrade issue for older deployments which had + previously used RabbitMQ Classic Queue mirroring (HA Queues) + by implementing an upgrade check and disabling leftover + policies on upgrade. diff --git a/releasenotes/notes/rpm_gpg_url-ae026bf0b47b845c.yaml b/releasenotes/notes/rpm_gpg_url-ae026bf0b47b845c.yaml new file mode 100644 index 0000000000..ac905fa453 --- /dev/null +++ b/releasenotes/notes/rpm_gpg_url-ae026bf0b47b845c.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + GPG key URLs for RabbitMQ and Erlang were updated to relevant ones + for RPM-based distributions. + This fixes RabbitMQ/Erlang installation for CentOS and Rocky Linux. diff --git a/scripts/bootstrap-ansible.sh b/scripts/bootstrap-ansible.sh index 17a450d79b..e6214dde88 100755 --- a/scripts/bootstrap-ansible.sh +++ b/scripts/bootstrap-ansible.sh @@ -98,7 +98,7 @@ esac case ${DISTRO_ID} in rocky|centos|rhel) dnf -y install \ - git /usr/bin/curl autoconf gcc gcc-c++ nc \ + git-core /usr/bin/curl gcc gcc-c++ nc \ systemd-devel pkgconf \ openssl-devel libffi-devel \ rsync wget diff --git a/setup.cfg b/setup.cfg index 4376fbbe33..e1d27624fe 100644 --- a/setup.cfg +++ b/setup.cfg @@ -28,4 +28,4 @@ packages = osa_toolkit [entry_points] console_scripts = - openstack-ansible-inventory = inventory.dynamic_inventory:main + openstack-ansible-inventory = osa_toolkit.generate:main diff --git a/sync/doc/requirements.txt b/sync/doc/requirements.txt new file mode 100644 index 0000000000..f177bdb0a2 --- /dev/null +++ b/sync/doc/requirements.txt @@ -0,0 +1,16 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. + +# WARNING: +# This file is maintained in the openstack-ansible-tests repository. +# https://opendev.org/openstack/openstack-ansible/src/branch/master/sync/doc/requirements.txt +# If you need to modify this file, update the one in the +# openstack-ansible-tests repository. Once it merges there, the changes will +# automatically be proposed to all the repositories which use it. + +sphinx>=2.0.0,!=2.1.0 # BSD +sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD +openstackdocstheme>=2.2.1 # Apache-2.0 +reno>=3.1.0 # Apache-2.0 +doc8>=0.6.0 # Apache-2.0 diff --git a/sync/gen-projects-list.sh b/sync/gen-projects-list.sh new file mode 100755 index 0000000000..fb8d276705 --- /dev/null +++ b/sync/gen-projects-list.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +# Copyright 2017, SUSE LINUX GmbH. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Get list of all the maintained OpenStack Ansible projects + +# 'exclude_projects' variable should contain all the OSA projects +# listed in https://opendev.org/ but should be excluded +# from the generated list for various reasons (ie unmaintained, +# not applicable etc) + +# Do not leave empty lines since grep -F will not match anything + +set -e + +exclude_project() { + excluded_projects+="openstack/$1 " +} + +extra_include_project() { + extra_included_projects+="openstack/$1 " +} + +############## EXCLUDED PROJECTS ###################### +# +# List of the projects that need to be excluded for various +# reasons +# +# retired projects +exclude_project openstack-ansible-os_freezer +exclude_project openstack-ansible-os_swift_sync +exclude_project openstack-ansible-pip_lock_down +exclude_project openstack-ansible-py_from_git +exclude_project openstack-ansible-security +# integrated is where we are so we know it's maintained +exclude_project openstack-ansible +# +############## END OF EXCLUDED PROJECTS ############### + +############## INCLUDED PROJECTS ###################### +# +# List of additional projects that need to be included for various +# reasons +# +# ansible-hardening. Used by AIO in favor of the retired +# openstack-ansible-security +extra_include_project ansible-config_template +extra_include_project ansible-hardening +extra_include_project ansible-role-python_venv_build +extra_include_project ansible-role-systemd_mount +extra_include_project ansible-role-systemd_networkd +extra_include_project ansible-role-systemd_service +############## END OF INCLUDED PROJECTS ############### + +# Replace spaces with newlines as expected by grep -F +excluded_projects="$(echo ${excluded_projects} | tr ' ' '\n')" + +# The output should only contain a list of projects or an empty string. +# Anything else will probably make the CI bots to fail. + +ssh -p 29418 proposal-bot@review.opendev.org gerrit ls-projects --prefix openstack/openstack-ansible- | \ + grep -v -F "${excluded_projects}" | uniq | sort -n + +for x in ${extra_included_projects[@]}; do + echo $x +done diff --git a/test-requirements.txt b/test-requirements.txt index 88615ad250..3e6b72babb 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,14 +3,15 @@ # process, which may cause wedges in the gate later. # Keep hacking first, it pulls in the right versions of flake8, mccabe and pyflakes -hacking>=3.2.0,<4.0 # Apache-2.0 +hacking>=3.2.0,<=7.0.0 # Apache-2.0 bashate>=0.5.1 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 virtualenv>=14.0.6 # MIT -# TODO(noonedeadpunk) Upgrade linters versions and drop pycodestyle -# once we stop doing linters check for the integrated repo with -# openstack-ansible-tests/test-ansible-lint.sh -flake8==3.8.3 # MIT -ansible-lint==6.19.0 # MIT +flake8 # MIT +ansible-lint==24.12.2 # MIT netaddr>=0.7.18 # BSD Jinja2>=2.10 # BSD + +# NOTE(jrosser) Ensure that we are using the same version of ansible +# for test cases such as linters, as we do for deployments +ansible-core==2.17.5 diff --git a/tests/roles/bootstrap-host/vars/redhat.yml b/tests/roles/bootstrap-host/vars/redhat.yml index 4cc683fc21..8633d7f742 100644 --- a/tests/roles/bootstrap-host/vars/redhat.yml +++ b/tests/roles/bootstrap-host/vars/redhat.yml @@ -16,7 +16,7 @@ packages_install: - dbus - ethtool - - git + - git-core - iputils - lvm2 - python3 diff --git a/tests/test_inventory.py b/tests/test_inventory.py index ed8fd0001a..ff90303065 100644 --- a/tests/test_inventory.py +++ b/tests/test_inventory.py @@ -29,7 +29,6 @@ sys.path.append(path.join(os.getcwd(), INV_DIR)) -import dynamic_inventory # noqa: E402 from osa_toolkit import dictutils # noqa: E402 from osa_toolkit import filesystem as fs # noqa: E402 from osa_toolkit import generate as di # noqa: E402 @@ -102,7 +101,7 @@ def get_inventory(clean=True, extra_args=None): if extra_args: args.update(extra_args) try: - inventory_string = di.main(**args) + inventory_string = di.generate(**args) inventory = json.loads(inventory_string) return inventory finally: @@ -114,16 +113,16 @@ def get_inventory(clean=True, extra_args=None): class TestArgParser(unittest.TestCase): def test_no_args(self): - arg_dict = dynamic_inventory.args([]) + arg_dict = di.args([]) self.assertIsNone(arg_dict['config']) self.assertEqual(arg_dict['list'], False) def test_list_arg(self): - arg_dict = dynamic_inventory.args(['--list']) + arg_dict = di.args(['--list']) self.assertEqual(arg_dict['list'], True) def test_config_arg(self): - arg_dict = dynamic_inventory.args(['--config', + arg_dict = di.args(['--config', '/etc/openstack_deploy']) self.assertEqual(arg_dict['config'], '/etc/openstack_deploy') @@ -1269,7 +1268,7 @@ def duplicate_ip(self): self.user_defined_config['dashboard_hosts']['bogus'] = ip def test_checking_good_config(self): - output = di.main(config=TARGET_DIR, check=True, + output = di.generate(config=TARGET_DIR, check=True, environment=BASE_ENV_DIR) self.assertEqual(output, 'Configuration ok!') @@ -1277,7 +1276,7 @@ def test_duplicated_ip(self): self.duplicate_ip() self.write_config() with self.assertRaises(di.MultipleHostsWithOneIPError) as context: - di.main(config=TARGET_DIR, check=True, environment=BASE_ENV_DIR) + di.generate(config=TARGET_DIR, check=True, environment=BASE_ENV_DIR) self.assertEqual(context.exception.ip, '172.29.236.100') diff --git a/tox.ini b/tox.ini index 520fa8a77c..48403d5c0b 100644 --- a/tox.ini +++ b/tox.ini @@ -8,7 +8,7 @@ ignore_basepython_conflict = True usedevelop = True basepython = python3 install_command = - pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages} + pip install -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2} {opts} {packages} deps = -r{toxinidir}/global-requirement-pins.txt -r{toxinidir}/test-requirements.txt diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 5c530d4873..49c82118cd 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -90,7 +90,6 @@ - name: openstack/openstack-ansible-os_tempest - name: openstack/openstack-ansible-os_trove - name: openstack/openstack-ansible-plugins - - name: openstack/ansible-role-qdrouterd - name: openstack/openstack-ansible-rabbitmq_server - name: openstack/openstack-ansible-repo_server - name: openstack/ansible-role-systemd_service @@ -205,7 +204,6 @@ - name: openstack/openstack-ansible-os_tempest - name: openstack/openstack-ansible-os_trove - name: openstack/openstack-ansible-plugins - - name: openstack/ansible-role-qdrouterd - name: openstack/openstack-ansible-rabbitmq_server - name: openstack/openstack-ansible-repo_server - name: openstack/ansible-role-systemd_service diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml index 94f3b37221..852fcd6149 100644 --- a/zuul.d/project-templates.yaml +++ b/zuul.d/project-templates.yaml @@ -284,10 +284,10 @@ name: openstack-ansible-linters-jobs check: jobs: - - openstack-ansible-linters-ubuntu-jammy + - openstack-ansible-linters-ubuntu-noble gate: jobs: - - openstack-ansible-linters-ubuntu-jammy + - openstack-ansible-linters-ubuntu-noble - project-template: name: openstack-ansible-lxc-backingstore-jobs