diff --git a/.zuul.yaml b/.zuul.yaml index ed74761..4e81985 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,5 +1,5 @@ - project: templates: - - openstack-python3-charm-yoga-jobs + - openstack-python3-charm-zed-jobs - openstack-cover-jobs diff --git a/bindep.txt b/bindep.txt new file mode 100644 index 0000000..17575d9 --- /dev/null +++ b/bindep.txt @@ -0,0 +1,4 @@ +libffi-dev [platform:dpkg] +libpq-dev [platform:dpkg] +libxml2-dev [platform:dpkg] +libxslt1-dev [platform:dpkg] diff --git a/charmcraft.yaml b/charmcraft.yaml index c9a0ed7..0604425 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -2,32 +2,24 @@ type: charm parts: charm: - build-packages: - - tox - - git - - python3-dev - override-build: | - apt-get install ca-certificates -y - tox -e build-reactive - override-stage: | - echo "Copying charm to staging area: $CHARMCRAFT_STAGE" - NAME=$(ls $CHARMCRAFT_PART_BUILD/build/builds) - cp -r $CHARMCRAFT_PART_BUILD/build/builds/$NAME/* $CHARMCRAFT_STAGE/ - override-prime: | - # For some reason, the normal priming chokes on the fact that there's a - # hooks directory. - cp -r $CHARMCRAFT_STAGE/* . + source: src/ + plugin: reactive + build-snaps: + - charm + build-environment: + - CHARM_INTERFACES_DIR: /root/project/interfaces/ + - CHARM_LAYERS_DIR: /root/project/layers/ bases: - build-on: - name: ubuntu - channel: "20.04" + channel: "22.04" architectures: - amd64 run-on: - - name: ubuntu - channel: "20.04" - architectures: [amd64, s390x, ppc64el, arm64] - name: ubuntu channel: "22.04" architectures: [amd64, s390x, ppc64el, arm64] + - name: ubuntu + channel: "22.10" + architectures: [amd64, s390x, ppc64el, arm64] diff --git a/osci.yaml b/osci.yaml index 28d0acf..a08e362 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,11 +1,9 @@ - project: templates: - - charm-unit-jobs-py38 - charm-unit-jobs-py310 - - charm-yoga-functional-jobs - - charm-xena-functional-jobs - - charm-yoga-functional-jobs + - charm-zed-functional-jobs vars: needs_charm_build: true charm_build_name: manila-ganesha build_type: charmcraft + charmcraft_channel: 2.0/stable diff --git a/requirements.txt b/requirements.txt index 7755b95..b3dc23f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,16 +15,6 @@ setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb # 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 6d8cb73..5141541 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 847299a..7266e93 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -10,8 +10,8 @@ tags: - storage - file-servers series: -- focal - jammy +- kinetic subordinate: false extra-bindings: tenant-storage: diff --git a/src/tests/bundles/focal-yoga.yaml b/src/tests/bundles/focal-yoga.yaml deleted file mode 100644 index 3be27b8..0000000 --- a/src/tests/bundles/focal-yoga.yaml +++ /dev/null @@ -1,340 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:focal-yoga - -local_overlay_enabled: True - -series: focal - -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': - '6': - '7': - '8': - '9': - '10': - '11': - '12': - '13': - '14': - '15': - '16': - '17': - constraints: mem=8G - '18': - constraints: mem=8G - '19': - '20': - '21': - '22': - '23': - -services: - - manila-mysql-router: - charm: ch:mysql-router - channel: latest/edge - manila-ganesha-mysql-router: - charm: ch:mysql-router - channel: latest/edge - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - nova-cloud-controller-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-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 - - manila-ganesha-az1: - num_units: 3 - charm: ../../../manila-ganesha.charm - options: - openstack-origin: *openstack-origin - to: - - '3' - - '4' - - '5' - - ceph-mon: - charm: ch:ceph-mon - num_units: 3 - options: - source: *openstack-origin - to: - - '6' - - '7' - - '8' - channel: quincy/edge - - ceph-osd: - charm: ch:ceph-osd - num_units: 3 - options: - source: *openstack-origin - storage: - osd-devices: 'cinder,10G' - to: - - '9' - - '10' - - '11' - channel: quincy/edge - - ceph-fs: - charm: ch:ceph-fs - num_units: 2 - options: - source: *openstack-origin - to: - - '12' - - '13' - channel: quincy/edge - - manila: - charm: ch:manila - num_units: 1 - options: - default-share-backend: cephfsnfs1 - share-protocols: NFS - openstack-origin: *openstack-origin - to: - - '14' - channel: yoga/edge - - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '15' - channel: yoga/edge - - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '16' - channel: yoga/edge - - nova-compute: - charm: ch:nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '17' - - '18' - channel: yoga/edge - - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '19' - channel: yoga/edge - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - to: - - '20' - channel: yoga/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: yoga/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - bridge-mappings: physnet1:br-ex - openstack-origin: *openstack-origin - to: - - '21' - channel: yoga/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '22' - channel: latest/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '23' - channel: yoga/edge - - nrpe: - charm: ch:nrpe - -relations: - - - - 'ceph-mon' - - 'ceph-osd' - - - - 'ceph-mon' - - 'ceph-fs' - - - - 'ceph-mon' - - 'manila-ganesha-az1' - - - - 'manila:shared-db' - - 'manila-mysql-router:shared-db' - - - 'manila-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'manila-ganesha-az1' - - 'rabbitmq-server' - - - - 'manila-ganesha-az1' - - 'keystone' - - - - 'manila' - - 'manila-ganesha-az1' - - - - 'manila-ganesha-az1:shared-db' - - 'manila-ganesha-mysql-router:shared-db' - - - 'manila-ganesha-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'manila' - - 'rabbitmq-server' - - - - 'manila' - - 'keystone' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - - - 'placement:amqp' - - 'rabbitmq-server:amqp' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement:identity-service' - - 'keystone:identity-service' - - - - 'neutron-api:neutron-plugin-api' - - 'neutron-gateway:neutron-plugin-api' - - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - - 'glance:identity-service' - - 'keystone:identity-service' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-compute:image-service' - - 'glance:image-service' - - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - - 'nova-cloud-controller:quantum-network-service' - - 'neutron-gateway:quantum-network-service' - - - - 'manila-ganesha-az1:nrpe-external-master' - - 'nrpe:nrpe-external-master' diff --git a/src/tests/bundles/jammy-yoga.yaml b/src/tests/bundles/jammy-yoga.yaml index 646f585..64251cf 100644 --- a/src/tests/bundles/jammy-yoga.yaml +++ b/src/tests/bundles/jammy-yoga.yaml @@ -92,7 +92,7 @@ services: - '6' - '7' - '8' - channel: quincy/edge + channel: latest/edge ceph-osd: charm: ch:ceph-osd @@ -105,7 +105,7 @@ services: - '9' - '10' - '11' - channel: quincy/edge + channel: latest/edge ceph-fs: charm: ch:ceph-fs @@ -115,7 +115,7 @@ services: to: - '12' - '13' - channel: quincy/edge + channel: latest/edge manila: charm: ch:manila @@ -126,7 +126,7 @@ services: openstack-origin: *openstack-origin to: - '14' - channel: yoga/edge + channel: latest/edge nova-cloud-controller: charm: ch:nova-cloud-controller @@ -136,7 +136,7 @@ services: openstack-origin: *openstack-origin to: - '15' - channel: yoga/edge + channel: latest/edge placement: charm: ch:placement @@ -145,7 +145,7 @@ services: openstack-origin: *openstack-origin to: - '16' - channel: yoga/edge + channel: latest/edge nova-compute: charm: ch:nova-compute @@ -159,7 +159,7 @@ services: to: - '17' - '18' - channel: yoga/edge + channel: latest/edge glance: charm: ch:glance @@ -168,7 +168,7 @@ services: openstack-origin: *openstack-origin to: - '19' - channel: yoga/edge + channel: latest/edge neutron-api: charm: ch:neutron-api @@ -181,11 +181,11 @@ services: openstack-origin: *openstack-origin to: - '20' - channel: yoga/edge + channel: latest/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: yoga/edge + channel: latest/edge neutron-gateway: charm: ch:neutron-gateway @@ -195,7 +195,7 @@ services: openstack-origin: *openstack-origin to: - '21' - channel: yoga/edge + channel: latest/edge rabbitmq-server: charm: ch:rabbitmq-server @@ -213,7 +213,7 @@ services: openstack-origin: *openstack-origin to: - '23' - channel: yoga/edge + channel: latest/edge relations: diff --git a/src/tests/bundles/focal-xena.yaml b/src/tests/bundles/jammy-zed.yaml similarity index 94% rename from src/tests/bundles/focal-xena.yaml rename to src/tests/bundles/jammy-zed.yaml index cd2b0cf..81e2f26 100644 --- a/src/tests/bundles/focal-xena.yaml +++ b/src/tests/bundles/jammy-zed.yaml @@ -1,9 +1,9 @@ variables: - openstack-origin: &openstack-origin cloud:focal-xena + openstack-origin: &openstack-origin cloud:jammy-zed local_overlay_enabled: True -series: focal +series: jammy comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -92,7 +92,7 @@ services: - '6' - '7' - '8' - channel: quincy/edge + channel: latest/edge ceph-osd: charm: ch:ceph-osd @@ -105,7 +105,7 @@ services: - '9' - '10' - '11' - channel: quincy/edge + channel: latest/edge ceph-fs: charm: ch:ceph-fs @@ -115,7 +115,7 @@ services: to: - '12' - '13' - channel: quincy/edge + channel: latest/edge manila: charm: ch:manila @@ -126,7 +126,7 @@ services: openstack-origin: *openstack-origin to: - '14' - channel: yoga/edge + channel: latest/edge nova-cloud-controller: charm: ch:nova-cloud-controller @@ -136,7 +136,7 @@ services: openstack-origin: *openstack-origin to: - '15' - channel: yoga/edge + channel: latest/edge placement: charm: ch:placement @@ -145,7 +145,7 @@ services: openstack-origin: *openstack-origin to: - '16' - channel: yoga/edge + channel: latest/edge nova-compute: charm: ch:nova-compute @@ -159,7 +159,7 @@ services: to: - '17' - '18' - channel: yoga/edge + channel: latest/edge glance: charm: ch:glance @@ -168,7 +168,7 @@ services: openstack-origin: *openstack-origin to: - '19' - channel: yoga/edge + channel: latest/edge neutron-api: charm: ch:neutron-api @@ -181,11 +181,11 @@ services: openstack-origin: *openstack-origin to: - '20' - channel: yoga/edge + channel: latest/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: yoga/edge + channel: latest/edge neutron-gateway: charm: ch:neutron-gateway @@ -195,7 +195,7 @@ services: openstack-origin: *openstack-origin to: - '21' - channel: yoga/edge + channel: latest/edge rabbitmq-server: charm: ch:rabbitmq-server @@ -213,10 +213,11 @@ services: openstack-origin: *openstack-origin to: - '23' - channel: yoga/edge + channel: latest/edge nrpe: charm: ch:nrpe + channel: latest/edge relations: diff --git a/src/tests/bundles/impish-xena.yaml b/src/tests/bundles/kinetic-zed.yaml similarity index 95% rename from src/tests/bundles/impish-xena.yaml rename to src/tests/bundles/kinetic-zed.yaml index 2879a3b..90e8554 100644 --- a/src/tests/bundles/impish-xena.yaml +++ b/src/tests/bundles/kinetic-zed.yaml @@ -3,7 +3,7 @@ variables: local_overlay_enabled: True -series: impish +series: kinetic comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -92,7 +92,7 @@ services: - '6' - '7' - '8' - channel: quincy/edge + channel: latest/edge ceph-osd: charm: ch:ceph-osd @@ -105,7 +105,7 @@ services: - '9' - '10' - '11' - channel: quincy/edge + channel: latest/edge ceph-fs: charm: ch:ceph-fs @@ -115,7 +115,7 @@ services: to: - '12' - '13' - channel: quincy/edge + channel: latest/edge manila: charm: ch:manila @@ -126,7 +126,7 @@ services: openstack-origin: *openstack-origin to: - '14' - channel: yoga/edge + channel: latest/edge nova-cloud-controller: charm: ch:nova-cloud-controller @@ -136,7 +136,7 @@ services: openstack-origin: *openstack-origin to: - '15' - channel: yoga/edge + channel: latest/edge placement: charm: ch:placement @@ -145,7 +145,7 @@ services: openstack-origin: *openstack-origin to: - '16' - channel: yoga/edge + channel: latest/edge nova-compute: charm: ch:nova-compute @@ -159,7 +159,7 @@ services: to: - '17' - '18' - channel: yoga/edge + channel: latest/edge glance: charm: ch:glance @@ -168,7 +168,7 @@ services: openstack-origin: *openstack-origin to: - '19' - channel: yoga/edge + channel: latest/edge neutron-api: charm: ch:neutron-api @@ -181,11 +181,11 @@ services: openstack-origin: *openstack-origin to: - '20' - channel: yoga/edge + channel: latest/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: yoga/edge + channel: latest/edge neutron-gateway: charm: ch:neutron-gateway @@ -195,7 +195,7 @@ services: openstack-origin: *openstack-origin to: - '21' - channel: yoga/edge + channel: latest/edge rabbitmq-server: charm: ch:rabbitmq-server @@ -213,10 +213,11 @@ services: openstack-origin: *openstack-origin to: - '23' - channel: yoga/edge + channel: latest/edge nrpe: charm: ch:nrpe + channel: latest/edge relations: diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index 57dd220..a1c77a9 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -1,15 +1,15 @@ charm_name: manila-ganesha gate_bundles: -- focal-xena -- impish-xena - -dev_bundles: -- focal-yoga - jammy-yoga +dev_bundles: +- jammy-yoga +- jammy-zed +- kinetic-zed + smoke_bundles: -- focal-xena +- jammy-yoga target_deploy_status: {} @@ -26,5 +26,4 @@ configure: tests_options: force_deploy: - - impish-xena - - jammy-yoga + - kinetic-zed 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 e22fe48..bdde110 100644 --- a/tox.ini +++ b/tox.ini @@ -31,10 +31,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 = @@ -50,7 +48,7 @@ basepython = python3 deps = -r{toxinidir}/build-requirements.txt commands = charmcraft clean - charmcraft -v build + charmcraft -v pack {toxinidir}/rename.sh [testenv:build-reactive] @@ -68,21 +66,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 @@ -91,7 +74,7 @@ commands = stestr run --slowest {posargs} [testenv:pep8] basepython = python3 deps = flake8==3.9.2 - charm-tools==2.8.3 + git+https://github.com/juju/charm-tools.git commands = flake8 {posargs} src unit_tests [testenv:func-target]