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
This commit is contained in:
Billy Olsen 2024-06-21 17:45:43 -07:00 committed by Billy Olsen
parent 91f868b420
commit 0cbd0e70b8
No known key found for this signature in database
GPG Key ID: 6A8CA9BDB5995260
8 changed files with 32 additions and 551 deletions

@ -5,45 +5,27 @@ parts:
source: src/ source: src/
plugin: reactive plugin: reactive
reactive-charm-build-arguments: reactive-charm-build-arguments:
- --binary-wheels-from-source - --binary-wheels-from-source
- --verbose - --verbose
build-packages: build-packages:
- libpython3-dev - libpython3-dev
build-snaps: build-snaps:
- charm - charm/latest/edge
build-environment: build-environment:
- CHARM_INTERFACES_DIR: /root/project/interfaces/ - CHARM_INTERFACES_DIR: /root/project/interfaces/
- CHARM_LAYERS_DIR: /root/project/layers/ - CHARM_LAYERS_DIR: /root/project/layers/
bases:
- build-on: base: ubuntu@24.04
- name: ubuntu platforms:
channel: "22.04" amd64:
architectures: [amd64] build-on: amd64
run-on: build-for: amd64
- name: ubuntu arm64:
channel: "22.04" build-on: arm64
architectures: [amd64] build-for: arm64
- build-on: ppc64el:
- name: ubuntu build-on: ppc64el
channel: "22.04" build-for: ppc64el
architectures: [s390x] s390x:
run-on: build-on: s390x
- name: ubuntu build-for: s390x
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]

@ -6,4 +6,4 @@
needs_charm_build: true needs_charm_build: true
charm_build_name: neutron-api-plugin-ovn charm_build_name: neutron-api-plugin-ovn
build_type: charmcraft build_type: charmcraft
charmcraft_channel: 2.x/stable charmcraft_channel: 3.x/beta

@ -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"]

@ -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"]

@ -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"]

@ -59,26 +59,26 @@ applications:
flat-network-providers: physnet1 flat-network-providers: physnet1
neutron-security-groups: true neutron-security-groups: true
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: 2024.1/edge channel: latest/edge
keystone: keystone:
charm: ch:keystone charm: ch:keystone
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: 2024.1/edge channel: latest/edge
glance: glance:
charm: ch:glance charm: ch:glance
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: 2024.1/edge channel: latest/edge
nova-cloud-controller: nova-cloud-controller:
charm: ch:nova-cloud-controller charm: ch:nova-cloud-controller
num_units: 1 num_units: 1
options: options:
network-manager: Neutron network-manager: Neutron
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: 2024.1/edge channel: latest/edge
ovn-chassis: ovn-chassis:
charm: ch:ovn-chassis charm: ch:ovn-chassis
channel: latest/edge channel: latest/edge
@ -92,13 +92,13 @@ applications:
enable-resize: true enable-resize: true
migration-auth-type: ssh migration-auth-type: ssh
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: 2024.1/edge channel: latest/edge
placement: placement:
charm: ch:placement charm: ch:placement
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: 2024.1/edge channel: latest/edge
relations: relations:
- - hacluster-neutron-api:ha - - hacluster-neutron-api:ha
- neutron-api:ha - neutron-api:ha

@ -1,11 +1,9 @@
charm_name: neutron-api-plugin-ovn charm_name: neutron-api-plugin-ovn
smoke_bundles: smoke_bundles:
- jammy-caracal - noble-caracal
gate_bundles: gate_bundles:
- jammy-antelope - noble-caracal
- jammy-bobcat
- jammy-caracal
dev_bundles: dev_bundles:
- noble-caracal - noble-caracal
target_deploy_status: target_deploy_status:
@ -32,6 +30,3 @@ configure:
tests: tests:
- zaza.openstack.charm_tests.neutron.tests.NeutronNetworkingTest - zaza.openstack.charm_tests.neutron.tests.NeutronNetworkingTest
tests_options:
force_deploy:
- noble-caracal

@ -5,6 +5,8 @@ poetry-core
flit_core flit_core
importlib_metadata<3.1.1 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/openstack/charms.openstack.git#egg=charms.openstack
git+https://github.com/juju/charm-helpers.git#egg=charmhelpers git+https://github.com/juju/charm-helpers.git#egg=charmhelpers