From 0cbd0e70b8fde053a90d92e410ed9c664288f0be Mon Sep 17 00:00:00 2001 From: Billy Olsen Date: Fri, 21 Jun 2024 17:45:43 -0700 Subject: [PATCH] Add charmcraft 3 support Update the charmcraft.yaml file to use base and platforms, only allowing noble support. - Update osci.yaml to use the charmcraft 3.x/beta - Add noble/oracular to charmhelpers - Drop non-noble tests Change-Id: I144c385c844e5f321070fe0dd9cb8da2b8e6e61c --- charmcraft.yaml | 60 ++++------ osci.yaml | 2 +- src/tests/bundles/jammy-antelope.yaml | 166 -------------------------- src/tests/bundles/jammy-bobcat.yaml | 166 -------------------------- src/tests/bundles/jammy-caracal.yaml | 166 -------------------------- src/tests/bundles/noble-caracal.yaml | 12 +- src/tests/tests.yaml | 9 +- src/wheelhouse.txt | 2 + 8 files changed, 32 insertions(+), 551 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 59216d8..90d1dba 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -5,45 +5,27 @@ parts: source: src/ plugin: reactive reactive-charm-build-arguments: - - --binary-wheels-from-source - - --verbose + - --binary-wheels-from-source + - --verbose 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/ -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] + - CHARM_INTERFACES_DIR: /root/project/interfaces/ + - CHARM_LAYERS_DIR: /root/project/layers/ + +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/osci.yaml b/osci.yaml index 4066850..e43e287 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: neutron-api-plugin-ovn build_type: charmcraft - charmcraft_channel: 2.x/stable + charmcraft_channel: 3.x/beta diff --git a/src/tests/bundles/jammy-antelope.yaml b/src/tests/bundles/jammy-antelope.yaml deleted file mode 100644 index e5a9af3..0000000 --- a/src/tests/bundles/jammy-antelope.yaml +++ /dev/null @@ -1,166 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-antelope - -local_overlay_enabled: False - -series: &series jammy - -applications: - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - nova-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-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: - constraints: mem=3072M - charm: ch:mysql-innodb-cluster - num_units: 3 - channel: latest/edge - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - channel: latest/edge - vault: - charm: ch:vault - num_units: 1 - channel: latest/edge - ovn-central: - charm: ch:ovn-central - num_units: 3 - options: - source: *openstack-origin - channel: latest/edge - neutron-api-plugin-ovn: - charm: ../../../neutron-api-plugin-ovn_ubuntu-22.04-amd64.charm - hacluster-neutron-api: - charm: ch:hacluster - channel: latest/edge - neutron-api: - charm: ch:neutron-api - series: *series - num_units: 3 - options: - # NOTE(fnordahl): At current state of upstream Neutron development this - # is a requirement. Remove once fixed upstream. - enable-ml2-port-security: true - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - channel: 2024.1/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - channel: 2024.1/edge - ovn-chassis: - charm: ch:ovn-chassis - channel: latest/edge - nova-compute: - constraints: "root-disk=20G mem=4G" - 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 - channel: 2024.1/edge - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge -relations: - - - hacluster-neutron-api:ha - - neutron-api:ha - - - neutron-api:amqp - - rabbitmq-server:amqp - - - neutron-api:neutron-api - - nova-cloud-controller:neutron-api - - - neutron-api:identity-service - - keystone:identity-service - - - nova-cloud-controller:amqp - - rabbitmq-server:amqp - - - nova-compute: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:amqp - - rabbitmq-server:amqp - - - nova-compute:image-service - - glance:image-service - - - nova-cloud-controller:image-service - - glance:image-service - - - placement:identity-service - - keystone:identity-service - - - placement:placement - - nova-cloud-controller:placement - - - neutron-api-plugin-ovn:neutron-plugin - - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - neutron-api:certificates - - vault:certificates - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:certificates - - glance:certificates - - - vault:certificates - - keystone:certificates - - - vault:certificates - - nova-cloud-controller:certificates - - - vault:certificates - - placement:certificates - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["vault:shared-db", "vault-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["vault-mysql-router:db-router", "mysql-innodb-cluster:db-router"] diff --git a/src/tests/bundles/jammy-bobcat.yaml b/src/tests/bundles/jammy-bobcat.yaml deleted file mode 100644 index ce3184f..0000000 --- a/src/tests/bundles/jammy-bobcat.yaml +++ /dev/null @@ -1,166 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-bobcat - -local_overlay_enabled: False - -series: &series jammy - -applications: - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - nova-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-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: - constraints: mem=3072M - charm: ch:mysql-innodb-cluster - num_units: 3 - channel: latest/edge - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - channel: latest/edge - vault: - charm: ch:vault - num_units: 1 - channel: latest/edge - ovn-central: - charm: ch:ovn-central - num_units: 3 - options: - source: *openstack-origin - channel: latest/edge - neutron-api-plugin-ovn: - charm: ../../../neutron-api-plugin-ovn_ubuntu-22.04-amd64.charm - hacluster-neutron-api: - charm: ch:hacluster - channel: latest/edge - neutron-api: - charm: ch:neutron-api - series: *series - num_units: 3 - options: - # NOTE(fnordahl): At current state of upstream Neutron development this - # is a requirement. Remove once fixed upstream. - enable-ml2-port-security: true - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - channel: 2024.1/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - channel: 2024.1/edge - ovn-chassis: - charm: ch:ovn-chassis - channel: latest/edge - nova-compute: - constraints: "root-disk=20G mem=4G" - 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 - channel: 2024.1/edge - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge -relations: - - - hacluster-neutron-api:ha - - neutron-api:ha - - - neutron-api:amqp - - rabbitmq-server:amqp - - - neutron-api:neutron-api - - nova-cloud-controller:neutron-api - - - neutron-api:identity-service - - keystone:identity-service - - - nova-cloud-controller:amqp - - rabbitmq-server:amqp - - - nova-compute: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:amqp - - rabbitmq-server:amqp - - - nova-compute:image-service - - glance:image-service - - - nova-cloud-controller:image-service - - glance:image-service - - - placement:identity-service - - keystone:identity-service - - - placement:placement - - nova-cloud-controller:placement - - - neutron-api-plugin-ovn:neutron-plugin - - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - neutron-api:certificates - - vault:certificates - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:certificates - - glance:certificates - - - vault:certificates - - keystone:certificates - - - vault:certificates - - nova-cloud-controller:certificates - - - vault:certificates - - placement:certificates - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["vault:shared-db", "vault-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["vault-mysql-router:db-router", "mysql-innodb-cluster:db-router"] diff --git a/src/tests/bundles/jammy-caracal.yaml b/src/tests/bundles/jammy-caracal.yaml deleted file mode 100644 index 4194b8e..0000000 --- a/src/tests/bundles/jammy-caracal.yaml +++ /dev/null @@ -1,166 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-caracal - -local_overlay_enabled: False - -series: &series jammy - -applications: - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - nova-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-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: - constraints: mem=3072M - charm: ch:mysql-innodb-cluster - num_units: 3 - channel: latest/edge - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - channel: latest/edge - vault: - charm: ch:vault - num_units: 1 - channel: latest/edge - ovn-central: - charm: ch:ovn-central - num_units: 3 - options: - source: *openstack-origin - channel: latest/edge - neutron-api-plugin-ovn: - charm: ../../../neutron-api-plugin-ovn_ubuntu-22.04-amd64.charm - hacluster-neutron-api: - charm: ch:hacluster - channel: latest/edge - neutron-api: - charm: ch:neutron-api - series: *series - num_units: 3 - options: - # NOTE(fnordahl): At current state of upstream Neutron development this - # is a requirement. Remove once fixed upstream. - enable-ml2-port-security: true - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - channel: 2024.1/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge - nova-cloud-controller: - charm: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - channel: 2024.1/edge - ovn-chassis: - charm: ch:ovn-chassis - channel: latest/edge - nova-compute: - constraints: "root-disk=20G mem=4G" - 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 - channel: 2024.1/edge - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - channel: 2024.1/edge -relations: - - - hacluster-neutron-api:ha - - neutron-api:ha - - - neutron-api:amqp - - rabbitmq-server:amqp - - - neutron-api:neutron-api - - nova-cloud-controller:neutron-api - - - neutron-api:identity-service - - keystone:identity-service - - - nova-cloud-controller:amqp - - rabbitmq-server:amqp - - - nova-compute: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:amqp - - rabbitmq-server:amqp - - - nova-compute:image-service - - glance:image-service - - - nova-cloud-controller:image-service - - glance:image-service - - - placement:identity-service - - keystone:identity-service - - - placement:placement - - nova-cloud-controller:placement - - - neutron-api-plugin-ovn:neutron-plugin - - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - neutron-api:certificates - - vault:certificates - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:certificates - - glance:certificates - - - vault:certificates - - keystone:certificates - - - vault:certificates - - nova-cloud-controller:certificates - - - vault:certificates - - placement:certificates - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["vault:shared-db", "vault-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["vault-mysql-router:db-router", "mysql-innodb-cluster:db-router"] diff --git a/src/tests/bundles/noble-caracal.yaml b/src/tests/bundles/noble-caracal.yaml index f69dfa3..8fff1dc 100644 --- a/src/tests/bundles/noble-caracal.yaml +++ b/src/tests/bundles/noble-caracal.yaml @@ -59,26 +59,26 @@ applications: flat-network-providers: physnet1 neutron-security-groups: true openstack-origin: *openstack-origin - channel: 2024.1/edge + channel: latest/edge keystone: charm: ch:keystone num_units: 1 options: openstack-origin: *openstack-origin - channel: 2024.1/edge + channel: latest/edge glance: charm: ch:glance num_units: 1 options: openstack-origin: *openstack-origin - channel: 2024.1/edge + channel: latest/edge nova-cloud-controller: charm: ch:nova-cloud-controller num_units: 1 options: network-manager: Neutron openstack-origin: *openstack-origin - channel: 2024.1/edge + channel: latest/edge ovn-chassis: charm: ch:ovn-chassis channel: latest/edge @@ -92,13 +92,13 @@ applications: enable-resize: true migration-auth-type: ssh openstack-origin: *openstack-origin - channel: 2024.1/edge + channel: latest/edge placement: charm: ch:placement num_units: 1 options: openstack-origin: *openstack-origin - channel: 2024.1/edge + channel: latest/edge relations: - - hacluster-neutron-api:ha - neutron-api:ha diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index e27ca3e..d733970 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -1,11 +1,9 @@ charm_name: neutron-api-plugin-ovn smoke_bundles: - - jammy-caracal + - noble-caracal gate_bundles: - - jammy-antelope - - jammy-bobcat - - jammy-caracal + - noble-caracal dev_bundles: - noble-caracal target_deploy_status: @@ -32,6 +30,3 @@ configure: tests: - zaza.openstack.charm_tests.neutron.tests.NeutronNetworkingTest -tests_options: - force_deploy: - - noble-caracal diff --git a/src/wheelhouse.txt b/src/wheelhouse.txt index bb07280..f0e3248 100644 --- a/src/wheelhouse.txt +++ b/src/wheelhouse.txt @@ -5,6 +5,8 @@ poetry-core flit_core importlib_metadata<3.1.1 +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