diff --git a/build-requirements.txt b/build-requirements.txt deleted file mode 100644 index b6d2452f..00000000 --- a/build-requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -# NOTES(lourot): -# * We don't install charmcraft via pip anymore because it anyway spins up a -# container and scp the system's charmcraft snap inside it. So the charmcraft -# snap is necessary on the system anyway. -# * `tox -e build` successfully validated with charmcraft 1.2.1 - -cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. diff --git a/charmcraft.yaml b/charmcraft.yaml index 58e7c161..79551bcd 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -32,9 +32,3 @@ bases: - name: ubuntu channel: "22.04" architectures: [amd64, s390x, ppc64el, arm64] - - name: ubuntu - channel: "23.04" - architectures: [amd64, s390x, ppc64el, arm64] - - name: ubuntu - channel: "23.10" - architectures: [amd64, s390x, ppc64el, arm64] diff --git a/charmhelpers/contrib/openstack/context.py b/charmhelpers/contrib/openstack/context.py index 42f15032..1e667fb0 100644 --- a/charmhelpers/contrib/openstack/context.py +++ b/charmhelpers/contrib/openstack/context.py @@ -545,7 +545,7 @@ class IdentityServiceContext(OSContextGenerator): 'internal_auth_url': internal_auth_url, }) - # we keep all veriables in ctxt for compatibility and + # we keep all variables in ctxt for compatibility and # add nested dictionary for keystone_authtoken generic # templating if keystonemiddleware_os_release: @@ -557,6 +557,7 @@ class IdentityServiceContext(OSContextGenerator): # NOTE(jamespage) this is required for >= icehouse # so a missing value just indicates keystone needs # upgrading + ctxt['admin_user_id'] = _resolve('service_user_id') ctxt['admin_tenant_id'] = _resolve('service_tenant_id') ctxt['admin_domain_id'] = _resolve('service_domain_id') return ctxt diff --git a/charmhelpers/contrib/openstack/utils.py b/charmhelpers/contrib/openstack/utils.py index ee492245..da711c65 100644 --- a/charmhelpers/contrib/openstack/utils.py +++ b/charmhelpers/contrib/openstack/utils.py @@ -161,6 +161,7 @@ OPENSTACK_CODENAMES = OrderedDict([ ('2022.2', 'zed'), ('2023.1', 'antelope'), ('2023.2', 'bobcat'), + ('2024.1', 'caracal'), ]) # The ugly duckling - must list releases oldest to newest @@ -416,17 +417,6 @@ def get_os_version_codename(codename, version_map=OPENSTACK_CODENAMES, error_out(e) -def get_os_version_codename_swift(codename): - '''Determine OpenStack version number of swift from codename.''' - # for k, v in six.iteritems(SWIFT_CODENAMES): - for k, v in SWIFT_CODENAMES.items(): - if k == codename: - return v[-1] - e = 'Could not derive swift version for '\ - 'codename: %s' % codename - error_out(e) - - def get_swift_codename(version): '''Determine OpenStack codename that corresponds to swift version.''' codenames = [k for k, v in SWIFT_CODENAMES.items() if version in v] @@ -846,14 +836,10 @@ def openstack_upgrade_available(package): if not cur_vers: # The package has not been installed yet do not attempt upgrade return False - if "swift" in package: - codename = get_os_codename_install_source(src) - avail_vers = get_os_version_codename_swift(codename) - else: - try: - avail_vers = get_os_version_install_source(src) - except Exception: - avail_vers = cur_vers + try: + avail_vers = get_os_version_install_source(src) + except Exception: + avail_vers = cur_vers apt.init() return apt.version_compare(avail_vers, cur_vers) >= 1 diff --git a/charmhelpers/fetch/ubuntu.py b/charmhelpers/fetch/ubuntu.py index 1be992c4..d0089eb7 100644 --- a/charmhelpers/fetch/ubuntu.py +++ b/charmhelpers/fetch/ubuntu.py @@ -246,6 +246,14 @@ CLOUD_ARCHIVE_POCKETS = { 'bobcat/proposed': 'jammy-proposed/bobcat', 'jammy-bobcat/proposed': 'jammy-proposed/bobcat', 'jammy-proposed/bobcat': 'jammy-proposed/bobcat', + # caracal + 'caracal': 'jammy-updates/caracal', + 'jammy-caracal': 'jammy-updates/caracal', + 'jammy-caracal/updates': 'jammy-updates/caracal', + 'jammy-updates/caracal': 'jammy-updates/caracal', + 'caracal/proposed': 'jammy-proposed/caracal', + 'jammy-caracal/proposed': 'jammy-proposed/caracal', + 'jammy-proposed/caracal': 'jammy-proposed/caracal', # OVN 'focal-ovn-22.03': 'focal-updates/ovn-22.03', @@ -279,6 +287,7 @@ OPENSTACK_RELEASES = ( 'zed', 'antelope', 'bobcat', + 'caracal', ) @@ -308,6 +317,7 @@ UBUNTU_OPENSTACK_RELEASE = OrderedDict([ ('kinetic', 'zed'), ('lunar', 'antelope'), ('mantic', 'bobcat'), + ('noble', 'caracal'), ]) diff --git a/metadata.yaml b/metadata.yaml index e21df248..da60cd5f 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -15,11 +15,9 @@ description: | nova-scheduler, nova-api and nova-conductor services. docs: https://discourse.charmhub.io/t/nova-cloud-controller-docs-index/10551 tags: -- openstack + - openstack series: -- jammy -- lunar -- mantic + - jammy extra-bindings: public: admin: diff --git a/tests/bundles/jammy-antelope.yaml b/tests/bundles/jammy-antelope.yaml index 9f7a1c19..62dddc24 100644 --- a/tests/bundles/jammy-antelope.yaml +++ b/tests/bundles/jammy-antelope.yaml @@ -92,7 +92,7 @@ applications: neutron-security-groups: true to: - '5' - channel: latest/edge + channel: 2024.1/edge keystone: charm: ch:keystone @@ -101,7 +101,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: latest/edge + channel: 2024.1/edge neutron-gateway: charm: ch:neutron-gateway @@ -111,7 +111,7 @@ applications: bridge-mappings: physnet1:br-ex to: - '7' - channel: latest/edge + channel: 2024.1/edge glance: charm: ch:glance @@ -120,11 +120,11 @@ applications: openstack-origin: *openstack-origin to: - '8' - channel: latest/edge + channel: 2024.1/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: latest/edge + channel: 2024.1/edge placement: charm: ch:placement @@ -133,7 +133,7 @@ applications: openstack-origin: *openstack-origin to: - '9' - channel: latest/edge + channel: 2024.1/edge nova-compute: charm: ch:nova-compute @@ -149,7 +149,7 @@ applications: to: - '10' - '11' - channel: latest/edge + channel: 2024.1/edge vault: charm: ch:vault diff --git a/tests/bundles/jammy-bobcat.yaml b/tests/bundles/jammy-bobcat.yaml index d8ca66a0..26a36a22 100644 --- a/tests/bundles/jammy-bobcat.yaml +++ b/tests/bundles/jammy-bobcat.yaml @@ -92,7 +92,7 @@ applications: neutron-security-groups: true to: - '5' - channel: latest/edge + channel: 2024.1/edge keystone: charm: ch:keystone @@ -101,7 +101,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: latest/edge + channel: 2024.1/edge neutron-gateway: charm: ch:neutron-gateway @@ -111,7 +111,7 @@ applications: bridge-mappings: physnet1:br-ex to: - '7' - channel: latest/edge + channel: 2024.1/edge glance: charm: ch:glance @@ -120,11 +120,11 @@ applications: openstack-origin: *openstack-origin to: - '8' - channel: latest/edge + channel: 2024.1/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: latest/edge + channel: 2024.1/edge placement: charm: ch:placement @@ -133,7 +133,7 @@ applications: openstack-origin: *openstack-origin to: - '9' - channel: latest/edge + channel: 2024.1/edge nova-compute: charm: ch:nova-compute @@ -149,7 +149,7 @@ applications: to: - '10' - '11' - channel: latest/edge + channel: 2024.1/edge vault: charm: ch:vault diff --git a/tests/bundles/mantic-bobcat.yaml b/tests/bundles/jammy-caracal.yaml similarity index 95% rename from tests/bundles/mantic-bobcat.yaml rename to tests/bundles/jammy-caracal.yaml index b6a02901..c6acae1b 100644 --- a/tests/bundles/mantic-bobcat.yaml +++ b/tests/bundles/jammy-caracal.yaml @@ -1,7 +1,7 @@ variables: - openstack-origin: &openstack-origin distro + openstack-origin: &openstack-origin cloud:jammy-caracal -series: mantic +series: jammy comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -92,7 +92,7 @@ applications: neutron-security-groups: true to: - '5' - channel: latest/edge + channel: 2024.1/edge keystone: charm: ch:keystone @@ -101,7 +101,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: latest/edge + channel: 2024.1/edge neutron-gateway: charm: ch:neutron-gateway @@ -111,7 +111,7 @@ applications: bridge-mappings: physnet1:br-ex to: - '7' - channel: latest/edge + channel: 2024.1/edge glance: charm: ch:glance @@ -120,11 +120,11 @@ applications: openstack-origin: *openstack-origin to: - '8' - channel: latest/edge + channel: 2024.1/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: latest/edge + channel: 2024.1/edge placement: charm: ch:placement @@ -133,7 +133,7 @@ applications: openstack-origin: *openstack-origin to: - '9' - channel: latest/edge + channel: 2024.1/edge nova-compute: charm: ch:nova-compute @@ -149,7 +149,7 @@ applications: to: - '10' - '11' - channel: latest/edge + channel: 2024.1/edge vault: charm: ch:vault diff --git a/tests/bundles/lunar-antelope.yaml b/tests/bundles/noble-caracal.yaml similarity index 96% rename from tests/bundles/lunar-antelope.yaml rename to tests/bundles/noble-caracal.yaml index c1872a32..e84c06a2 100644 --- a/tests/bundles/lunar-antelope.yaml +++ b/tests/bundles/noble-caracal.yaml @@ -1,7 +1,7 @@ variables: openstack-origin: &openstack-origin distro -series: lunar +series: noble comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -92,7 +92,7 @@ applications: neutron-security-groups: true to: - '5' - channel: latest/edge + channel: 2024.1/edge keystone: charm: ch:keystone @@ -101,7 +101,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: latest/edge + channel: 2024.1/edge neutron-gateway: charm: ch:neutron-gateway @@ -111,7 +111,7 @@ applications: bridge-mappings: physnet1:br-ex to: - '7' - channel: latest/edge + channel: 2024.1/edge glance: charm: ch:glance @@ -120,11 +120,11 @@ applications: openstack-origin: *openstack-origin to: - '8' - channel: latest/edge + channel: 2024.1/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: latest/edge + channel: 2024.1/edge placement: charm: ch:placement @@ -133,7 +133,7 @@ applications: openstack-origin: *openstack-origin to: - '9' - channel: latest/edge + channel: 2024.1/edge nova-compute: charm: ch:nova-compute @@ -149,7 +149,7 @@ applications: to: - '10' - '11' - channel: latest/edge + channel: 2024.1/edge vault: charm: ch:vault diff --git a/tests/tests.yaml b/tests/tests.yaml index 4bdd95f8..8a3bff6e 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -1,36 +1,32 @@ charm_name: nova-cloud-controller smoke_bundles: -- jammy-antelope - + - jammy-caracal gate_bundles: -- jammy-antelope - + - jammy-antelope + - jammy-bobcat + - jammy-caracal dev_bundles: -- jammy-bobcat -- lunar-antelope -- mantic-bobcat - + - noble-caracal target_deploy_status: vault: workload-status: blocked workload-status-message: Vault needs to be initialized configure: -- zaza.openstack.charm_tests.vault.setup.auto_initialize -- zaza.openstack.charm_tests.glance.setup.add_cirros_image -- zaza.openstack.charm_tests.keystone.setup.add_demo_user -- zaza.openstack.charm_tests.neutron.setup.basic_overcloud_network -- zaza.openstack.charm_tests.nova.setup.create_flavors -- zaza.openstack.charm_tests.nova.setup.manage_ssh_key + - zaza.openstack.charm_tests.vault.setup.auto_initialize + - zaza.openstack.charm_tests.glance.setup.add_cirros_image + - zaza.openstack.charm_tests.keystone.setup.add_demo_user + - zaza.openstack.charm_tests.neutron.setup.basic_overcloud_network + - zaza.openstack.charm_tests.nova.setup.create_flavors + - zaza.openstack.charm_tests.nova.setup.manage_ssh_key tests: -- zaza.openstack.charm_tests.nova.tests.CirrosGuestCreateTest -- zaza.openstack.charm_tests.nova.tests.SecurityTests -- zaza.openstack.charm_tests.nova.tests.NovaCloudController -- zaza.openstack.charm_tests.nova.tests.NovaCloudControllerActionTest + - zaza.openstack.charm_tests.nova.tests.CirrosGuestCreateTest + - zaza.openstack.charm_tests.nova.tests.SecurityTests + - zaza.openstack.charm_tests.nova.tests.NovaCloudController + - zaza.openstack.charm_tests.nova.tests.NovaCloudControllerActionTest tests_options: force_deploy: - - lunar-antelope - - mantic-bobcat + - noble-caracal diff --git a/tox.ini b/tox.ini index 2cb6ca16..57c2f4ec 100644 --- a/tox.ini +++ b/tox.ini @@ -32,11 +32,13 @@ passenv = CS_* OS_* TEST_* -deps = -r{toxinidir}/test-requirements.txt +deps = + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -r{toxinidir}/test-requirements.txt [testenv:build] basepython = python3 -deps = -r{toxinidir}/build-requirements.txt +deps = # charmcraft clean is done to ensure that # `tox -e build` always performs a clean, repeatable build. # For faster rebuilds during development, @@ -49,12 +51,16 @@ commands = [testenv:py310] basepython = python3.10 -deps = -r{toxinidir}/requirements.txt +deps = + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt [testenv:py3] basepython = python3 -deps = -r{toxinidir}/requirements.txt +deps = + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt [testenv:pep8] @@ -68,7 +74,9 @@ commands = flake8 {posargs} hooks unit_tests tests actions lib files # Technique based heavily upon # https://github.com/openstack/nova/blob/master/tox.ini basepython = python3 -deps = -r{toxinidir}/requirements.txt +deps = + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt setenv = {[testenv]setenv}