Add yoga bundles and release-tool syncs

* charm-helpers sync for classic charms
* pin pyparsing for aodhclient
* pin cffi for py35
* add non-voting focal-yoga bundle
* add non-voting jammy-yoga bundle
* add series metadata for jammy
* switch xena bundles to voting
* run focal-ussuri as smoke tests
* remove trusty, xenial, and groovy metadata and tests

Change-Id: I3d5670334344384fb8be5855926f2c9441f793ba
This commit is contained in:
Corey Bryant 2021-10-29 17:00:39 -04:00
parent c1eac8ea68
commit 60e243dbf0
12 changed files with 272 additions and 80 deletions

View File

@ -6,6 +6,18 @@
- bionic-train_ceph-rbd-mirror - bionic-train_ceph-rbd-mirror
- bionic-stein_ceph-rbd-mirror - bionic-stein_ceph-rbd-mirror
- bionic-queens_ceph-rbd-mirror - bionic-queens_ceph-rbd-mirror
- bionic-ussuri_ceph-rbd-mirror
- focal-ussuri_ceph-rbd-mirror
- focal-victoria_ceph-rbd-mirror
- focal-wallaby_ceph-rbd-mirror
- focal-xena_ceph-rbd-mirror
- focal-yoga_ceph-rbd-mirror:
voting: false
- hirsute-wallaby_ceph-rbd-mirror
- impish-xena_ceph-rbd-mirror:
voting: false
- jammy-yoga_ceph-rbd-mirror:
voting: false
vars: vars:
needs_charm_build: true needs_charm_build: true
charm_build_name: ceph-rbd-mirror charm_build_name: ceph-rbd-mirror
@ -27,4 +39,40 @@
- job: - job:
name: bionic-stein_ceph-rbd-mirror name: bionic-stein_ceph-rbd-mirror
parent: bionic-stein parent: bionic-stein
dependencies: *smoke-jobs dependencies: *smoke-jobs
- job:
name: bionic-ussuri_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: focal-ussuri_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: focal-victoria_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: focal-wallaby_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: focal-xena_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: focal-yoga_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: hirsute-wallaby_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: impish-xena_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs
- job:
name: jammy-yoga_ceph-rbd-mirror
parent: bionic-stein
dependencies: *smoke-jobs

18
pip.sh Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
#
# 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 tox.ini for OpenStack Charms:
# https://github.com/openstack-charmers/release-tools
#
# setuptools 58.0 dropped the support for use_2to3=true which is needed to
# install blessings (an indirect dependency of charm-tools).
#
# More details on the beahvior of tox and virtualenv creation can be found at
# https://github.com/tox-dev/tox/issues/448
#
# This script is wrapper to force the use of the pinned versions early in the
# process when the virtualenv was created and upgraded before installing the
# depedencies declared in the target.
pip install 'pip<20.3' 'setuptools<50.0.0'
pip "$@"

View File

@ -9,6 +9,7 @@
setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
# Build requirements # Build requirements
cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35.
charm-tools==2.8.3 charm-tools==2.8.3
simplejson simplejson

View File

@ -15,7 +15,6 @@ tags:
- file-servers - file-servers
- misc - misc
series: series:
- xenial
- bionic - bionic
- focal - focal
- groovy - groovy

View File

