From e9c09f4313b6009fedaa88973b504094d7c29924 Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Fri, 10 Jun 2022 20:14:47 +0000 Subject: [PATCH] Add Kinetic and Zed support * sync charm-helpers to classic charms * change openstack-origin/source default to zed * align testing with zed * add new zed bundles * add zed bundles to tests.yaml * add zed tests to osci.yaml and .zuul.yaml * update build-on and run-on bases * add bindep.txt for py310 * sync tox.ini and requirements.txt for ruamel * use charmcraft_channel 2.0/stable * drop reactive plugin overrides * move interface/layer env vars to charmcraft.yaml Depends-On: https://review.opendev.org/c/openstack/charm-manila/+/858765 Change-Id: I4cae0a313230a8617beac36a2dbfe0c019c5e0de --- .zuul.yaml | 2 +- charmcraft.yaml | 68 ++++++++++++------- osci.yaml | 38 +---------- requirements.txt | 24 +------ src/config.yaml | 2 +- src/metadata.yaml | 2 +- src/tests/bundles/jammy-yoga.yaml | 5 +- .../{focal-yoga.yaml => jammy-zed.yaml} | 9 +-- .../{focal-xena.yaml => kinetic-zed.yaml} | 9 +-- src/tests/tests.yaml | 33 ++++----- src/wheelhouse.txt | 1 - test-requirements.txt | 18 +---- tox.ini | 19 +----- 13 files changed, 79 insertions(+), 151 deletions(-) rename src/tests/bundles/{focal-yoga.yaml => jammy-zed.yaml} (97%) rename src/tests/bundles/{focal-xena.yaml => kinetic-zed.yaml} (97%) diff --git a/.zuul.yaml b/.zuul.yaml index 7ffc71c..23bf5f6 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,4 +1,4 @@ - project: templates: - - openstack-python3-charm-yoga-jobs + - openstack-python3-charm-zed-jobs - openstack-cover-jobs diff --git a/charmcraft.yaml b/charmcraft.yaml index 194893f..158de6c 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -31,27 +31,47 @@ parts: chmod +x src/charm.py bases: - - name: ubuntu - channel: "20.04" - architectures: [amd64] - - name: ubuntu - channel: "20.04" - architectures: [arm64] - - name: ubuntu - channel: "20.04" - architectures: [ppc64el] - - name: ubuntu - channel: "20.04" - architectures: [s390x] - - name: ubuntu - channel: "22.04" - architectures: [amd64] - - name: ubuntu - channel: "22.04" - architectures: [arm64] - - name: ubuntu - channel: "22.04" - architectures: [ppc64el] - - name: ubuntu - channel: "22.04" - architectures: [s390x] + - build-on: + - name: ubuntu + channel: "22.04" + architectures: [amd64] + run-on: + - name: ubuntu + channel: "22.04" + architectures: [amd64] + - name: ubuntu + channel: "22.10" + architectures: [amd64] + - build-on: + - name: ubuntu + channel: "22.04" + architectures: [arm64] + run-on: + - name: ubuntu + channel: "22.04" + architectures: [arm64] + - name: ubuntu + channel: "22.10" + architectures: [arm64] + - build-on: + - name: ubuntu + channel: "22.04" + architectures: [ppc64el] + run-on: + - name: ubuntu + channel: "22.04" + architectures: [ppc64el] + - name: ubuntu + channel: "22.10" + architectures: [ppc64el] + - build-on: + - name: ubuntu + channel: "22.04" + architectures: [s390x] + run-on: + - name: ubuntu + channel: "22.04" + architectures: [s390x] + - name: ubuntu + channel: "22.10" + architectures: [s390x] diff --git a/osci.yaml b/osci.yaml index 75e81d3..bf2e9b9 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,45 +1,9 @@ - project: templates: - - charm-unit-jobs-py38 - - charm-unit-jobs-py39 - charm-unit-jobs-py310 - check: - jobs: - # Wallaby is currently broken because of a change in the default token - # type requirements in manila's policy.json that the charm / tests need - # to learn to handle - - ganesha-focal-xena - - ganesha-focal-yoga: - voting: false - - ganesha-jammy-yoga: - voting: false + - charm-zed-functional-jobs vars: needs_charm_build: true charm_build_name: manila build_type: charmcraft charmcraft_channel: 2.0/stable - -- job: - name: ganesha-focal-xena - parent: func-target - dependencies: - - osci-lint - - tox-py38 - - tox-py39 - - charm-build - vars: - tox_extra_args: ganesha:focal-xena -- job: - name: ganesha-focal-yoga - parent: func-target - dependencies: - - ganesha-focal-xena - vars: - tox_extra_args: ganesha:focal-yoga -- job: - name: ganesha-jammy-yoga - parent: func-target - dependencies: - - ganesha-focal-xena - vars: - tox_extra_args: ganesha:jammy-yoga diff --git a/requirements.txt b/requirements.txt index 7755b95..65d3736 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,28 +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 - -# NOTE: newer versions of cryptography require a Rust compiler to build, -# see -# * https://github.com/openstack-charmers/zaza/issues/421 -# * https://mail.python.org/pipermail/cryptography-dev/2021-January/001003.html -# -cryptography<3.4 - -# Build requirements -cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. -git+https://github.com/juju/charm-tools#egg=charm-tools +git+https://github.com/juju/charm-tools.git simplejson - -# Newer versions use keywords that didn't exist in python 3.5 yet (e.g. -# "ModuleNotFoundError") -# 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 -importlib-metadata<3.0.0; python_version < '3.6' -importlib-resources<3.0.0; python_version < '3.6' diff --git a/src/config.yaml b/src/config.yaml index 9c6a616..5c06ad7 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -1,6 +1,6 @@ options: openstack-origin: - default: yoga + default: zed type: string description: | Repository from which to install. May be one of the following: diff --git a/src/metadata.yaml b/src/metadata.yaml index d36f1a6..0c1a536 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -11,8 +11,8 @@ description: | tags: - openstack series: -- focal - jammy +- kinetic subordinate: false requires: shared-db: diff --git a/src/tests/bundles/jammy-yoga.yaml b/src/tests/bundles/jammy-yoga.yaml index a422aa4..aaa8480 100644 --- a/src/tests/bundles/jammy-yoga.yaml +++ b/src/tests/bundles/jammy-yoga.yaml @@ -118,7 +118,7 @@ services: channel: latest/edge manila: - charm: ../../../manila_ubuntu-22.04-amd64.charm + charm: ../../../manila_ubuntu-22.04-amd64_ubuntu-22.10-amd64.charm num_units: 3 options: default-share-backend: cephfsnfs1 @@ -219,7 +219,8 @@ services: channel: latest/edge nrpe: - charm: cs:nrpe + charm: ch:nrpe + channel: latest/edge relations: - - 'ceph-mon' diff --git a/src/tests/bundles/focal-yoga.yaml b/src/tests/bundles/jammy-zed.yaml similarity index 97% rename from src/tests/bundles/focal-yoga.yaml rename to src/tests/bundles/jammy-zed.yaml index d8a9c85..daec2ca 100644 --- a/src/tests/bundles/focal-yoga.yaml +++ b/src/tests/bundles/jammy-zed.yaml @@ -1,9 +1,9 @@ variables: - openstack-origin: &openstack-origin cloud:focal-yoga + openstack-origin: &openstack-origin cloud:jammy-zed local_overlay_enabled: False -series: focal +series: jammy comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -118,7 +118,7 @@ services: channel: latest/edge manila: - charm: ../../../manila_ubuntu-20.04-amd64.charm + charm: ../../../manila_ubuntu-22.04-amd64_ubuntu-22.10-amd64.charm num_units: 3 options: default-share-backend: cephfsnfs1 @@ -219,7 +219,8 @@ services: channel: latest/edge nrpe: - charm: cs:nrpe + charm: ch:nrpe + channel: latest/edge relations: - - 'ceph-mon' diff --git a/src/tests/bundles/focal-xena.yaml b/src/tests/bundles/kinetic-zed.yaml similarity index 97% rename from src/tests/bundles/focal-xena.yaml rename to src/tests/bundles/kinetic-zed.yaml index 9bfc71f..f44a29d 100644 --- a/src/tests/bundles/focal-xena.yaml +++ b/src/tests/bundles/kinetic-zed.yaml @@ -1,9 +1,9 @@ variables: - openstack-origin: &openstack-origin cloud:focal-xena + openstack-origin: &openstack-origin distro local_overlay_enabled: False -series: focal +series: kinetic comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -118,7 +118,7 @@ services: channel: latest/edge manila: - charm: ../../../manila_ubuntu-20.04-amd64.charm + charm: ../../../manila_ubuntu-22.04-amd64_ubuntu-22.10-amd64.charm num_units: 3 options: default-share-backend: cephfsnfs1 @@ -219,7 +219,8 @@ services: channel: latest/edge nrpe: - charm: cs:nrpe + charm: ch:nrpe + channel: latest/edge relations: - - 'ceph-mon' diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index aa73328..06e1ee2 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -1,18 +1,15 @@ charm_name: manila gate_bundles: -- ganesha: focal-xena +- jammy-yoga dev_bundles: -# Wallaby is currently broken because of a change in the default token-type -# requirements in manila's policy.json that the charm / tests need to learn to -# handle -- ganesha: focal-xena -- ganesha: focal-yoga -- ganesha: jammy-yoga +- jammy-yoga +- jammy-zed +- kinetic-zed smoke_bundles: -- ganesha: focal-xena +- jammy-yoga target_deploy_status: nrpe: @@ -21,23 +18,23 @@ target_deploy_status: tests: - zaza.openstack.charm_tests.manila.tests.ManilaTests - - ganesha: - - zaza.openstack.charm_tests.manila.tests.ManilaTests - - zaza.openstack.charm_tests.manila_ganesha.tests.ManilaGaneshaTests + - zaza.openstack.charm_tests.manila_ganesha.tests.ManilaGaneshaTests configure: - zaza.openstack.charm_tests.keystone.setup.add_demo_user - - ganesha: - - zaza.openstack.charm_tests.glance.setup.add_lts_image - - 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.keystone.setup.add_demo_user - - zaza.openstack.charm_tests.manila_ganesha.setup.setup_ganesha_share_type + - zaza.openstack.charm_tests.glance.setup.add_lts_image + - 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.manila_ganesha.setup.setup_ganesha_share_type configure_options: configure_gateway_ext_port_use_juju_wait: False tests_options: force_deploy: + # nrpe charm doesn't support jammy+ and needs to be force installed + # https://bugs.launchpad.net/charm-nrpe/+bug/1968008 - jammy-yoga + - jammy-zed + - kinetic-zed diff --git a/src/wheelhouse.txt b/src/wheelhouse.txt index 1026b85..c5bc460 100644 --- a/src/wheelhouse.txt +++ b/src/wheelhouse.txt @@ -1,4 +1,3 @@ - git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack git+https://github.com/juju/charm-helpers.git#egg=charmhelpers diff --git a/test-requirements.txt b/test-requirements.txt index a11a7d0..a7936e6 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. -cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 stestr>=2.2.0 @@ -13,25 +12,10 @@ stestr>=2.2.0 # https://github.com/mtreinish/stestr/issues/145 cliff<3.0.0 -# Dependencies of stestr. Newer versions use keywords that didn't exist in -# python 3.5 yet (e.g. "ModuleNotFoundError") -importlib-metadata<3.0.0; python_version < '3.6' -importlib-resources<3.0.0; python_version < '3.6' - -# Some Zuul nodes sometimes pull newer versions of these dependencies which -# dropped support for python 3.5: -osprofiler<2.7.0;python_version<'3.6' -stevedore<1.31.0;python_version<'3.6' -debtcollector<1.22.0;python_version<'3.6' -oslo.utils<=3.41.0;python_version<'3.6' - requests>=2.18.4 charms.reactive -# Newer mock seems to have some syntax which is newer than python3.5 (e.g. -# f'{something}' -mock>=1.2,<4.0.0; python_version < '3.6' -mock>=1.2; python_version >= '3.6' +mock>=1.2 nose>=1.3.7 coverage>=3.6 diff --git a/tox.ini b/tox.ini index e649e6a..6df34e5 100644 --- a/tox.ini +++ b/tox.ini @@ -19,10 +19,8 @@ minversion = 3.18.0 setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 TERM=linux - LAYER_PATH={toxinidir}/layers - INTERFACE_PATH={toxinidir}/interfaces JUJU_REPOSITORY={toxinidir}/build -passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY +passenv = no_proxy http_proxy https_proxy JUJU_REPOSITORY install_command = {toxinidir}/pip.sh install {opts} {packages} allowlist_externals = @@ -54,21 +52,6 @@ basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} -[testenv:py36] -basepython = python3.6 -deps = -r{toxinidir}/test-requirements.txt -commands = stestr run --slowest {posargs} - -[testenv:py38] -basepython = python3.8 -deps = -r{toxinidir}/test-requirements.txt -commands = stestr run --slowest {posargs} - -[testenv:py39] -basepython = python3.9 -deps = -r{toxinidir}/test-requirements.txt -commands = stestr run --slowest {posargs} - [testenv:py310] basepython = python3.10 deps = -r{toxinidir}/test-requirements.txt