From 9c040be542af445411885d6a58d385492fae682a Mon Sep 17 00:00:00 2001 From: Jadon Naas Date: Fri, 6 Sep 2024 17:25:45 -0400 Subject: [PATCH] Add charmcraft 3 support - Update the charmcraft.yaml file to use base and platforms, only allowing noble support. - Update config to default to caracal. - Update osci.yaml to use the charmcraft 3.x/beta - Drop non-noble tests - Update constraints file from -2024.1.txt to -noble.txt - Add charmbuild to .zuul.yaml - Update flake to 7.1.1 - Add Py312 tox target - Remove setup_tools pinning Change-Id: Idd6c6524ea9f0da006af6916ce6ac4569c225a28 --- .zuul.yaml | 5 ++ charmcraft.yaml | 47 +++++---------- osci.yaml | 2 +- requirements.txt | 4 -- src/metadata.yaml | 2 - src/tests/bundles/jammy-antelope.yaml | 87 --------------------------- src/tests/bundles/jammy-bobcat.yaml | 87 --------------------------- src/tests/bundles/jammy-caracal.yaml | 87 --------------------------- src/tests/bundles/noble-caracal.yaml | 6 +- src/tests/tests.yaml | 6 +- src/tox.ini | 2 +- test-requirements.txt | 1 - tox.ini | 17 ++++-- 13 files changed, 39 insertions(+), 314 deletions(-) delete mode 100644 src/tests/bundles/jammy-antelope.yaml delete mode 100644 src/tests/bundles/jammy-bobcat.yaml delete mode 100644 src/tests/bundles/jammy-caracal.yaml diff --git a/.zuul.yaml b/.zuul.yaml index fd20909..69f10e0 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,3 +2,8 @@ templates: - openstack-python3-charm-jobs - openstack-cover-jobs + check: + jobs: + - charmbuild + vars: + charm_build_name: cinder-purestorage diff --git a/charmcraft.yaml b/charmcraft.yaml index fc8d0b4..789f6aa 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -20,36 +20,17 @@ parts: build-environment: - CHARM_INTERFACES_DIR: $CRAFT_PROJECT_DIR/interfaces/ - CHARM_LAYERS_DIR: $CRAFT_PROJECT_DIR/layers/ -bases: - - build-on: - - name: ubuntu - channel: "22.04" - architectures: [amd64] - run-on: - - name: ubuntu - channel: "22.04" - architectures: [amd64] - - build-on: - - name: ubuntu - channel: "22.04" - architectures: [s390x] - run-on: - - name: ubuntu - channel: "22.04" - architectures: [s390x] - - build-on: - - name: ubuntu - channel: "22.04" - architectures: [ppc64el] - run-on: - - name: ubuntu - channel: "22.04" - architectures: [ppc64el] - - build-on: - - name: ubuntu - channel: "22.04" - architectures: [arm64] - run-on: - - name: ubuntu - channel: "22.04" - architectures: [arm64] +base: ubuntu@24.04 +platforms: + amd64: + build-on: amd64 + build-for: amd64 + arm64: + build-on: arm64 + build-for: arm64 + ppc64el: + build-on: ppc64el + build-for: ppc64el + s390x: + build-on: s390x + build-for: s390x \ No newline at end of file diff --git a/osci.yaml b/osci.yaml index 22a8fee..1268e74 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: cinder-purestorage build_type: charmcraft - charmcraft_channel: 2.x/stable + charmcraft_channel: 3.x/stable diff --git a/requirements.txt b/requirements.txt index 5b7b273..38a4189 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,10 +3,6 @@ # choices of *requirements.txt files for OpenStack Charms: # https://github.com/openstack-charmers/release-tools # -# NOTE(lourot): This might look like a duplication of test-requirements.txt but -# some tox targets use only test-requirements.txt whereas charm-build uses only -# requirements.txt -setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 # Build requirements git+https://github.com/juju/charm-tools.git diff --git a/src/metadata.yaml b/src/metadata.yaml index 6e21616..8c8e05d 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -10,8 +10,6 @@ tags: - storage - file-servers - misc -series: - - jammy subordinate: true provides: storage-backend: diff --git a/src/tests/bundles/jammy-antelope.yaml b/src/tests/bundles/jammy-antelope.yaml deleted file mode 100644 index 8578359..0000000 --- a/src/tests/bundles/jammy-antelope.yaml +++ /dev/null @@ -1,87 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-antelope - -local_overlay_enabled: False - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - -relations: - - - 'cinder:identity-service' - - 'keystone:identity-service' - - - - 'cinder:amqp' - - 'rabbitmq-server:amqp' - - - - 'cinder:storage-backend' - - 'cinder-purestorage:storage-backend' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'cinder:shared-db' - - 'cinder-mysql-router:shared-db' - - - 'cinder-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - -applications: - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - cinder-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - channel: latest/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - channel: 2024.1/edge - cinder: - charm: ch:cinder - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - cinder-purestorage: - charm: ../../../cinder-purestorage_ubuntu-22.04-amd64.charm - options: -# Add config options here - driver-source: ppa:openstack-charmers/purestorage-stable - protocol: iscsi - volume-backend-name: cinder-pure - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '5' - channel: latest/edge diff --git a/src/tests/bundles/jammy-bobcat.yaml b/src/tests/bundles/jammy-bobcat.yaml deleted file mode 100644 index a769369..0000000 --- a/src/tests/bundles/jammy-bobcat.yaml +++ /dev/null @@ -1,87 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-bobcat - -local_overlay_enabled: False - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - -relations: - - - 'cinder:identity-service' - - 'keystone:identity-service' - - - - 'cinder:amqp' - - 'rabbitmq-server:amqp' - - - - 'cinder:storage-backend' - - 'cinder-purestorage:storage-backend' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'cinder:shared-db' - - 'cinder-mysql-router:shared-db' - - - 'cinder-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - -applications: - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - cinder-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - channel: latest/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - channel: 2024.1/edge - cinder: - charm: ch:cinder - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - cinder-purestorage: - charm: ../../../cinder-purestorage_ubuntu-22.04-amd64.charm - options: -# Add config options here - driver-source: ppa:openstack-charmers/purestorage-stable - protocol: iscsi - volume-backend-name: cinder-pure - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '5' - channel: latest/edge diff --git a/src/tests/bundles/jammy-caracal.yaml b/src/tests/bundles/jammy-caracal.yaml deleted file mode 100644 index 788f711..0000000 --- a/src/tests/bundles/jammy-caracal.yaml +++ /dev/null @@ -1,87 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-caracal - -local_overlay_enabled: False - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - -relations: - - - 'cinder:identity-service' - - 'keystone:identity-service' - - - - 'cinder:amqp' - - 'rabbitmq-server:amqp' - - - - 'cinder:storage-backend' - - 'cinder-purestorage:storage-backend' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'cinder:shared-db' - - 'cinder-mysql-router:shared-db' - - - 'cinder-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - -applications: - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - cinder-mysql-router: - charm: ch:mysql-router - channel: latest/edge - - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - channel: latest/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - channel: 2024.1/edge - cinder: - charm: ch:cinder - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - cinder-purestorage: - charm: ../../../cinder-purestorage_ubuntu-22.04-amd64.charm - options: -# Add config options here - driver-source: ppa:openstack-charmers/purestorage-stable - protocol: iscsi - volume-backend-name: cinder-pure - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '5' - channel: latest/edge diff --git a/src/tests/bundles/noble-caracal.yaml b/src/tests/bundles/noble-caracal.yaml index b975bc0..0c8412b 100644 --- a/src/tests/bundles/noble-caracal.yaml +++ b/src/tests/bundles/noble-caracal.yaml @@ -63,7 +63,7 @@ applications: openstack-origin: *openstack-origin to: - '3' - channel: 2024.1/edge + channel: latest/edge cinder: charm: ch:cinder num_units: 1 @@ -71,9 +71,9 @@ applications: openstack-origin: *openstack-origin to: - '4' - channel: 2024.1/edge + channel: latest/edge cinder-purestorage: - charm: ../../../cinder-purestorage_ubuntu-22.04-amd64.charm + charm: ../../../cinder-purestorage.charm options: # Add config options here driver-source: ppa:openstack-charmers/purestorage-stable diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index 6d79a73..8fefde0 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -6,11 +6,9 @@ tests: configure: - zaza.openstack.charm_tests.keystone.setup.add_demo_user gate_bundles: - - jammy-antelope - - jammy-bobcat - - jammy-caracal + - noble-caracal smoke_bundles: - - jammy-caracal + - noble-caracal dev_bundles: - noble-caracal tests_options: diff --git a/src/tox.ini b/src/tox.ini index 2ddcccd..3ce5e85 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -26,7 +26,7 @@ passenv = OS_* TEST_* deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt [testenv:pep8] diff --git a/test-requirements.txt b/test-requirements.txt index a7936e6..3fd5feb 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -4,7 +4,6 @@ # https://github.com/openstack-charmers/release-tools # pyparsing<3.0.0 # aodhclient is pinned in zaza and needs pyparsing < 3.0.0, but cffi also needs it, so pin here. -setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 stestr>=2.2.0 diff --git a/tox.ini b/tox.ini index 00a2950..e53dd33 100644 --- a/tox.ini +++ b/tox.ini @@ -22,6 +22,7 @@ setenv = VIRTUAL_ENV={envdir} CHARM_LAYERS_DIR={toxinidir}/layers CHARM_INTERFACES_DIR={toxinidir}/interfaces JUJU_REPOSITORY={toxinidir}/build + TEST_JUJU3=1 # Note(jadonn): Force Juju 3 passenv = no_proxy http_proxy @@ -33,6 +34,7 @@ allowlist_externals = charmcraft bash tox + {toxinidir}/rename.sh deps = -r{toxinidir}/requirements.txt @@ -61,20 +63,27 @@ commands = [testenv:py3] basepython = python3 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:py310] basepython = python3.10 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} + -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} + +[testenv:py312] +basepython = python3.12 +deps = + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} [testenv:pep8] basepython = python3 -deps = flake8==3.9.2 +deps = flake8==7.1.1 git+https://github.com/juju/charm-tools.git commands = flake8 {posargs} src unit_tests @@ -83,7 +92,7 @@ commands = flake8 {posargs} src unit_tests # https://github.com/openstack/nova/blob/master/tox.ini basepython = python3 deps = - -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt} + -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-noble.txt} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt setenv =