From 4550a202013a7dfbda06f57bfade83aa8d0c0dd0 Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Fri, 29 Oct 2021 17:00:43 -0400 Subject: [PATCH] Add yoga bundles and release-tool syncs * charm-helpers sync for classic charms * sync from release-tools * switch to release-specific zosci functional tests * run focal-ussuri as smoke tests * remove trusty, xenial, and groovy metadata/tests * drop py35 and add py39 Change-Id: I3f5192f348164fdaed124519704fcb2f00871ab8 --- osci.yaml | 85 +++++- pip.sh | 18 ++ requirements.txt | 1 + src/metadata.yaml | 2 - src/tests/bundles/focal-ussuri-41-s3.yaml | 4 +- src/tests/bundles/focal-ussuri-41.yaml | 4 +- src/tests/bundles/focal-victoria-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/focal-victoria-41.yaml | 285 ++++++++++++++++++ src/tests/bundles/focal-wallaby-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/focal-wallaby-41.yaml | 285 ++++++++++++++++++ src/tests/bundles/focal-xena-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/focal-xena-41.yaml | 285 ++++++++++++++++++ src/tests/bundles/focal-yoga-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/focal-yoga-41.yaml | 285 ++++++++++++++++++ src/tests/bundles/hirsute-wallaby-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/hirsute-wallaby-41.yaml | 285 ++++++++++++++++++ src/tests/bundles/impish-xena-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/impish-xena-41.yaml | 285 ++++++++++++++++++ src/tests/bundles/jammy-yoga-41-s3.yaml | 293 +++++++++++++++++++ src/tests/bundles/jammy-yoga-41.yaml | 285 ++++++++++++++++++ src/tests/tests.yaml | 38 ++- src/tox.ini | 4 +- test-requirements.txt | 2 + tox.ini | 22 +- 24 files changed, 4197 insertions(+), 29 deletions(-) create mode 100755 pip.sh create mode 100644 src/tests/bundles/focal-victoria-41-s3.yaml create mode 100644 src/tests/bundles/focal-victoria-41.yaml create mode 100644 src/tests/bundles/focal-wallaby-41-s3.yaml create mode 100644 src/tests/bundles/focal-wallaby-41.yaml create mode 100644 src/tests/bundles/focal-xena-41-s3.yaml create mode 100644 src/tests/bundles/focal-xena-41.yaml create mode 100644 src/tests/bundles/focal-yoga-41-s3.yaml create mode 100644 src/tests/bundles/focal-yoga-41.yaml create mode 100644 src/tests/bundles/hirsute-wallaby-41-s3.yaml create mode 100644 src/tests/bundles/hirsute-wallaby-41.yaml create mode 100644 src/tests/bundles/impish-xena-41-s3.yaml create mode 100644 src/tests/bundles/impish-xena-41.yaml create mode 100644 src/tests/bundles/jammy-yoga-41-s3.yaml create mode 100644 src/tests/bundles/jammy-yoga-41.yaml diff --git a/osci.yaml b/osci.yaml index 2f0188e..8610c77 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,18 +1,40 @@ - project: templates: - - charm-unit-jobs + - charm-yoga-unit-jobs check: jobs: - - bionic-stein-40 - - bionic-stein-41 - - bionic-train-40 - - bionic-train-41 - - bionic-ussuri-41 - - focal-ussuri-41 - bionic-queens-40 - bionic-queens-41 - - bionic-train-41-s3 - - focal-ussuri-41-s3 + - bionic-stein-40 + - bionic-stein-41 + # Non-voting due to: + # https://bugs.launchpad.net/charm-trilio-data-mover/+bug/1951999 + - bionic-train-40: + voting: false + - bionic-train-41: + voting: false + - bionic-train-41-s3: + voting: false + - bionic-ussuri-41: + voting: false + - focal-ussuri-41: + voting: false + - focal-ussuri-41-s3: + voting: false + - focal-victoria-41-s3: + voting: false + - focal-wallaby-41-s3: + voting: false + - focal-xena-41-s3: + voting: false + - focal-yoga-41-s3: + voting: false + - hirsute-wallaby-41-s3: + voting: false + - impish-xena-41-s3: + voting: false + - jammy-yoga-41-s3: + voting: false vars: needs_charm_build: true charm_build_name: trilio-data-mover @@ -21,10 +43,9 @@ parent: func-target dependencies: - osci-lint - - tox-py35 - tox-py36 - - tox-py37 - tox-py38 + - tox-py39 vars: tox_extra_args: focal-ussuri-41 - job: @@ -82,3 +103,45 @@ dependencies: *smoke-jobs vars: tox_extra_args: focal-ussuri-41-s3 +- job: + name: focal-victoria-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: focal-victoria-41-s3 +- job: + name: focal-wallaby-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: focal-wallaby-41-s3 +- job: + name: focal-xena-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: focal-xena-41-s3 +- job: + name: focal-yoga-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: focal-yoga-41-s3 +- job: + name: hirsute-wallaby-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: hirsute-wallaby-41-s3 +- job: + name: impish-xena-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: impish-xena-41-s3 +- job: + name: jammy-yoga-41-s3 + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: jammy-yoga-41-s3 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/requirements.txt b/requirements.txt index b786b42..a68620f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ 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. charm-tools==2.8.3 simplejson diff --git a/src/metadata.yaml b/src/metadata.yaml index 293e4a2..56f8230 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -14,10 +14,8 @@ tags: - storage - backup series: -- xenial - bionic - focal -- groovy requires: amqp: interface: rabbitmq diff --git a/src/tests/bundles/focal-ussuri-41-s3.yaml b/src/tests/bundles/focal-ussuri-41-s3.yaml index 4861dba..92484f6 100644 --- a/src/tests/bundles/focal-ussuri-41-s3.yaml +++ b/src/tests/bundles/focal-ussuri-41-s3.yaml @@ -223,7 +223,7 @@ applications: nova-compute: charm: cs:~openstack-charmers-next/nova-compute num_units: 3 - consussurits: mem=4G + constraints: mem=4G options: openstack-origin: *openstack-origin config-flags: default_ephemeral_format=ext4 @@ -268,7 +268,7 @@ applications: expected-osd-count: 3 ceph-osd: charm: cs:~openstack-charmers-next/ceph-osd - consussurits: mem=1G + constraints: mem=1G num_units: 3 options: source: *openstack-origin diff --git a/src/tests/bundles/focal-ussuri-41.yaml b/src/tests/bundles/focal-ussuri-41.yaml index 28148cd..54bc749 100644 --- a/src/tests/bundles/focal-ussuri-41.yaml +++ b/src/tests/bundles/focal-ussuri-41.yaml @@ -212,7 +212,7 @@ applications: nova-compute: charm: cs:~openstack-charmers-next/nova-compute num_units: 3 - consussurits: mem=4G + constraints: mem=4G options: openstack-origin: *openstack-origin config-flags: default_ephemeral_format=ext4 @@ -255,7 +255,7 @@ applications: expected-osd-count: 3 ceph-osd: charm: cs:~openstack-charmers-next/ceph-osd - consussurits: mem=1G + constraints: mem=1G num_units: 3 options: source: *openstack-origin diff --git a/src/tests/bundles/focal-victoria-41-s3.yaml b/src/tests/bundles/focal-victoria-41-s3.yaml new file mode 100644 index 0000000..c752e3e --- /dev/null +++ b/src/tests/bundles/focal-victoria-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-victoria' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-victoria-41.yaml b/src/tests/bundles/focal-victoria-41.yaml new file mode 100644 index 0000000..34f82d0 --- /dev/null +++ b/src/tests/bundles/focal-victoria-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-victoria' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-wallaby-41-s3.yaml b/src/tests/bundles/focal-wallaby-41-s3.yaml new file mode 100644 index 0000000..3a00336 --- /dev/null +++ b/src/tests/bundles/focal-wallaby-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-wallaby' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-wallaby-41.yaml b/src/tests/bundles/focal-wallaby-41.yaml new file mode 100644 index 0000000..71ab8be --- /dev/null +++ b/src/tests/bundles/focal-wallaby-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-wallaby' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-xena-41-s3.yaml b/src/tests/bundles/focal-xena-41-s3.yaml new file mode 100644 index 0000000..aeea65f --- /dev/null +++ b/src/tests/bundles/focal-xena-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-xena' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-xena-41.yaml b/src/tests/bundles/focal-xena-41.yaml new file mode 100644 index 0000000..89fcf9a --- /dev/null +++ b/src/tests/bundles/focal-xena-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-xena' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-yoga-41-s3.yaml b/src/tests/bundles/focal-yoga-41-s3.yaml new file mode 100644 index 0000000..5375b09 --- /dev/null +++ b/src/tests/bundles/focal-yoga-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-yoga' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/focal-yoga-41.yaml b/src/tests/bundles/focal-yoga-41.yaml new file mode 100644 index 0000000..7659bb1 --- /dev/null +++ b/src/tests/bundles/focal-yoga-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin 'cloud:focal-yoga' + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series focal + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/hirsute-wallaby-41-s3.yaml b/src/tests/bundles/hirsute-wallaby-41-s3.yaml new file mode 100644 index 0000000..8d06369 --- /dev/null +++ b/src/tests/bundles/hirsute-wallaby-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin distro + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series hirsute + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/hirsute-wallaby-41.yaml b/src/tests/bundles/hirsute-wallaby-41.yaml new file mode 100644 index 0000000..b8c1835 --- /dev/null +++ b/src/tests/bundles/hirsute-wallaby-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin distro + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series hirsute + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/impish-xena-41-s3.yaml b/src/tests/bundles/impish-xena-41-s3.yaml new file mode 100644 index 0000000..af597a2 --- /dev/null +++ b/src/tests/bundles/impish-xena-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin distro + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series impish + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/impish-xena-41.yaml b/src/tests/bundles/impish-xena-41.yaml new file mode 100644 index 0000000..2ab7238 --- /dev/null +++ b/src/tests/bundles/impish-xena-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin distro + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series impish + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/jammy-yoga-41-s3.yaml b/src/tests/bundles/jammy-yoga-41-s3.yaml new file mode 100644 index 0000000..f254bcd --- /dev/null +++ b/src/tests/bundles/jammy-yoga-41-s3.yaml @@ -0,0 +1,293 @@ +variables: + openstack-origin: &openstack-origin distro + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series jammy + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'ceph-radosgw:mon' + - 'ceph-mon:radosgw' + - - 'ceph-radosgw:identity-service' + - 'keystone:identity-service' + - - 'ceph-radosgw:certificates' + - 'vault:certificates' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + options: + source: *openstack-origin + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + backup-target-type: s3 + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/bundles/jammy-yoga-41.yaml b/src/tests/bundles/jammy-yoga-41.yaml new file mode 100644 index 0000000..6044059 --- /dev/null +++ b/src/tests/bundles/jammy-yoga-41.yaml @@ -0,0 +1,285 @@ +variables: + openstack-origin: &openstack-origin distro + triliovault-pkg-source: &triliovault-pkg-source 'deb [trusted=yes] https://apt.fury.io/triliodata-4-1/ /' + +series: &series jammy + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:amqp-nova' + - 'rabbitmq-server:amqp' + - - 'cinder:identity-service' + - 'keystone:identity-service' + - - 'nova-cloud-controller:identity-service' + - 'keystone:identity-service' + - - 'glance:identity-service' + - 'keystone:identity-service' + - - 'neutron-api:identity-service' + - 'keystone:identity-service' + - - 'neutron-openvswitch:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-api:amqp' + - 'rabbitmq-server:amqp' + - - 'neutron-gateway:neutron-plugin-api' + - 'neutron-api:neutron-plugin-api' + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + - - 'nova-compute:image-service' + - 'glance:image-service' + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:quantum-network-service' + - 'neutron-gateway:quantum-network-service' + - - 'nova-compute:neutron-plugin' + - 'neutron-openvswitch:neutron-plugin' + - - 'neutron-openvswitch:amqp' + - 'rabbitmq-server:amqp' + - - 'nova-cloud-controller:neutron-api' + - 'neutron-api:neutron-api' + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + - - 'trilio-wlm:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-wlm:identity-service' + - 'keystone:identity-service' + - - 'glance:ceph' + - 'ceph-mon:client' + - - 'ceph-mon:osd' + - 'ceph-osd:mon' + - - 'ceph-osd:secrets-storage' + - 'vault:secrets' + - - 'cinder:storage-backend' + - 'cinder-ceph:storage-backend' + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' + - - 'vault:certificates' + - 'keystone:certificates' + - - 'vault:certificates' + - 'neutron-api:certificates' + - - 'vault:certificates' + - 'cinder:certificates' + - - 'vault:certificates' + - 'glance:certificates' + - - 'vault:certificates' + - 'nova-cloud-controller:certificates' + - - 'vault:certificates' + - 'trilio-wlm:certificates' + - - 'placement:identity-service' + - 'keystone:identity-service' + - - 'placement:placement' + - 'nova-cloud-controller:placement' + - - 'vault:certificates' + - 'placement:certificates' + - - 'trilio-data-mover:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-data-mover:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-dm-api:identity-service' + - 'keystone:identity-service' + - - 'trilio-dm-api:amqp' + - 'rabbitmq-server:amqp' + - - 'trilio-dm-api:certificates' + - 'vault:certificates' + - - 'trilio-horizon-plugin:dashboard-plugin' + - 'openstack-dashboard:dashboard-plugin' + - - 'openstack-dashboard:identity-service' + - 'keystone:identity-service' + - - 'trilio-data-mover:ceph' + - 'ceph-mon:client' + + - - 'trilio-dm-api:shared-db' + - 'trilio-dm-api-mysql-router:shared-db' + - - 'trilio-dm-api-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-dm-mysql-router:juju-info' + - 'nova-compute:juju-info' + - - 'trilio-data-mover:shared-db' + - 'trilio-dm-mysql-router:shared-db' + - - 'trilio-dm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'trilio-wlm:shared-db' + - 'trilio-wlm-mysql-router:shared-db' + - - 'trilio-wlm-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-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' + - - 'neutron-api:shared-db' + - 'neutron-api-mysql-router:shared-db' + - - 'neutron-api-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' + - - 'nova-cloud-controller:shared-db' + - 'nova-cloud-controller-mysql-router:shared-db' + - - 'nova-cloud-controller-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'vault:shared-db' + - 'vault-mysql-router:shared-db' + - - 'vault-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' +applications: + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-dm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + trilio-wlm-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-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 + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: "None" + glance-api-version: 2 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + admin-password: openstack + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + manage-neutron-plugin-legacy-mode: True + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + debug: true + nova-compute: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 3 + constraints: mem=4G + options: + openstack-origin: *openstack-origin + config-flags: default_ephemeral_format=ext4 + enable-live-migration: true + enable-resize: true + migration-auth-type: ssh + debug: true + cpu-model: kvm64 + cpu-mode: custom + # Allow for more retries when testing ontop of openstack + config-flags: block_device_allocate_retries=120 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + trilio-data-mover: + charm: ../../../trilio-data-mover + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-dm-api: + charm: cs:~openstack-charmers-next/trilio-dm-api + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + trilio-horizon-plugin: + charm: cs:~openstack-charmers-next/trilio-horizon-plugin + options: + triliovault-pkg-source: *triliovault-pkg-source + trilio-wlm: + charm: cs:~openstack-charmers-next/trilio-wlm + num_units: 1 + options: + openstack-origin: *openstack-origin + triliovault-pkg-source: *triliovault-pkg-source + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + options: + source: *openstack-origin + expected-osd-count: 3 + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + constraints: mem=1G + num_units: 3 + options: + source: *openstack-origin + osd-encrypt-keymanager: vault + osd-encrypt: True + storage: + osd-devices: cinder,40G + cinder-ceph: + charm: cs:~openstack-charmers-next/cinder-ceph + vault: + num_units: 1 + charm: cs:~openstack-charmers-next/vault + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + nfs-server-test-fixture: + charm: cs:~openstack-charmers-next/nfs-server-test-fixture + num_units: 1 + storage: + share: cinder,40G + openstack-dashboard: + charm: cs:~openstack-charmers-next/openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index 46c146e..acb86a1 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -20,18 +20,33 @@ configure: - zaza.openstack.charm_tests.nova.setup.create_flavors - zaza.openstack.charm_tests.nova.setup.manage_ssh_key gate_bundles: - - s3: bionic-train-41-s3 - - s3: focal-ussuri-41-s3 - - bionic-stein-40 - - bionic-stein-41 - - bionic-train-40 - - bionic-train-41 - - bionic-ussuri-41 - - focal-ussuri-41 - bionic-queens-40 - bionic-queens-41 -smoke_bundles: + - bionic-stein-40 + - bionic-stein-41 + - bionic-ussuri-41 + - focal-ussuri-41 + - focal-victoria-41 + - focal-wallaby-41 + - focal-xena-41 + - hirsute-wallaby-41 + - impish-xena-41 + - s3: focal-ussuri-41-s3 + - s3: focal-victoria-41-s3 + - s3: focal-wallaby-41-s3 + - s3: focal-xena-41-s3 + - s3: hirsute-wallaby-41-s3 + - s3: impish-xena-41-s3 +dev_bundles: - bionic-train-40 + - bionic-train-41 + - focal-yoga-41 + - jammy-yoga-41 + - s3: bionic-train-41-s3 + - s3: focal-yoga-41-s3 + - s3: jammy-yoga-41-s3 +smoke_bundles: + - focal-ussuri-41 target_deploy_status: vault: workload-status: blocked @@ -57,3 +72,8 @@ target_deploy_status: ceph-radosgw: workload-status: waiting workload-status-message: "Incomplete relations: mon" +tests_options: + force_deploy: + - hirsute-wallaby-41-s3 + - impish-xena-41-s3 + - jammy-yoga-41-s3 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/test-requirements.txt b/test-requirements.txt index af069e1..bb1307f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,6 +3,8 @@ # choices of *requirements.txt files for OpenStack Charms: # 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 stestr>=2.2.0 diff --git a/tox.ini b/tox.ini index 5c81801..faf6092 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 @@ -60,6 +75,11 @@ 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} + [testenv:pep8] basepython = python3 deps = flake8==3.9.2