diff --git a/osci.yaml b/osci.yaml index 78add4a..6693429 100644 --- a/osci.yaml +++ b/osci.yaml @@ -2,6 +2,12 @@ templates: - charm-unit-jobs - charm-functional-jobs + check: + jobs: + - focal-xena: + voting: false + - impish-xena: + voting: false vars: needs_charm_build: true - charm_build_name: aodh \ No newline at end of file + charm_build_name: aodh diff --git a/pip.sh b/pip.sh new file mode 100755 index 0000000..9a7e6b0 --- /dev/null +++ b/pip.sh @@ -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 "$@" diff --git a/rebuild b/rebuild index 2fedeba..d59492b 100644 --- a/rebuild +++ b/rebuild @@ -2,4 +2,4 @@ # when dependencies of the charm change, # but nothing in the charm needs to. # simply change the uuid to something new -f9b532b4-b3eb-11eb-aefc-c77108bf2af0 +53a26c76-1178-11ec-82fd-9325926a4dcf diff --git a/src/tests/bundles/focal-ussuri.yaml b/src/tests/bundles/focal-ussuri.yaml index 394d23e..e312ae1 100644 --- a/src/tests/bundles/focal-ussuri.yaml +++ b/src/tests/bundles/focal-ussuri.yaml @@ -48,16 +48,18 @@ applications: aodh: charm: ../../../aodh num_units: 1 + options: + openstack-origin: *openstack-origin to: - '3' rabbitmq-server: charm: cs:~openstack-charmers-next/rabbitmq-server num_units: 1 - to: - - '4' options: source: *openstack-origin + to: + - '4' keystone: charm: cs:~openstack-charmers-next/keystone diff --git a/src/tests/bundles/focal-victoria.yaml b/src/tests/bundles/focal-victoria.yaml index a0f1c00..21d5ddd 100644 --- a/src/tests/bundles/focal-victoria.yaml +++ b/src/tests/bundles/focal-victoria.yaml @@ -48,16 +48,18 @@ applications: aodh: charm: ../../../aodh num_units: 1 + options: + openstack-origin: *openstack-origin to: - '3' rabbitmq-server: charm: cs:~openstack-charmers-next/rabbitmq-server num_units: 1 - to: - - '4' options: source: *openstack-origin + to: + - '4' keystone: charm: cs:~openstack-charmers-next/keystone diff --git a/src/tests/bundles/focal-wallaby.yaml b/src/tests/bundles/focal-wallaby.yaml index 9984970..245e701 100644 --- a/src/tests/bundles/focal-wallaby.yaml +++ b/src/tests/bundles/focal-wallaby.yaml @@ -48,16 +48,18 @@ applications: aodh: charm: ../../../aodh num_units: 1 + options: + openstack-origin: *openstack-origin to: - '3' rabbitmq-server: charm: cs:~openstack-charmers-next/rabbitmq-server num_units: 1 - to: - - '4' options: source: *openstack-origin + to: + - '4' keystone: charm: cs:~openstack-charmers-next/keystone @@ -115,6 +117,9 @@ applications: to: - '14' + nrpe: + charm: cs:nrpe + relations: - - 'keystone:shared-db' @@ -162,3 +167,6 @@ relations: - - 'gnocchi:coordinator-memcached' - 'memcached:cache' + + - - 'aodh:nrpe-external-master' + - 'nrpe:nrpe-external-master' diff --git a/src/tests/bundles/focal-xena.yaml b/src/tests/bundles/focal-xena.yaml new file mode 100644 index 0000000..8a5f2be --- /dev/null +++ b/src/tests/bundles/focal-xena.yaml @@ -0,0 +1,172 @@ +variables: + openstack-origin: &openstack-origin cloud:focal-xena + +series: focal + +machines: + 0: + constraints: "mem=3072M" + 1: + constraints: "mem=3072M" + 2: + constraints: "mem=3072M" + 3: + 4: + 5: + 6: + 7: + 8: + 9: + 10: + 11: + 12: + 13: + 14: + series: bionic + +# We specify machine placements for these to improve iteration +# time, given that machine "0" comes up way before machine "7" +applications: + + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + aodh-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + gnocchi-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + + mysql-innodb-cluster: + charm: cs:~openstack-charmers-next/mysql-innodb-cluster + num_units: 3 + options: + source: *openstack-origin + to: + - '0' + - '1' + - '2' + + aodh: + charm: ../../../aodh + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '3' + + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + options: + source: *openstack-origin + to: + - '4' + + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '5' + + ceilometer: + charm: cs:~openstack-charmers-next/ceilometer + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '6' + + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + num_units: 3 + storage: + osd-devices: 'cinder,10G' + options: + source: *openstack-origin + to: + - '7' + - '8' + - '9' + + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + expected-osd-count: 3 + monitor-count: '3' + source: *openstack-origin + to: + - '10' + - '11' + - '12' + + gnocchi: + charm: cs:~openstack-charmers-next/gnocchi + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '13' + + memcached: + charm: cs:~memcached-team/memcached + num_units: 1 + # Note that holding memcached at bionic as it's not available at focal yet. + series: bionic + to: + - '14' + + nrpe: + charm: cs:nrpe + +relations: + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + + - - 'ceph-osd:mon' + - 'ceph-mon:osd' + + - - 'aodh:shared-db' + - 'aodh-mysql-router:shared-db' + - - 'aodh-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'aodh:amqp' + - 'rabbitmq-server:amqp' + + - - 'aodh:identity-service' + - 'keystone:identity-service' + + - - 'ceilometer:amqp' + - 'rabbitmq-server:amqp' + + - - 'ceilometer:identity-credentials' + - 'keystone:identity-credentials' + + - - 'ceilometer:identity-notifications' + - 'keystone:identity-notifications' + + - - 'ceilometer:metric-service' + - 'gnocchi:metric-service' + + - - 'gnocchi:identity-service' + - 'keystone:identity-service' + + - - 'gnocchi:shared-db' + - 'gnocchi-mysql-router:shared-db' + - - 'gnocchi-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'gnocchi:storage-ceph' + - 'ceph-mon:client' + + - - 'gnocchi:coordinator-memcached' + - 'memcached:cache' + + - - 'aodh:nrpe-external-master' + - 'nrpe:nrpe-external-master' diff --git a/src/tests/bundles/hirsute-wallaby.yaml b/src/tests/bundles/hirsute-wallaby.yaml index c06af61..d897218 100644 --- a/src/tests/bundles/hirsute-wallaby.yaml +++ b/src/tests/bundles/hirsute-wallaby.yaml @@ -48,16 +48,18 @@ applications: aodh: charm: ../../../aodh num_units: 1 + options: + openstack-origin: *openstack-origin to: - '3' rabbitmq-server: charm: cs:~openstack-charmers-next/rabbitmq-server num_units: 1 - to: - - '4' options: source: *openstack-origin + to: + - '4' keystone: charm: cs:~openstack-charmers-next/keystone @@ -115,6 +117,9 @@ applications: to: - '14' + nrpe: + charm: cs:nrpe + relations: - - 'keystone:shared-db' @@ -162,3 +167,6 @@ relations: - - 'gnocchi:coordinator-memcached' - 'memcached:cache' + + - - 'aodh:nrpe-external-master' + - 'nrpe:nrpe-external-master' diff --git a/src/tests/bundles/groovy-victoria.yaml b/src/tests/bundles/impish-xena.yaml similarity index 97% rename from src/tests/bundles/groovy-victoria.yaml rename to src/tests/bundles/impish-xena.yaml index 055b0bd..bef3b7c 100644 --- a/src/tests/bundles/groovy-victoria.yaml +++ b/src/tests/bundles/impish-xena.yaml @@ -1,7 +1,7 @@ variables: openstack-origin: &openstack-origin distro -series: groovy +series: impish machines: 0: @@ -48,16 +48,18 @@ applications: aodh: charm: ../../../aodh num_units: 1 + options: + openstack-origin: *openstack-origin to: - '3' rabbitmq-server: charm: cs:~openstack-charmers-next/rabbitmq-server num_units: 1 - to: - - '4' options: source: *openstack-origin + to: + - '4' keystone: charm: cs:~openstack-charmers-next/keystone @@ -110,8 +112,7 @@ applications: memcached: charm: cs:~memcached-team/memcached num_units: 1 - # Note that holding memcached at bionic as it's not available at - # focal/groovy yet. + # Note that holding memcached at bionic as it's not available at focal yet. series: bionic to: - '14' diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index ea79436..105f16f 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -9,7 +9,8 @@ gate_bundles: - focal-ussuri - focal-victoria - focal-wallaby - - groovy-victoria + - focal-xena + - impish-xena dev_bundles: - trusty-mitaka - xenial-ocata @@ -36,3 +37,4 @@ tests_options: force_deploy: - trusty-mitaka - hirsute-wallaby + - impish-xena diff --git a/src/tox.ini b/src/tox.ini index e763047..b40d295 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -22,12 +22,12 @@ skip_missing_interpreters = False requires = pip < 20.3 virtualenv < 20.0 # NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci -minversion = 3.2.0 +minversion = 3.18.0 [testenv] setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 -whitelist_externals = juju +allowlist_externals = juju passenv = HOME TERM CS_* OS_* TEST_* deps = -r{toxinidir}/test-requirements.txt install_command = diff --git a/tox.ini b/tox.ini index 5c81801..22159df 100644 --- a/tox.ini +++ b/tox.ini @@ -11,6 +11,21 @@ envlist = pep8,py3 sitepackages = False # NOTE: Avoid false positives by not skipping missing interpreters. 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] setenv = VIRTUAL_ENV={envdir} @@ -21,7 +36,7 @@ setenv = VIRTUAL_ENV={envdir} JUJU_REPOSITORY={toxinidir}/build passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY install_command = - pip install {opts} {packages} + {toxinidir}/pip.sh install {opts} {packages} deps = -r{toxinidir}/requirements.txt