@ -1,111 +1,164 @@
series: xenial variables:
openstack-origin: &openstack-origin cloud:focal-xena
series: &series focal
machines:
'0':
constraints: "mem=3072M"
'1':
constraints: "mem=3072M"
'2':
constraints: "mem=3072M"
applications: applications:
mysql:
charm: cs:~openstack-charmers-next/percona-cluster keystone-mysql-router:
num_units: 1 charm: cs:~openstack-charmers-next/mysql-router
glance-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
cinder-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options: options:
source: cloud:xenial-pike source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone: keystone:
charm: cs:~openstack-charmers-next/keystone charm: cs:~openstack-charmers-next/keystone
num_units: 1 num_units: 1
options: options:
openstack-origin: cloud:xenial-pike openstack-origin: *openstack-origin
rabbitmq-server: rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1 num_units: 1
options: options:
source: cloud:xenial-pike source: *openstack-origin
cinder: cinder:
charm: cs:~openstack-charmers-next/cinder charm: cs:~openstack-charmers-next/cinder
num_units: 1 num_units: 1
options: options:
block-device: None block-device: None
glance-api-version: 2 glance-api-version: 2
openstack-origin: cloud:xenial-pike openstack-origin: *openstack-origin
cinder-ceph: cinder-ceph:
charm: cs:~openstack-charmers-next/cinder-ceph charm: cs:~openstack-charmers-next/cinder-ceph
num_units: 0 num_units: 0
glance: glance:
charm: cs:~openstack-charmers-next/glance charm: cs:~openstack-charmers-next/glance
num_units: 1 num_units: 1
options: options:
openstack-origin: cloud:xenial-pike openstack-origin: *openstack-origin
nova-compute: nova-compute:
charm: cs:~openstack-charmers-next/nova-compute charm: cs:~openstack-charmers-next/nova-compute
num_units: 1 num_units: 1
options: options:
openstack-origin: cloud:xenial-pike openstack-origin: *openstack-origin
ceph-mon: ceph-mon:
charm: cs:~openstack-charmers-next/ceph-mon charm: cs:~openstack-charmers-next/ceph-mon
num_units: 3 num_units: 3
options: options:
expected-osd-count: 3 expected-osd-count: 3
source: cloud:xenial-pike source: *openstack-origin
ceph-osd: ceph-osd:
charm: cs:~openstack-charmers-next/ceph-osd charm: cs:~openstack-charmers-next/ceph-osd
num_units: 3 num_units: 3
options: options:
source: cloud:xenial-pike source: *openstack-origin
bluestore: False bluestore: False
use-direct-io: False use-direct-io: False
osd-devices: /opt osd-devices: /opt
ceph-rbd-mirror: ceph-rbd-mirror:
series: xenial series: *series
charm: ../../../ceph-rbd-mirror charm: ../../../ceph-rbd-mirror
num_units: 1 num_units: 1
options: options:
source: cloud:xenial-pike source: *openstack-origin
ceph-mon-b: ceph-mon-b:
charm: cs:~openstack-charmers-next/ceph-mon charm: cs:~openstack-charmers-next/ceph-mon
num_units: 3 num_units: 3
options: options:
expected-osd-count: 3 expected-osd-count: 3
source: cloud:xenial-pike source: *openstack-origin
ceph-osd-b: ceph-osd-b:
charm: cs:~openstack-charmers-next/ceph-osd charm: cs:~openstack-charmers-next/ceph-osd
num_units: 3 num_units: 3
options: options:
source: cloud:xenial-pike source: *openstack-origin
bluestore: False bluestore: False
use-direct-io: False use-direct-io: False
osd-devices: /opt osd-devices: /opt
ceph-rbd-mirror-b: ceph-rbd-mirror-b:
series: xenial series: *series
charm: ../../../ceph-rbd-mirror charm: ../../../ceph-rbd-mirror
num_units: 1 num_units: 1
options: options:
source: cloud:xenial-pike source: *openstack-origin
relations: relations:
- - mysql
- keystone - - keystone:shared-db
- - mysql - keystone-mysql-router:shared-db
- cinder - - keystone-mysql-router:db-router
- - mysql - mysql-innodb-cluster:db-router
- glance
- - 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 - - rabbitmq-server
- cinder - cinder
- - keystone - - keystone
- cinder - cinder
- - keystone - - keystone
- glance - glance
- - cinder - - cinder
- cinder-ceph - cinder-ceph
- - cinder-ceph:ceph - - cinder-ceph:ceph
- ceph-mon:client - ceph-mon:client
- - nova-compute:ceph-access - - nova-compute:ceph-access
- cinder-ceph:ceph-access - cinder-ceph:ceph-access
- - nova-compute:amqp - - nova-compute:amqp
- rabbitmq-server:amqp - rabbitmq-server:amqp
- - glance:image-service - - glance:image-service
- nova-compute:image-service - nova-compute:image-service
- - glance - - glance
- ceph-mon - ceph-mon
- - ceph-mon:osd - - ceph-mon:osd
- ceph-osd:mon - ceph-osd:mon
- - ceph-mon - - ceph-mon
- ceph-rbd-mirror:ceph-local - ceph-rbd-mirror:ceph-local
- - ceph-mon - - ceph-mon
- ceph-rbd-mirror-b:ceph-remote - ceph-rbd-mirror-b:ceph-remote
- - ceph-mon-b:osd - - ceph-mon-b:osd
- ceph-osd-b:mon - ceph-osd-b:mon
- - ceph-mon-b - - ceph-mon-b

