Add charmcraft 3 support

Update the charmcraft.yaml file to use base and platforms, only
allowing noble support. Remove test bundles for older bases.

Also modernize build process using the reactive plugin, and modernize
tox.ini, update build.lock pins and remove cruft.

Change-Id: I5a2a5cf200c32823c7d2a83b8f6afbcddb8cacc9
func-test-pr: https://github.com/openstack-charmers/zaza-openstack-tests/pull/1255
This commit is contained in:
Luciano Lo Giudice 2024-08-01 15:02:57 -03:00
parent 881e21bdc1
commit 3346ed23cd
13 changed files with 304 additions and 805 deletions

@ -2,28 +2,33 @@ type: charm
parts: parts:
charm: charm:
source: src/
plugin: reactive plugin: reactive
build-snaps: reactive-charm-build-arguments:
- charm - --binary-wheels-from-source
build-packages: build-packages:
- tox - tox
- git - git
- python3-dev - python3-dev
- libffi-dev
source: src/
build-snaps:
- charm/latest/edge
build-environment: build-environment:
- CHARM_INTERFACES_DIR: /root/project/interfaces/ - CHARM_INTERFACES_DIR: $CRAFT_PROJECT_DIR/interfaces/
- CHARM_LAYERS_DIR: /root/project/layers/ - CHARM_LAYERS_DIR: $CRAFT_PROJECT_DIR/layers/
bases: base: ubuntu@24.04
- build-on: build-base: ubuntu@24.04
- name: ubuntu platforms:
channel: "20.04" amd64:
architectures: build-on: amd64
- amd64 build-for: amd64
run-on: arm64:
- name: ubuntu build-on: arm64
channel: "20.04" build-for: arm64
architectures: [amd64, s390x, ppc64el, arm64] s390x:
- name: ubuntu build-on: s390x
channel: "22.04" build-for: s390x
architectures: [amd64, s390x, ppc64el, arm64] ppc64el:
build-on: ppc64el
build-for: ppc64el

@ -7,4 +7,4 @@
needs_charm_build: true needs_charm_build: true
charm_build_name: ceph-rbd-mirror charm_build_name: ceph-rbd-mirror
build_type: charmcraft build_type: charmcraft
charmcraft_channel: 2.x/stable charmcraft_channel: 3.x/beta

@ -1,13 +1,3 @@
# This file is managed centrally by release-tools and should not be modified
# within individual charm repos. See the 'global' dir contents for available
# choices of *requirements.txt files for OpenStack Charms:
# https://github.com/openstack-charmers/release-tools
#
# 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, # NOTE: newer versions of cryptography require a Rust compiler to build,
# see # see
# * https://github.com/openstack-charmers/zaza/issues/421 # * https://github.com/openstack-charmers/zaza/issues/421

264
src/build.lock Normal file

@ -0,0 +1,264 @@
{
"locks": [
{
"type": "layer",
"item": "layer:leadership",
"url": "https://git.launchpad.net/layer-leadership",
"vcs": null,
"branch": "cc5bd3f49b2fa5e6c3ab2336763c313ec8bf083f",
"commit": "cc5bd3f49b2fa5e6c3ab2336763c313ec8bf083f"
},
{
"type": "layer",
"item": "layer:options",
"url": "https://github.com/juju-solutions/layer-options.git",
"vcs": null,
"branch": "fcdcea4e5de3e1556c24e6704607862d0ba00a56",
"commit": "fcdcea4e5de3e1556c24e6704607862d0ba00a56"
},
{
"type": "layer",
"item": "layer:basic",
"url": "https://github.com/juju-solutions/layer-basic.git",
"vcs": null,
"branch": "24324f8dab91bb304f7400dadc263ac6106268cb",
"commit": "24324f8dab91bb304f7400dadc263ac6106268cb"
},
{
"type": "layer",
"item": "layer:openstack",
"url": "https://github.com/openstack/charm-layer-openstack",
"vcs": null,
"branch": "7c671b0696977f455616565d956895b2f890464b",
"commit": "7c671b0696977f455616565d956895b2f890464b"
},
{
"type": "layer",
"item": "layer:ceph",
"url": "https://github.com/openstack/charm-layer-ceph.git",
"vcs": null,
"branch": "17d40abd8d9ec3b8c32756ca981c80c4733c016f",
"commit": "17d40abd8d9ec3b8c32756ca981c80c4733c016f"
},
{
"type": "layer",
"item": "ceph-rbd-mirror",
"url": null,
"vcs": null,
"branch": "881e21bdc16cecd62c1c2d9ba470c5f4ee600fdc",
"commit": "881e21bdc16cecd62c1c2d9ba470c5f4ee600fdc"
},
{
"type": "layer",
"item": "interface:tls-certificates",
"url": "https://github.com/juju-solutions/interface-tls-certificates",
"vcs": null,
"branch": "da891c403864482688ec767a964218e5857f0e49",
"commit": "da891c403864482688ec767a964218e5857f0e49"
},
{
"type": "layer",
"item": "interface:ceph-rbd-mirror",
"url": "https://github.com/openstack/charm-interface-ceph-rbd-mirror.git",
"vcs": null,
"branch": "d746757302beb385384f9c647afe68ce764bb3b7",
"commit": "d746757302beb385384f9c647afe68ce764bb3b7"
},
{
"type": "layer",
"item": "interface:nrpe-external-master",
"url": "https://github.com/canonical/nrpe-external-master-interface",
"vcs": null,
"branch": "c58fe7b01a151d933681b5bf67e47ad3de65eeaa",
"commit": "c58fe7b01a151d933681b5bf67e47ad3de65eeaa"
},
{
"type": "python_module",
"package": "pip",
"vcs": null,
"version": "22.0.4"
},
{
"type": "python_module",
"package": "flit_scm",
"vcs": null,
"version": "1.7.0"
},
{
"type": "python_module",
"package": "setuptools_scm",
"vcs": null,
"version": "6.4.2"
},
{
"type": "python_module",
"package": "MarkupSafe",
"vcs": null,
"version": "2.1.5"
},
{
"type": "python_module",
"package": "pluggy",
"vcs": null,
"version": "1.5.0"
},
{
"type": "python_module",
"package": "calver",
"vcs": null,
"version": "2022.6.26"
},
{
"type": "python_module",
"package": "Cython",
"vcs": null,
"version": "0.29.37"
},
{
"type": "python_module",
"package": "charms.reactive",
"url": "git+https://github.com/canonical/charms.reactive.git",
"branch": "f7debc39e623a3a73673ba1f7e4cb5bc7ae9ecd9",
"version": "f7debc39e623a3a73673ba1f7e4cb5bc7ae9ecd9",
"vcs": "git"
},
{
"type": "python_module",
"package": "packaging",
"vcs": null,
"version": "24.1"
},
{
"type": "python_module",
"package": "pyudev",
"vcs": null,
"version": "0.24.3"
},
{
"type": "python_module",
"package": "hatchling",
"vcs": null,
"version": "1.25.0"
},
{
"type": "python_module",
"package": "pathspec",
"vcs": null,
"version": "0.12.1"
},
{
"type": "python_module",
"package": "sniffio",
"vcs": null,
"version": "1.3.0"
},
{
"type": "python_module",
"package": "charms.ceph",
"url": "git+https://github.com/openstack/charms.ceph.git",
"branch": "64f3c1b12b14545a76321469478fb456b379832d",
"version": "64f3c1b12b14545a76321469478fb456b379832d",
"vcs": "git"
},
{
"type": "python_module",
"package": "pbr",
"vcs": null,
"version": "6.0.0"
},
{
"type": "python_module",
"package": "dnspython",
"vcs": null,
"version": "2.6.1"
},
{
"type": "python_module",
"package": "anyio",
"vcs": null,
"version": "3.6.2"
},
{
"type": "python_module",
"package": "netaddr",
"vcs": null,
"version": "0.7.19"
},
{
"type": "python_module",
"package": "tomli",
"vcs": null,
"version": "2.0.1"
},
{
"type": "python_module",
"package": "PyYAML",
"vcs": null,
"version": "6.0.1"
},
{
"type": "python_module",
"package": "charmhelpers",
"url": "git+https://github.com/juju/charm-helpers.git",
"branch": "1b2d4dc8f8effd79d782241a32a0485af1f01e73",
"version": "1b2d4dc8f8effd79d782241a32a0485af1f01e73",
"vcs": "git"
},
{
"type": "python_module",
"package": "idna",
"vcs": null,
"version": "3.7"
},
{
"type": "python_module",
"package": "psutil",
"vcs": null,
"version": "6.0.0"
},
{
"type": "python_module",
"package": "pyaml",
"vcs": null,
"version": "21.10.1"
},
{
"type": "python_module",
"package": "netifaces",
"vcs": null,
"version": "0.11.0"
},
{
"type": "python_module",
"package": "flit_core",
"vcs": null,
"version": "3.9.0"
},
{
"type": "python_module",
"package": "trove_classifiers",
"vcs": null,
"version": "2024.7.2"
},
{
"type": "python_module",
"package": "wheel",
"vcs": null,
"version": "0.43.0"
},
{
"type": "python_module",
"package": "charms.openstack",
"url": "git+https://github.com/openstack/charms.openstack.git",
"branch": "355d65f64cc1dac133d885aa7cfc58b1804a0c30",
"version": "355d65f64cc1dac133d885aa7cfc58b1804a0c30",
"vcs": "git"
},
{
"type": "python_module",
"package": "jinja2",
"vcs": null,
"version": "3.1.4"
}
]
}

