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

View File

@ -2,28 +2,33 @@ type: charm
parts:
charm:
source: src/
plugin: reactive
build-snaps:
- charm
reactive-charm-build-arguments:
- --binary-wheels-from-source
build-packages:
- tox
- git
- python3-dev
- libffi-dev
source: src/
build-snaps:
- charm/latest/edge
build-environment:
- CHARM_INTERFACES_DIR: /root/project/interfaces/
- CHARM_LAYERS_DIR: /root/project/layers/
- 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
build-base: ubuntu@24.04
platforms:
amd64:
build-on: amd64
build-for: amd64
arm64:
build-on: arm64
build-for: arm64
s390x:
build-on: s390x
build-for: s390x
ppc64el:
build-on: ppc64el
build-for: ppc64el

View File

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

View File

@ -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,
# see
# * https://github.com/openstack-charmers/zaza/issues/421

264
src/build.lock Normal file
View 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"
}
]
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,5 @@
git+https://github.com/juju/charm-helpers.git#egg=charmhelpers
psutil
poetry-core
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
View File

@ -12,16 +12,12 @@ sitepackages = False
skip_missing_interpreters = False
[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}
PYTHONHASHSEED=0
TERM=linux
JUJU_REPOSITORY={toxinidir}/build
CHARM_LAYERS_DIR={toxinidir}/layers
CHARM_INTERFACES_DIR={toxinidir}/interfaces
JUJU_REPOSITORY={toxinidir}/build
passenv =
no_proxy
http_proxy
@ -39,10 +35,6 @@ deps =
[testenv:build]
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 =
charmcraft clean
charmcraft -v pack
@ -52,7 +44,7 @@ commands =
[testenv:build-reactive]
basepython = python3
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]
basepython = python3
@ -61,22 +53,16 @@ commands =
[testenv:py3]
basepython = python3
deps = -r{toxinidir}/test-requirements.txt
commands = stestr run --slowest {posargs}
[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
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}
[testenv:py310]
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}
[testenv:pep8]