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
- Drop setuptools pins in [test-]requirements.txt
- Add noble/oracular to charmhelpers
- Drop non-noble tests

Change-Id: I082605e49a611b09ceafd3f4e02a1221621847bb
This commit is contained in:
Billy Olsen
2024-06-20 20:24:27 -07:00
committed by Billy Olsen
parent e51bf60ff4
commit 82af06ef59
16 changed files with 69 additions and 325 deletions

View File

@@ -2,36 +2,35 @@ type: charm
parts:
charm:
charm-entrypoint: "hooks/install"
plugin: reactive
reactive-charm-build-arguments:
- --binary-wheels-from-source
- --verbose
build-packages:
- git
- libffi-dev
- libmysqlclient-dev
- pkg-config
- python3-dev
- tox
override-build: |
apt-get install ca-certificates -y
tox -e build-reactive
override-stage: |
echo "Copying charm to staging area: $CRAFT_STAGE"
NAME=$(ls $CRAFT_PART_BUILD/build/builds)
cp -r $CRAFT_PART_BUILD/build/builds/$NAME/* $CRAFT_STAGE/
override-prime: |
# For some reason, the normal priming chokes on the fact that there's a
# hooks directory.
cp -r $CRAFT_STAGE/* .
- tox
- git
- python3-dev
- libffi-dev
- libmysqlclient-dev
- pkg-config
source: src/
build-snaps:
- charm/latest/edge
build-environment:
- CHARM_INTERFACES_DIR: $CRAFT_PROJECT_DIR/interfaces/
- CHARM_LAYERS_DIR: $CRAFT_PROJECT_DIR/layers/
bases:
- build-on:
- name: ubuntu
channel: "20.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]
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

View File

@@ -1,30 +1,20 @@
- project:
templates:
- charm-unit-jobs-py38
- charm-unit-jobs-py310
check:
jobs:
- focal
- jammy
- full_model_ha-focal-full-ha
- full_model_ha-jammy-full-ha
- noble
- full_model_ha-noble-full-ha
vars:
needs_charm_build: true
charm_build_name: mysql-router
build_type: charmcraft
charmcraft_channel: 2.x/stable
charmcraft_channel: 3.x/beta
- job:
name: full_model_ha-focal-full-ha
name: full_model_ha-noble-full-ha
parent: func-target
dependencies:
- focal
- noble
vars:
tox_extra_args: '-- full_model_ha:focal-full-ha'
- job:
name: full_model_ha-jammy-full-ha
parent: func-target
dependencies:
- jammy
vars:
tox_extra_args: '-- full_model_ha:jammy-full-ha'
tox_extra_args: '-- full_model_ha:noble-full-ha'

View File

@@ -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
# Build requirements
cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35.

View File

@@ -1 +0,0 @@
focal-full.yaml

View File

@@ -1,185 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
local_overlay_enabled: False
series: &series focal
applications:
keystone-mysql-router:
charm: ../../../mysql-router.charm
options:
debug: True
nova-mysql-router:
charm: ../../../mysql-router.charm
options:
debug: True
glance-mysql-router:
charm: ../../../mysql-router.charm
options:
debug: True
neutron-mysql-router:
charm: ../../../mysql-router.charm
options:
debug: True
placement-mysql-router:
charm: ../../../mysql-router.charm
options:
debug: True
vault-mysql-router:
charm: ../../../mysql-router.charm
options:
debug: True
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
num_units: 3
options:
source: *openstack-origin
cluster-name: foo
channel: latest/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
options:
source: *openstack-origin
channel: 3.8/edge
vault:
charm: ch:vault
num_units: 1
channel: 1.7/edge
ovn-central:
charm: ch:ovn-central
num_units: 3
options:
source: *openstack-origin
channel: 22.03/edge
neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn
channel: yoga/edge
neutron-api:
charm: ch:neutron-api
series: *series
num_units: 1
options:
flat-network-providers: physnet1
neutron-security-groups: true
openstack-origin: *openstack-origin
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
network-manager: Neutron
openstack-origin: *openstack-origin
channel: yoga/edge
ovn-chassis:
charm: ch:ovn-chassis
channel: 22.03/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
options:
config-flags: default_ephemeral_format=ext4
enable-live-migration: true
enable-resize: true
migration-auth-type: ssh
openstack-origin: *openstack-origin
channel: yoga/edge
placement:
charm: ch:placement
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
memcached:
charm: ch:memcached
num_units: 1
relations:
- - 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
- - memcached:cache
- nova-cloud-controller:memcache
- - 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

View File

@@ -1,39 +0,0 @@
local_overlay_enabled: False
series: focal
applications:
keystone-mysql-router:
series: focal
charm: ../../../mysql-router.charm
options:
debug: True
vault-mysql-router:
series: focal
charm: ../../../mysql-router.charm
options:
debug: True
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
num_units: 3
channel: latest/edge
keystone:
charm: ch:keystone
num_units: 1
channel: yoga/edge
vault:
charm: ch:vault
num_units: 1
channel: 1.7/edge
relations:
- - vault:certificates
- mysql-innodb-cluster:certificates
- - vault:certificates
- keystone:certificates
- - keystone:shared-db
- keystone-mysql-router:shared-db
- - vault:shared-db
- vault-mysql-router:shared-db
- - keystone-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - vault-mysql-router:db-router
- mysql-innodb-cluster:db-router

View File

@@ -1 +0,0 @@
jammy-full.yaml

View File

@@ -0,0 +1 @@
noble-full.yaml

View File

@@ -3,31 +3,31 @@ variables:
local_overlay_enabled: False
series: &series jammy
series: &series noble
applications:
keystone-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
nova-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
glance-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
neutron-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
placement-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
vault-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
mysql-innodb-cluster:
@@ -41,26 +41,26 @@ applications:
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
channel: latest/edge
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
options:
source: *openstack-origin
channel: 3.9/edge
channel: latest/edge
vault:
charm: ch:vault
num_units: 1
channel: 1.7/edge
channel: latest/edge
ovn-central:
charm: ch:ovn-central
num_units: 3
options:
source: *openstack-origin
channel: 22.03/edge
channel: latest/edge
neutron-api-plugin-ovn:
charm: ch:neutron-api-plugin-ovn
channel: yoga/edge
channel: latest/edge
neutron-api:
charm: ch:neutron-api
series: *series
@@ -69,23 +69,23 @@ applications:
flat-network-providers: physnet1
neutron-security-groups: true
openstack-origin: *openstack-origin
channel: yoga/edge
channel: latest/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
channel: latest/edge
nova-cloud-controller:
charm: ch:nova-cloud-controller
num_units: 1
options:
network-manager: Neutron
openstack-origin: *openstack-origin
channel: yoga/edge
channel: latest/edge
ovn-chassis:
charm: ch:ovn-chassis
channel: 22.03/edge
channel: latest/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
@@ -95,13 +95,13 @@ applications:
enable-resize: true
migration-auth-type: ssh
openstack-origin: *openstack-origin
channel: yoga/edge
channel: latest/edge
placement:
charm: ch:placement
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
channel: latest/edge
memcached:
charm: ch:memcached
num_units: 1

View File

@@ -1,13 +1,13 @@
local_overlay_enabled: False
series: jammy
series: noble
applications:
keystone-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
vault-mysql-router:
charm: ../../../mysql-router.charm
charm: ../../../mysql-router_amd64.charm
options:
debug: True
mysql-innodb-cluster:
@@ -17,11 +17,11 @@ applications:
keystone:
charm: ch:keystone
num_units: 1
channel: yoga/edge
channel: latest/edge
vault:
charm: ch:vault
num_units: 1
channel: 1.7/edge
channel: latest/edge
relations:
- - vault:certificates
- mysql-innodb-cluster:certificates

View File

@@ -1,18 +0,0 @@
applications:
keystone:
num_units: 3
options:
vip: {{TEST_VIP00}}
nova-cloud-controller:
num_units: 3
options:
vip: {{TEST_VIP01}}
keystone-hacluster:
charm: ch:hacluster
channel: 2.4/edge
nova-hacluster:
charm: ch:hacluster
channel: 2.4/edge
relations:
- ["keystone:ha", "keystone-hacluster:ha"]
- ["nova-cloud-controller:ha", "nova-hacluster:ha"]

View File

@@ -9,10 +9,10 @@ applications:
vip: {{TEST_VIP01}}
keystone-hacluster:
charm: ch:hacluster
channel: 2.0.3/edge
channel: latest/edge
nova-hacluster:
charm: ch:hacluster
channel: 2.0.3/edge
channel: latest/edge
relations:
- ["keystone:ha", "keystone-hacluster:ha"]
- ["nova-cloud-controller:ha", "nova-hacluster:ha"]

View File

@@ -22,21 +22,21 @@ tests:
- zaza.openstack.charm_tests.hacluster.tests.HaclusterScaleBackAndForthTest
gate_bundles:
- full_model_ha: focal-full-ha
- full_model_ha: noble-full-ha
dev_bundles:
- full_model_ha: jammy-full-ha
- full_model_ha: noble-full-ha
smoke_bundles:
- full_model_ha: focal-full-ha
- full_model_ha: noble-full-ha
tests_options:
hacluster:
principle-app-name: keystone
hacluster-charm-name: hacluster
force_deploy:
- jammy
- jammy-full-ha
- noble
- noble-full-ha
target_deploy_status:
neutron-api-plugin-ovn:

View File

@@ -3,6 +3,8 @@ mysqlclient
tenacity<8.0.0
poetry-core
git+https://github.com/wolsen/charms.reactive.git@fix-entry-points#egg=charms.reactive
git+https://github.com/juju/charm-helpers.git#egg=charmhelpers
git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack

View File

@@ -5,7 +5,6 @@
#
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

View File

@@ -33,7 +33,6 @@ allowlist_externals =
charmcraft
bash
tox
{toxinidir}/rename.sh
deps =
-r{toxinidir}/requirements.txt
@@ -46,7 +45,6 @@ basepython = python3
commands =
charmcraft clean
charmcraft -v pack
{toxinidir}/rename.sh
charmcraft clean
[testenv:build-reactive]