View File

@ -1,111 +1,164 @@
series: xenial variables:
openstack-origin: &openstack-origin cloud:focal-yoga
series: &series focal
machines:
'0':
constraints: "mem=3072M"
'1':
constraints: "mem=3072M"
'2':
constraints: "mem=3072M"
applications: applications:
mysql:
charm: cs:~openstack-charmers-next/percona-cluster keystone-mysql-router:
num_units: 1 charm: cs:~openstack-charmers-next/mysql-router
glance-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
cinder-mysql-router:
charm: cs:~openstack-charmers-next/mysql-router
mysql-innodb-cluster:
charm: cs:~openstack-charmers-next/mysql-innodb-cluster
num_units: 3
options: options:
source: cloud:xenial-queens source: *openstack-origin
to:
- '0'
- '1'
- '2'
keystone: keystone:
charm: cs:~openstack-charmers-next/keystone charm: cs:~openstack-charmers-next/keystone
num_units: 1 num_units: 1
options: options:
openstack-origin: cloud:xenial-queens openstack-origin: *openstack-origin
rabbitmq-server: rabbitmq-server:
charm: cs:~openstack-charmers-next/rabbitmq-server charm: cs:~openstack-charmers-next/rabbitmq-server
num_units: 1 num_units: 1
options: options:
source: cloud:xenial-queens source: *openstack-origin
cinder: cinder:
charm: cs:~openstack-charmers-next/cinder charm: cs:~openstack-charmers-next/cinder
num_units: 1 num_units: 1
options: options:
block-device: None block-device: None
glance-api-version: 2 glance-api-version: 2
openstack-origin: cloud:xenial-queens openstack-origin: *openstack-origin
cinder-ceph: cinder-ceph:
charm: cs:~openstack-charmers-next/cinder-ceph charm: cs:~openstack-charmers-next/cinder-ceph
num_units: 0 num_units: 0
glance: glance:
charm: cs:~openstack-charmers-next/glance charm: cs:~openstack-charmers-next/glance
num_units: 1 num_units: 1
options: options:
openstack-origin: cloud:xenial-queens openstack-origin: *openstack-origin
nova-compute: nova-compute:
charm: cs:~openstack-charmers-next/nova-compute charm: cs:~openstack-charmers-next/nova-compute
num_units: 1 num_units: 1
options: options:
openstack-origin: cloud:xenial-queens openstack-origin: *openstack-origin
ceph-mon: ceph-mon:
charm: cs:~openstack-charmers-next/ceph-mon charm: cs:~openstack-charmers-next/ceph-mon
num_units: 3 num_units: 3
options: options:
expected-osd-count: 3 expected-osd-count: 3
source: cloud:xenial-queens source: *openstack-origin
ceph-osd: ceph-osd:
charm: cs:~openstack-charmers-next/ceph-osd charm: cs:~openstack-charmers-next/ceph-osd
num_units: 3 num_units: 3
options: options:
source: cloud:xenial-queens source: *openstack-origin
bluestore: False bluestore: False
use-direct-io: False use-direct-io: False
osd-devices: /opt osd-devices: /opt
ceph-rbd-mirror: ceph-rbd-mirror:
series: xenial series: *series
charm: ../../../ceph-rbd-mirror charm: ../../../ceph-rbd-mirror
num_units: 1 num_units: 1
options: options:
source: cloud:xenial-queens source: *openstack-origin
ceph-mon-b: ceph-mon-b:
charm: cs:~openstack-charmers-next/ceph-mon charm: cs:~openstack-charmers-next/ceph-mon
num_units: 3 num_units: 3
options: options:
expected-osd-count: 3 expected-osd-count: 3
source: cloud:xenial-queens source: *openstack-origin
ceph-osd-b: ceph-osd-b:
charm: cs:~openstack-charmers-next/ceph-osd charm: cs:~openstack-charmers-next/ceph-osd
num_units: 3 num_units: 3
options: options:
source: cloud:xenial-queens source: *openstack-origin
bluestore: False bluestore: False
use-direct-io: False use-direct-io: False
osd-devices: /opt osd-devices: /opt
ceph-rbd-mirror-b: ceph-rbd-mirror-b:
series: xenial series: *series
charm: ../../../ceph-rbd-mirror charm: ../../../ceph-rbd-mirror
num_units: 1 num_units: 1
options: options:
source: cloud:xenial-queens source: *openstack-origin
relations: relations:
- - mysql
- keystone - - keystone:shared-db
- - mysql - keystone-mysql-router:shared-db
- cinder - - keystone-mysql-router:db-router
- - mysql - mysql-innodb-cluster:db-router
- glance
- - 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 - - rabbitmq-server
- cinder - cinder
- - keystone - - keystone
- cinder - cinder
- - keystone - - keystone
- glance - glance
- - cinder - - cinder
- cinder-ceph - cinder-ceph
- - cinder-ceph:ceph - - cinder-ceph:ceph
- ceph-mon:client - ceph-mon:client
- - nova-compute:ceph-access - - nova-compute:ceph-access
- cinder-ceph:ceph-access - cinder-ceph:ceph-access
- - nova-compute:amqp - - nova-compute:amqp
- rabbitmq-server:amqp - rabbitmq-server:amqp
- - glance:image-service - - glance:image-service
- nova-compute:image-service - nova-compute:image-service
- - glance - - glance
- ceph-mon - ceph-mon
- - ceph-mon:osd - - ceph-mon:osd
- ceph-osd:mon - ceph-osd:mon
- - ceph-mon - - ceph-mon
- ceph-rbd-mirror:ceph-local - ceph-rbd-mirror:ceph-local
- - ceph-mon - - ceph-mon
- ceph-rbd-mirror-b:ceph-remote - ceph-rbd-mirror-b:ceph-remote
- - ceph-mon-b:osd - - ceph-mon-b:osd
- ceph-osd-b:mon - ceph-osd-b:mon
- - ceph-mon-b - - ceph-mon-b