@ -16,8 +16,7 @@ tags:
- file-servers - file-servers
- misc - misc
series: series:
- focal - noble
- jammy
extra-bindings: extra-bindings:
public: public:
cluster: cluster:

@ -1,187 +0,0 @@
variables:
openstack-origin: &openstack-origin cloud:focal-yoga
local_overlay_enabled: False
series: &series focal
machines:
'0':
constraints: "mem=3072M"
'1':
constraints: "mem=3072M"
'2':
constraints: "mem=3072M"
applications:
keystone-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
cinder-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
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: latest/edge
cinder:
charm: ch:cinder
num_units: 1
options:
block-device: None
glance-api-version: 2
openstack-origin: *openstack-origin
channel: yoga/edge
cinder-ceph:
charm: ch:cinder-ceph
num_units: 0
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
ceph-mon:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
bluestore: False
use-direct-io: False
osd-devices: '/dev/test-non-existent'
channel: quincy/edge
ceph-rbd-mirror:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
ceph-mon-b:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: quincy/edge
ceph-osd-b:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
bluestore: False
use-direct-io: False
osd-devices: '/dev/test-non-existent'
channel: quincy/edge
ceph-rbd-mirror-b:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
relations:
- - keystone:shared-db
- keystone-mysql-router:shared-db
- - keystone-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - glance:shared-db
- glance-mysql-router:shared-db
- - glance-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - cinder:shared-db
- cinder-mysql-router:shared-db
- - cinder-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - rabbitmq-server
- cinder
- - 'keystone:identity-service'
- cinder
- - 'keystone:identity-service'
- glance
- - cinder
- cinder-ceph
- - cinder-ceph:ceph
- ceph-mon:client
- - nova-compute:ceph-access
- cinder-ceph:ceph-access
- - nova-compute:amqp
- rabbitmq-server:amqp
- - glance:image-service
- nova-compute:image-service
- - glance
- ceph-mon
- - ceph-mon:osd
- ceph-osd:mon
- - ceph-mon
- ceph-rbd-mirror:ceph-local
- - ceph-mon
- ceph-rbd-mirror-b:ceph-remote
- - ceph-mon-b:osd
- ceph-osd-b:mon
- - ceph-mon-b
- ceph-rbd-mirror-b:ceph-local
- - ceph-mon-b
- ceph-rbd-mirror:ceph-remote

@ -1,184 +0,0 @@
variables:
openstack-origin: &openstack-origin cloud:jammy-antelope
series: &series jammy
local_overlay_enabled: False
series: *series
machines:
'0':
constraints: "mem=3072M"
'1':
constraints: "mem=3072M"
'2':
constraints: "mem=3072M"
applications:
keystone-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
cinder-mysql-router:
charm: ch:mysql-router
channel: latest/edge
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
num_units: 3
to:
- '0'
- '1'
- '2'
channel: 8.0.19/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
channel: 2023.1/edge
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
channel: 3.9/edge
cinder:
charm: ch:cinder
num_units: 1
options:
block-device: None
glance-api-version: 2
openstack-origin: *openstack-origin
channel: 2023.1/edge
cinder-ceph:
charm: ch:cinder-ceph
num_units: 0
channel: 2023.1/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: 2023.1/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
options:
openstack-origin: *openstack-origin
channel: 2023.1/edge
ceph-mon:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
bluestore: False
use-direct-io: False
osd-devices: '/dev/test-non-existent'
channel: quincy/edge
ceph-rbd-mirror:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
ceph-mon-b:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: quincy/edge
ceph-osd-b:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
bluestore: False
use-direct-io: False
osd-devices: '/dev/test-non-existent'
channel: quincy/edge
ceph-rbd-mirror-b:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
relations:
- - keystone:shared-db
- keystone-mysql-router:shared-db
- - keystone-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - glance:shared-db
- glance-mysql-router:shared-db
- - glance-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - cinder:shared-db
- cinder-mysql-router:shared-db
- - cinder-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - rabbitmq-server
- cinder
- - 'keystone:identity-service'
- cinder
- - 'keystone:identity-service'
- glance
- - cinder
- cinder-ceph
- - cinder-ceph:ceph
- ceph-mon:client
- - nova-compute:ceph-access
- cinder-ceph:ceph-access
- - nova-compute:amqp
- rabbitmq-server:amqp
- - glance:image-service
- nova-compute:image-service
- - glance
- ceph-mon
- - ceph-mon:osd
- ceph-osd:mon
- - ceph-mon
- ceph-rbd-mirror:ceph-local
- - ceph-mon
- ceph-rbd-mirror-b:ceph-remote
- - ceph-mon-b:osd
- ceph-osd-b:mon
- - ceph-mon-b
- ceph-rbd-mirror-b:ceph-local
- - ceph-mon-b
- ceph-rbd-mirror:ceph-remote

@ -1,180 +0,0 @@
variables:
openstack-origin: &openstack-origin cloud:jammy-bobcat
series: &series jammy
local_overlay_enabled: False
series: *series
machines:
'0':
constraints: "mem=3072M"
'1':
constraints: "mem=3072M"
'2':
constraints: "mem=3072M"
applications:
keystone-mysql-router:
charm: ch:mysql-router
channel: 8.0/edge
glance-mysql-router:
charm: ch:mysql-router
channel: 8.0/edge
cinder-mysql-router:
charm: ch:mysql-router
channel: 8.0/edge
mysql-innodb-cluster:
charm: ch:mysql-innodb-cluster
num_units: 3
to:
- '0'
- '1'
- '2'
channel: 8.0/edge
keystone:
charm: ch:keystone
num_units: 1
options:
openstack-origin: *openstack-origin
channel: 2023.2/edge
rabbitmq-server:
charm: ch:rabbitmq-server
num_units: 1
channel: 3.9/edge
cinder:
charm: ch:cinder
num_units: 1
options:
block-device: None
glance-api-version: 2
openstack-origin: *openstack-origin
channel: 2023.2/edge
cinder-ceph:
charm: ch:cinder-ceph
num_units: 0
channel: 2023.2/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: 2023.2/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
options:
openstack-origin: *openstack-origin
channel: 2023.2/edge
ceph-mon:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: reef/edge
ceph-osd:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
osd-devices: '/dev/test-non-existent'
channel: reef/edge
ceph-rbd-mirror:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
ceph-mon-b:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: reef/edge
ceph-osd-b:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
osd-devices: '/dev/test-non-existent'
channel: reef/edge
ceph-rbd-mirror-b:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
relations:
- - keystone:shared-db
- keystone-mysql-router:shared-db
- - keystone-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - glance:shared-db
- glance-mysql-router:shared-db
- - glance-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - cinder:shared-db
- cinder-mysql-router:shared-db
- - cinder-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - rabbitmq-server
- cinder
- - 'keystone:identity-service'
- cinder
- - 'keystone:identity-service'
- glance
- - cinder
- cinder-ceph
- - cinder-ceph:ceph
- ceph-mon:client
- - nova-compute:ceph-access
- cinder-ceph:ceph-access
- - nova-compute:amqp
- rabbitmq-server:amqp
- - glance:image-service
- nova-compute:image-service
- - glance
- ceph-mon
- - ceph-mon:osd
- ceph-osd:mon
- - ceph-mon
- ceph-rbd-mirror:ceph-local
- - ceph-mon
- ceph-rbd-mirror-b:ceph-remote
- - ceph-mon-b:osd
- ceph-osd-b:mon
- - ceph-mon-b
- ceph-rbd-mirror-b:ceph-local
- - ceph-mon-b
- ceph-rbd-mirror:ceph-remote

@ -1,186 +0,0 @@
variables:
openstack-origin: &openstack-origin distro
local_overlay_enabled: False
series: &series jammy
machines:
'0':
constraints: "mem=3072M"
'1':
constraints: "mem=3072M"
'2':
constraints: "mem=3072M"
applications:
keystone-mysql-router:
charm: ch:mysql-router
channel: latest/edge
glance-mysql-router:
charm: ch:mysql-router
channel: latest/edge
cinder-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
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: latest/edge
cinder:
charm: ch:cinder
num_units: 1
options:
block-device: None
glance-api-version: 2
channel: yoga/edge
cinder-ceph:
charm: ch:cinder-ceph
num_units: 0
channel: yoga/edge
glance:
charm: ch:glance
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
nova-compute:
charm: ch:nova-compute
num_units: 1
options:
openstack-origin: *openstack-origin
channel: yoga/edge
ceph-mon:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: quincy/edge
ceph-osd:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
bluestore: False
use-direct-io: False
osd-devices: '/dev/test-non-existent'
channel: quincy/edge
ceph-rbd-mirror:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
ceph-mon-b:
charm: ch:ceph-mon
num_units: 3
options:
expected-osd-count: 3
source: *openstack-origin
channel: quincy/edge
ceph-osd-b:
charm: ch:ceph-osd
num_units: 3
storage:
osd-devices: 'cinder,10G'
options:
source: *openstack-origin
bluestore: False
use-direct-io: False
osd-devices: '/dev/test-non-existent'
channel: quincy/edge
ceph-rbd-mirror-b:
series: *series
charm: ../../../ceph-rbd-mirror.charm
num_units: 1
options:
source: *openstack-origin
relations:
- - keystone:shared-db
- keystone-mysql-router:shared-db
- - keystone-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - glance:shared-db
- glance-mysql-router:shared-db
- - glance-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - cinder:shared-db
- cinder-mysql-router:shared-db
- - cinder-mysql-router:db-router
- mysql-innodb-cluster:db-router
- - rabbitmq-server
- cinder
- - 'keystone:identity-service'
- cinder
- - 'keystone:identity-service'
- glance
- - cinder
- cinder-ceph
- - cinder-ceph:ceph
- ceph-mon:client
- - nova-compute:ceph-access
- cinder-ceph:ceph-access
- - nova-compute:amqp
- rabbitmq-server:amqp
- - glance:image-service
- nova-compute:image-service
- - glance
- ceph-mon
- - ceph-mon:osd
- ceph-osd:mon
- - ceph-mon
- ceph-rbd-mirror:ceph-local
- - ceph-mon
- ceph-rbd-mirror-b:ceph-remote
- - ceph-mon-b:osd
- ceph-osd-b:mon
- - ceph-mon-b
- ceph-rbd-mirror-b:ceph-local
- - ceph-mon-b
- ceph-rbd-mirror:ceph-remote

@ -1,6 +1,6 @@
variables: variables:
openstack-origin: &openstack-origin cloud:jammy-caracal openstack-origin: &openstack-origin distro
series: &series jammy series: &series noble
local_overlay_enabled: False local_overlay_enabled: False
@ -73,7 +73,8 @@ applications:
num_units: 1 num_units: 1
options: options:
openstack-origin: *openstack-origin openstack-origin: *openstack-origin
channel: latest/edge channel: 2023.2/stable
series: jammy
ceph-mon: ceph-mon:
charm: ch:ceph-mon charm: ch:ceph-mon

