From 657ffe159db169b65960cf29fa4b827dba55bdf3 Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Fri, 21 Jun 2024 17:07:53 -0700 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 - Add noble/oracular to charmhelpers - Drop non-noble tests Change-Id: I225d54ebf2662dce3233efd4185550af989867bc --- charmcraft.yaml | 32 ++-- requirements.txt | 1 - src/config.yaml | 2 +- src/tests/bundles/jammy-antelope.yaml | 255 -------------------------- src/tests/bundles/jammy-bobcat.yaml | 255 -------------------------- src/tests/bundles/jammy-caracal.yaml | 255 -------------------------- src/tests/bundles/noble-caracal.yaml | 14 +- src/tests/tests.yaml | 6 +- src/wheelhouse.txt | 2 + test-requirements.txt | 1 - 10 files changed, 30 insertions(+), 793 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/charmcraft.yaml b/charmcraft.yaml index c31dea1..e8d4cb2 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -5,20 +5,24 @@ parts: source: src/ plugin: reactive build-packages: - - libpython3-dev + - libpython3-dev build-snaps: - - charm + - charm/latest/edge build-environment: - - CHARM_INTERFACES_DIR: /root/project/interfaces/ - - CHARM_LAYERS_DIR: /root/project/layers/ + - CHARM_INTERFACES_DIR: /root/project/interfaces/ + - CHARM_LAYERS_DIR: /root/project/layers/ -bases: - - build-on: - - name: ubuntu - channel: "22.04" - architectures: - - amd64 - run-on: - - name: ubuntu - channel: "22.04" - architectures: [amd64, s390x, ppc64el, 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 diff --git a/requirements.txt b/requirements.txt index b3dc23f..c5b8af3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,6 @@ # 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 diff --git a/src/config.yaml b/src/config.yaml index 6297251..d9e43ce 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -1,3 +1,3 @@ options: openstack-origin: - default: bobcat + default: caracal diff --git a/src/tests/bundles/jammy-antelope.yaml b/src/tests/bundles/jammy-antelope.yaml deleted file mode 100644 index fad8940..0000000 --- a/src/tests/bundles/jammy-antelope.yaml +++ /dev/null @@ -1,255 +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': - '6': - '7': - '8': - '9': - '10': - '11': - - -applications: - - keystone-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 - neutron-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-mysql-router: - charm: ch:mysql-router - channel: latest/edge - vault-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 - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - constraints: mem=1G - to: - - '3' - channel: latest/edge - - glance: - charm: ch:glance - num_units: 1 - constraints: mem=1G - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - admin-password: openstack - to: - - '5' - channel: 2024.1/edge - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - openstack-origin: *openstack-origin - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - flat-network-providers: physnet1 - neutron-security-groups: true - to: - - '6' - channel: 2024.1/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: 2024.1/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '7' - channel: 2024.1/edge - - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - debug: true - to: - - '8' - channel: 2024.1/edge - - nova-compute: - charm: ch:nova-compute - num_units: 1 - constraints: mem=4G - options: - openstack-origin: *openstack-origin - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - debug: true - to: - - '9' - channel: 2024.1/edge - - placement: - charm: ../../../placement.charm - num_units: 1 - constraints: mem=1G - options: - openstack-origin: *openstack-origin - debug: true - to: - - '10' - - vault: - num_units: 1 - charm: ch:vault - to: - - '11' - channel: latest/edge - -relations: - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller' - - 'glance' - - - - 'nova-cloud-controller' - - 'keystone' - - - - 'nova-compute' - - 'nova-cloud-controller' - - - - 'nova-compute' - - 'rabbitmq-server:amqp' - - - - 'nova-compute' - - 'glance' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance' - - 'keystone' - - - - 'glance' - - 'rabbitmq-server' - - - - 'neutron-gateway' - - 'nova-cloud-controller' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api' - - 'rabbitmq-server' - - - - 'neutron-api' - - 'nova-cloud-controller' - - - - 'neutron-api' - - 'neutron-openvswitch' - - - - 'neutron-api' - - 'keystone' - - - - 'neutron-api' - - 'neutron-gateway' - - - - 'neutron-openvswitch' - - 'nova-compute' - - - - 'neutron-openvswitch' - - 'rabbitmq-server' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement' - - 'keystone' - - - - 'placement' - - 'nova-cloud-controller' - - - - 'vault:shared-db' - - 'vault-mysql-router:shared-db' - - - 'vault-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'vault:certificates' - - 'keystone:certificates' - - - 'vault:certificates' - - 'placement:certificates' - - - 'vault:certificates' - - 'neutron-api:certificates' - - - 'vault:certificates' - - 'glance:certificates' - - - 'vault:certificates' - - 'nova-cloud-controller:certificates' diff --git a/src/tests/bundles/jammy-bobcat.yaml b/src/tests/bundles/jammy-bobcat.yaml deleted file mode 100644 index ecab556..0000000 --- a/src/tests/bundles/jammy-bobcat.yaml +++ /dev/null @@ -1,255 +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': - '6': - '7': - '8': - '9': - '10': - '11': - - -applications: - - keystone-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 - neutron-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-mysql-router: - charm: ch:mysql-router - channel: latest/edge - vault-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 - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - constraints: mem=1G - to: - - '3' - channel: latest/edge - - glance: - charm: ch:glance - num_units: 1 - constraints: mem=1G - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - admin-password: openstack - to: - - '5' - channel: 2024.1/edge - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - openstack-origin: *openstack-origin - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - flat-network-providers: physnet1 - neutron-security-groups: true - to: - - '6' - channel: 2024.1/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: 2024.1/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '7' - channel: 2024.1/edge - - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - debug: true - to: - - '8' - channel: 2024.1/edge - - nova-compute: - charm: ch:nova-compute - num_units: 1 - constraints: mem=4G - options: - openstack-origin: *openstack-origin - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - debug: true - to: - - '9' - channel: 2024.1/edge - - placement: - charm: ../../../placement.charm - num_units: 1 - constraints: mem=1G - options: - openstack-origin: *openstack-origin - debug: true - to: - - '10' - - vault: - num_units: 1 - charm: ch:vault - to: - - '11' - channel: latest/edge - -relations: - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller' - - 'glance' - - - - 'nova-cloud-controller' - - 'keystone' - - - - 'nova-compute' - - 'nova-cloud-controller' - - - - 'nova-compute' - - 'rabbitmq-server:amqp' - - - - 'nova-compute' - - 'glance' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance' - - 'keystone' - - - - 'glance' - - 'rabbitmq-server' - - - - 'neutron-gateway' - - 'nova-cloud-controller' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api' - - 'rabbitmq-server' - - - - 'neutron-api' - - 'nova-cloud-controller' - - - - 'neutron-api' - - 'neutron-openvswitch' - - - - 'neutron-api' - - 'keystone' - - - - 'neutron-api' - - 'neutron-gateway' - - - - 'neutron-openvswitch' - - 'nova-compute' - - - - 'neutron-openvswitch' - - 'rabbitmq-server' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement' - - 'keystone' - - - - 'placement' - - 'nova-cloud-controller' - - - - 'vault:shared-db' - - 'vault-mysql-router:shared-db' - - - 'vault-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'vault:certificates' - - 'keystone:certificates' - - - 'vault:certificates' - - 'placement:certificates' - - - 'vault:certificates' - - 'neutron-api:certificates' - - - 'vault:certificates' - - 'glance:certificates' - - - 'vault:certificates' - - 'nova-cloud-controller:certificates' diff --git a/src/tests/bundles/jammy-caracal.yaml b/src/tests/bundles/jammy-caracal.yaml deleted file mode 100644 index f855e01..0000000 --- a/src/tests/bundles/jammy-caracal.yaml +++ /dev/null @@ -1,255 +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': - '6': - '7': - '8': - '9': - '10': - '11': - - -applications: - - keystone-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 - neutron-api-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-mysql-router: - charm: ch:mysql-router - channel: latest/edge - vault-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 - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - constraints: mem=1G - to: - - '3' - channel: latest/edge - - glance: - charm: ch:glance - num_units: 1 - constraints: mem=1G - options: - openstack-origin: *openstack-origin - to: - - '4' - channel: 2024.1/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - admin-password: openstack - to: - - '5' - channel: 2024.1/edge - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - openstack-origin: *openstack-origin - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - flat-network-providers: physnet1 - neutron-security-groups: true - to: - - '6' - channel: 2024.1/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: 2024.1/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '7' - channel: 2024.1/edge - - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - debug: true - to: - - '8' - channel: 2024.1/edge - - nova-compute: - charm: ch:nova-compute - num_units: 1 - constraints: mem=4G - options: - openstack-origin: *openstack-origin - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - debug: true - to: - - '9' - channel: 2024.1/edge - - placement: - charm: ../../../placement.charm - num_units: 1 - constraints: mem=1G - options: - openstack-origin: *openstack-origin - debug: true - to: - - '10' - - vault: - num_units: 1 - charm: ch:vault - to: - - '11' - channel: latest/edge - -relations: - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller' - - 'glance' - - - - 'nova-cloud-controller' - - 'keystone' - - - - 'nova-compute' - - 'nova-cloud-controller' - - - - 'nova-compute' - - 'rabbitmq-server:amqp' - - - - 'nova-compute' - - 'glance' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance' - - 'keystone' - - - - 'glance' - - 'rabbitmq-server' - - - - 'neutron-gateway' - - 'nova-cloud-controller' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api' - - 'rabbitmq-server' - - - - 'neutron-api' - - 'nova-cloud-controller' - - - - 'neutron-api' - - 'neutron-openvswitch' - - - - 'neutron-api' - - 'keystone' - - - - 'neutron-api' - - 'neutron-gateway' - - - - 'neutron-openvswitch' - - 'nova-compute' - - - - 'neutron-openvswitch' - - 'rabbitmq-server' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement' - - 'keystone' - - - - 'placement' - - 'nova-cloud-controller' - - - - 'vault:shared-db' - - 'vault-mysql-router:shared-db' - - - 'vault-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'vault:certificates' - - 'keystone:certificates' - - - 'vault:certificates' - - 'placement:certificates' - - - 'vault:certificates' - - 'neutron-api:certificates' - - - 'vault:certificates' - - 'glance:certificates' - - - 'vault:certificates' - - 'nova-cloud-controller:certificates' diff --git a/src/tests/bundles/noble-caracal.yaml b/src/tests/bundles/noble-caracal.yaml index 8f5aa52..9017b80 100644 --- a/src/tests/bundles/noble-caracal.yaml +++ b/src/tests/bundles/noble-caracal.yaml @@ -73,7 +73,7 @@ applications: openstack-origin: *openstack-origin to: - '4' - channel: 2024.1/edge + channel: latest/edge keystone: charm: ch:keystone @@ -83,7 +83,7 @@ applications: admin-password: openstack to: - '5' - channel: 2024.1/edge + channel: latest/edge neutron-api: charm: ch:neutron-api @@ -96,11 +96,11 @@ applications: neutron-security-groups: true to: - '6' - channel: 2024.1/edge + channel: latest/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: 2024.1/edge + channel: latest/edge neutron-gateway: charm: ch:neutron-gateway @@ -110,7 +110,7 @@ applications: bridge-mappings: physnet1:br-ex to: - '7' - channel: 2024.1/edge + channel: latest/edge nova-cloud-controller: charm: ch:nova-cloud-controller @@ -121,7 +121,7 @@ applications: debug: true to: - '8' - channel: 2024.1/edge + channel: latest/edge nova-compute: charm: ch:nova-compute @@ -135,7 +135,7 @@ applications: debug: true to: - '9' - channel: 2024.1/edge + channel: latest/edge placement: charm: ../../../placement.charm diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index 93997e6..3f0c126 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -17,11 +17,9 @@ configure: - zaza.openstack.charm_tests.nova.setup.manage_ssh_key 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/wheelhouse.txt b/src/wheelhouse.txt index 1026b85..a0c8b27 100644 --- a/src/wheelhouse.txt +++ b/src/wheelhouse.txt @@ -1,4 +1,6 @@ +git+https://github.com/wolsen/charms.reactive.git@fix-entry-points#egg=charms.reactive + 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 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