View File

@ -1,7 +1,7 @@
variables: variables:
openstack-origin: &openstack-origin distro openstack-origin: &openstack-origin distro
series: &series groovy series: &series impish
machines: machines:
'0': '0':
@ -48,7 +48,6 @@ applications:
options: options:
block-device: None block-device: None
glance-api-version: 2 glance-api-version: 2
openstack-origin: *openstack-origin
cinder-ceph: cinder-ceph:
charm: cs:~openstack-charmers-next/cinder-ceph charm: cs:~openstack-charmers-next/cinder-ceph

View File

@ -1,7 +1,7 @@
variables: variables:
openstack-origin: &openstack-origin distro openstack-origin: &openstack-origin distro
series: &series groovy series: &series jammy
machines: machines:
'0': '0':
@ -48,13 +48,10 @@ applications:
options: options:
block-device: None block-device: None
glance-api-version: 2 glance-api-version: 2
openstack-origin: *openstack-origin
cinder-ceph: cinder-ceph:
charm: cs:~openstack-charmers-next/cinder-ceph charm: cs:~openstack-charmers-next/cinder-ceph
num_units: 0 num_units: 0
options:
rbd-mirroring-mode: image
glance: glance:
charm: cs:~openstack-charmers-next/glance charm: cs:~openstack-charmers-next/glance
@ -143,8 +140,6 @@ relations:
- cinder-ceph - cinder-ceph
- - cinder-ceph:ceph - - cinder-ceph:ceph
- ceph-mon:client - ceph-mon:client
- - cinder-ceph:ceph-replication-device
- ceph-mon-b:client
- - nova-compute:ceph-access - - nova-compute:ceph-access
- cinder-ceph:ceph-access - cinder-ceph:ceph-access

View File