@ -1,22 +1,12 @@
charm_name: ceph-rbd-mirror charm_name: ceph-rbd-mirror
smoke_bundles:
- jammy-antelope
gate_bundles: gate_bundles:
- jammy-bobcat - noble-caracal
comment: | comment: |
The e2e bundles are useful for development but adds no additional value to The e2e bundles are useful for development but adds no additional value to
the functional tests. the functional tests.
dev_bundles:
- focal-yoga
- focal-yoga-image-mirroring
- jammy-yoga
- jammy-yoga-image-mirroring
configure: configure:
- zaza.openstack.charm_tests.glance.setup.add_cirros_image - zaza.openstack.charm_tests.glance.setup.add_cirros_image
tests: tests:
- zaza.openstack.charm_tests.ceph.rbd_mirror.tests.CephRBDMirrorTest - zaza.openstack.charm_tests.ceph.rbd_mirror.tests.CephRBDMirrorTest
- zaza.openstack.charm_tests.ceph.rbd_mirror.tests.CephRBDMirrorControlledFailoverTest - zaza.openstack.charm_tests.ceph.rbd_mirror.tests.CephRBDMirrorControlledFailoverTest
- zaza.openstack.charm_tests.ceph.rbd_mirror.tests.CephRBDMirrorDisasterFailoverTest - zaza.openstack.charm_tests.ceph.rbd_mirror.tests.CephRBDMirrorDisasterFailoverTest
tests_options:
force_deploy:
- jammy-caracal

@ -1,4 +1,5 @@
git+https://github.com/juju/charm-helpers.git#egg=charmhelpers git+https://github.com/juju/charm-helpers.git#egg=charmhelpers
psutil psutil
poetry-core
git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack git+https://github.com/openstack/charms.openstack.git#egg=charms.openstack
# https://github.com/canonical/charms.reactive/pull/260
git+https://github.com/canonical/charms.reactive.git#egg=charms.reactive

30
tox.ini

@ -12,16 +12,12 @@ sitepackages = False
skip_missing_interpreters = False skip_missing_interpreters = False
[testenv] [testenv]
# We use tox mainly for virtual environment management for test requirements
# and do not install the charm code as a Python package into that environment.
# Ref: https://tox.wiki/en/latest/config.html#skip_install
skip_install = True
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0 PYTHONHASHSEED=0
TERM=linux TERM=linux
JUJU_REPOSITORY={toxinidir}/build
CHARM_LAYERS_DIR={toxinidir}/layers CHARM_LAYERS_DIR={toxinidir}/layers
CHARM_INTERFACES_DIR={toxinidir}/interfaces CHARM_INTERFACES_DIR={toxinidir}/interfaces
JUJU_REPOSITORY={toxinidir}/build
passenv = passenv =
no_proxy no_proxy
http_proxy http_proxy
@ -39,10 +35,6 @@ deps =
[testenv:build] [testenv:build]
basepython = python3 basepython = python3
# charmcraft clean is done to ensure that
# `tox -e build` always performs a clean, repeatable build.
# For faster rebuilds during development,
# directly run `charmcraft -v pack && ./rename.sh`.
commands = commands =
charmcraft clean charmcraft clean
charmcraft -v pack charmcraft -v pack
@ -52,7 +44,7 @@ commands =
[testenv:build-reactive] [testenv:build-reactive]
basepython = python3 basepython = python3
commands = commands =
charm-build --log-level DEBUG --use-lock-file-branches -o {toxinidir}/build/builds src {posargs} charm-build --log-level DEBUG --use-lock-file-branches --binary-wheels-from-source -o {toxinidir}/build/builds src {posargs}
[testenv:add-build-lock-file] [testenv:add-build-lock-file]
basepython = python3 basepython = python3
@ -61,22 +53,16 @@ commands =
[testenv:py3] [testenv:py3]
basepython = python3 basepython = python3
deps = -r{toxinidir}/test-requirements.txt deps =
commands = stestr run --slowest {posargs} -c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/test-requirements.txt
[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} commands = stestr run --slowest {posargs}
[testenv:py310] [testenv:py310]
basepython = python3.10 basepython = python3.10
deps = -r{toxinidir}/test-requirements.txt deps =
-c {env:TEST_CONSTRAINTS_FILE:https://raw.githubusercontent.com/openstack-charmers/zaza-openstack-tests/master/constraints/constraints-2024.1.txt}
-r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs} commands = stestr run --slowest {posargs}
[testenv:pep8] [testenv:pep8]