@ -1,33 +1,37 @@
charm_name: ceph-rbd-mirror charm_name: ceph-rbd-mirror
smoke_bundles: smoke_bundles:
- bionic-train - focal-ussuri
gate_bundles: gate_bundles:
- bionic-train
- bionic-train-image-mirroring
- bionic-stein
- bionic-queens - bionic-queens
- bionic-queens-e2e
- bionic-queens-e2e-lxd
- bionic-stein
- bionic-ussuri
- focal-ussuri
- focal-ussuri-image-mirroring
- focal-victoria
- focal-victoria-image-mirroring
- focal-wallaby
- focal-wallaby-image-mirroring
- focal-xena
- focal-xena-image-mirroring
- hirsute-wallaby
- hirsute-wallaby-image-mirroring
- impish-xena
- impish-xena-image-mirroring
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: dev_bundles:
- hirsute-wallaby
- hirsute-wallaby-image-mirroring
- groovy-victoria
- groovy-victoria-image-mirroring
- focal-wallaby
- focal-wallaby-image-mirroring
- focal-victoria
- focal-victoria-image-mirroring
- bionic-queens-e2e
- bionic-queens-e2e-lxd
- bionic-rocky - bionic-rocky
- bionic-ussuri - bionic-train
- bionic-train-image-mirroring
# This is a dev bundle because we hit https://bugs.launchpad.net/charm-ceph-rbd-mirror/+bug/1892201. # This is a dev bundle because we hit https://bugs.launchpad.net/charm-ceph-rbd-mirror/+bug/1892201.
- bionic-ussuri-image-mirroring - bionic-ussuri-image-mirroring
- focal-ussuri - focal-yoga
- focal-ussuri-image-mirroring - focal-yoga-image-mirroring
- xenial-queens - jammy-yoga
- xenial-pike - jammy-yoga-image-mirroring
configure: configure:
- zaza.openstack.charm_tests.glance.setup.add_lts_image - zaza.openstack.charm_tests.glance.setup.add_lts_image
tests: tests:
@ -37,3 +41,8 @@ tests:
tests_options: tests_options:
force_deploy: force_deploy:
- hirsute-wallaby - hirsute-wallaby
- hirsute-wallaby-image-mirroring
- impish-xena
- impish-xena-image-mirroring
- jammy-yoga
- jammy-yoga-image-mirroring

View File

@ -22,12 +22,12 @@ skip_missing_interpreters = False
requires = pip < 20.3 requires = pip < 20.3
virtualenv < 20.0 virtualenv < 20.0
# NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci # NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci
minversion = 3.2.0 minversion = 3.18.0
[testenv] [testenv]
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0 PYTHONHASHSEED=0
whitelist_externals = juju allowlist_externals = juju
passenv = HOME TERM CS_* OS_* TEST_* passenv = HOME TERM CS_* OS_* TEST_*
deps = -r{toxinidir}/test-requirements.txt deps = -r{toxinidir}/test-requirements.txt
install_command = install_command =

View File

@ -3,6 +3,8 @@
# choices of *requirements.txt files for OpenStack Charms: # choices of *requirements.txt files for OpenStack Charms:
# https://github.com/openstack-charmers/release-tools # https://github.com/openstack-charmers/release-tools
# #
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 setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85
stestr>=2.2.0 stestr>=2.2.0

17
tox.ini
View File

@ -11,6 +11,21 @@ envlist = pep8,py3
sitepackages = False sitepackages = False
# NOTE: Avoid false positives by not skipping missing interpreters. # NOTE: Avoid false positives by not skipping missing interpreters.
skip_missing_interpreters = False skip_missing_interpreters = False
# NOTES:
# * We avoid the new dependency resolver by pinning pip < 20.3, see
# https://github.com/pypa/pip/issues/9187
# * Pinning dependencies requires tox >= 3.2.0, see
# https://tox.readthedocs.io/en/latest/config.html#conf-requires
# * It is also necessary to pin virtualenv as a newer virtualenv would still
# lead to fetching the latest pip in the func* tox targets, see
# https://stackoverflow.com/a/38133283
requires =
pip < 20.3
virtualenv < 20.0
setuptools<50.0.0
# NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci
minversion = 3.18.0
[testenv] [testenv]
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
@ -21,7 +36,7 @@ setenv = VIRTUAL_ENV={envdir}
JUJU_REPOSITORY={toxinidir}/build JUJU_REPOSITORY={toxinidir}/build
passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY
install_command = install_command =
pip install {opts} {packages} {toxinidir}/pip.sh install {opts} {packages}
deps = deps =
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt