From 1f2aea2399d718f73de6c7a15f030a587d9d5a53 Mon Sep 17 00:00:00 2001
From: Alex Kavanagh <alex.kavanagh@canonical.com>
Date: Thu, 27 Jan 2022 14:16:01 +0000
Subject: [PATCH] Migrate charm to charmhub latest/edge track

Change-Id: I8e8f9280793728a46620a6b1465dde7cfae01ca7
---
 charmcraft.yaml                              |  13 +
 metadata.yaml                                |   1 +
 osci.yaml                                    |  20 +-
 src/metadata.yaml                            |   3 -
 src/tests/bundles/bionic-queens.yaml         | 184 ---------
 src/tests/bundles/bionic-stein.yaml          | 198 ----------
 src/tests/bundles/bionic-ussuri.yaml         | 345 -----------------
 src/tests/bundles/focal-ussuri.yaml          | 383 -------------------
 src/tests/bundles/focal-victoria.yaml        | 383 -------------------
 src/tests/bundles/focal-wallaby.yaml         | 383 -------------------
 src/tests/bundles/focal-xena.yaml            |  73 ++--
 src/tests/bundles/focal-yoga.yaml            |  76 ++--
 src/tests/bundles/hirsute-wallaby.yaml       | 375 ------------------
 src/tests/bundles/impish-xena.yaml           |  73 ++--
 src/tests/bundles/jammy-yoga.yaml            |  73 ++--
 src/tests/bundles/overlays/bionic-ha.yaml.j2 |   6 +-
 src/tests/tests.yaml                         |   8 +-
 17 files changed, 217 insertions(+), 2380 deletions(-)
 create mode 100644 charmcraft.yaml
 create mode 120000 metadata.yaml
 delete mode 100644 src/tests/bundles/bionic-queens.yaml
 delete mode 100644 src/tests/bundles/bionic-stein.yaml
 delete mode 100644 src/tests/bundles/bionic-ussuri.yaml
 delete mode 100644 src/tests/bundles/focal-ussuri.yaml
 delete mode 100644 src/tests/bundles/focal-victoria.yaml
 delete mode 100644 src/tests/bundles/focal-wallaby.yaml
 delete mode 100644 src/tests/bundles/hirsute-wallaby.yaml

diff --git a/charmcraft.yaml b/charmcraft.yaml
new file mode 100644
index 0000000..a850351
--- /dev/null
+++ b/charmcraft.yaml
@@ -0,0 +1,13 @@
+type: charm
+
+parts:
+  charm:
+    source: src/
+    plugin: reactive
+    build-snaps: [charm]
+
+bases:
+  - name: ubuntu
+    channel: "20.04"
+    architectures:
+      - amd64
diff --git a/metadata.yaml b/metadata.yaml
new file mode 120000
index 0000000..0768683
--- /dev/null
+++ b/metadata.yaml
@@ -0,0 +1 @@
+src/metadata.yaml
\ No newline at end of file
diff --git a/osci.yaml b/osci.yaml
index 06e83ae..8bf3da4 100644
--- a/osci.yaml
+++ b/osci.yaml
@@ -1,23 +1,9 @@
 - project:
     templates:
-      - charm-yoga-unit-jobs
-      - charm-yoga-functional-jobs
+      - charm-unit-jobs-py38
+      - charm-unit-jobs-py39
       - charm-xena-functional-jobs
-      - charm-wallaby-functional-jobs
-      - charm-victoria-functional-jobs
-      # Non-voting due to:
-      # https://bugs.launchpad.net/charm-keystone-saml-mellon/+bug/1840515
-      # - charm-ussuri-functional-jobs
-      - charm-stein-functional-jobs
-      - charm-queens-functional-jobs
-    check:
-      jobs:
-        # Non-voting due to:
-        # https://bugs.launchpad.net/charm-keystone-saml-mellon/+bug/1840515
-        - bionic-ussuri:
-            voting: false
-        - focal-ussuri:
-            voting: false
+      - charm-yoga-functional-jobs
     vars:
       needs_charm_build: true
       charm_build_name: keystone-saml-mellon
diff --git a/src/metadata.yaml b/src/metadata.yaml
index 3777572..9018656 100644
--- a/src/metadata.yaml
+++ b/src/metadata.yaml
@@ -20,10 +20,7 @@ tags:
 - federation
 - idP
 series:
-- bionic
 - focal
-- groovy
-- hirsute
 - impish
 provides:
   keystone-fid-service-provider:
diff --git a/src/tests/bundles/bionic-queens.yaml b/src/tests/bundles/bionic-queens.yaml
deleted file mode 100644
index a5f7777..0000000
--- a/src/tests/bundles/bionic-queens.yaml
+++ /dev/null
@@ -1,184 +0,0 @@
-relations:
-- - nova-compute:amqp
-  - rabbitmq-server:amqp
-- - neutron-gateway:amqp
-  - rabbitmq-server:amqp
-- - keystone:shared-db
-  - mysql:shared-db
-- - 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
-- - neutron-api:shared-db
-  - mysql:shared-db
-- - neutron-api:amqp
-  - rabbitmq-server:amqp
-- - neutron-gateway:neutron-plugin-api
-  - neutron-api:neutron-plugin-api
-- - glance:shared-db
-  - mysql:shared-db
-- - glance:amqp
-  - rabbitmq-server:amqp
-- - nova-cloud-controller:image-service
-  - glance:image-service
-- - nova-compute:image-service
-  - glance:image-service
-- - nova-cloud-controller:cloud-compute
-  - nova-compute:cloud-compute
-- - 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
-- - openstack-dashboard:identity-service
-  - keystone:identity-service
-- - openstack-dashboard:shared-db
-  - mysql:shared-db
-- - nova-cloud-controller:shared-db
-  - mysql:shared-db
-- - nova-cloud-controller:neutron-api
-  - neutron-api:neutron-api
-- - cinder:image-service
-  - glance:image-service
-- - cinder:amqp
-  - rabbitmq-server:amqp
-- - cinder:identity-service
-  - keystone:identity-service
-- - cinder:cinder-volume-service
-  - nova-cloud-controller:cinder-volume-service
-- - cinder:shared-db
-  - mysql:shared-db
-- - ntp:juju-info
-  - nova-compute:juju-info
-- - ntp:juju-info
-  - neutron-gateway:juju-info
-- - keystone
-  - keystone-saml-mellon1
-- - keystone
-  - keystone-saml-mellon2
-- - vault:shared-db
-  - mysql:shared-db
-- - vault:certificates
-  - keystone:certificates
-- - vault:certificates
-  - glance:certificates
-- - vault:certificates
-  - openstack-dashboard:certificates
-- - openstack-dashboard
-  - keystone-saml-mellon1
-- - openstack-dashboard
-  - keystone-saml-mellon2
-- - keystone:websso-trusted-dashboard
-  - openstack-dashboard:websso-trusted-dashboard
-- - vault:certificates
-  - cinder:certificates
-- - vault:certificates
-  - neutron-api:certificates
-- - vault:certificates
-  - nova-cloud-controller:certificates
-
-series: bionic
-services:
-  cinder:
-    charm: cs:~openstack-charmers-next/cinder
-    num_units: 1
-    options:
-      block-device: None
-      glance-api-version: 2
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 1
-    options:
-      token-provider: 'fernet'
-  mysql:
-    charm: cs:~openstack-charmers-next/percona-cluster
-    num_units: 1
-    constraints: mem=3072M
-    options:
-      innodb-buffer-pool-size: 256M
-      max-connections: 1000
-  neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
-    num_units: 1
-    options:
-      flat-network-providers: physnet1
-      neutron-security-groups: true
-  neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
-    num_units: 1
-    options:
-      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:
-      network-manager: Neutron
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-  ntp:
-    charm: cs:ntp
-    num_units: 0
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 1
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-  keystone-saml-mellon1:
-    series: bionic
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-  keystone-saml-mellon2:
-    series: bionic
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
diff --git a/src/tests/bundles/bionic-stein.yaml b/src/tests/bundles/bionic-stein.yaml
deleted file mode 100644
index 511837f..0000000
--- a/src/tests/bundles/bionic-stein.yaml
+++ /dev/null
@@ -1,198 +0,0 @@
-variables:
-  openstack-origin: &openstack-origin cloud:bionic-ussuri
-
-series: bionic
-
-relations:
-- - nova-compute:amqp
-  - rabbitmq-server:amqp
-- - neutron-gateway:amqp
-  - rabbitmq-server:amqp
-- - keystone:shared-db
-  - mysql:shared-db
-- - 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
-- - neutron-api:shared-db
-  - mysql:shared-db
-- - neutron-api:amqp
-  - rabbitmq-server:amqp
-- - neutron-gateway:neutron-plugin-api
-  - neutron-api:neutron-plugin-api
-- - glance:shared-db
-  - mysql:shared-db
-- - glance:amqp
-  - rabbitmq-server:amqp
-- - nova-cloud-controller:image-service
-  - glance:image-service
-- - nova-compute:image-service
-  - glance:image-service
-- - nova-cloud-controller:cloud-compute
-  - nova-compute:cloud-compute
-- - 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
-- - openstack-dashboard:identity-service
-  - keystone:identity-service
-- - openstack-dashboard:shared-db
-  - mysql:shared-db
-- - nova-cloud-controller:shared-db
-  - mysql:shared-db
-- - nova-cloud-controller:neutron-api
-  - neutron-api:neutron-api
-- - cinder:image-service
-  - glance:image-service
-- - cinder:amqp
-  - rabbitmq-server:amqp
-- - cinder:identity-service
-  - keystone:identity-service
-- - cinder:cinder-volume-service
-  - nova-cloud-controller:cinder-volume-service
-- - cinder:shared-db
-  - mysql:shared-db
-- - ntp:juju-info
-  - nova-compute:juju-info
-- - ntp:juju-info
-  - neutron-gateway:juju-info
-- - keystone
-  - keystone-saml-mellon1
-- - keystone
-  - keystone-saml-mellon2
-- - vault:shared-db
-  - mysql:shared-db
-- - vault:certificates
-  - keystone:certificates
-- - vault:certificates
-  - glance:certificates
-- - vault:certificates
-  - openstack-dashboard:certificates
-- - openstack-dashboard
-  - keystone-saml-mellon1
-- - openstack-dashboard
-  - keystone-saml-mellon2
-- - keystone:websso-trusted-dashboard
-  - openstack-dashboard:websso-trusted-dashboard
-- - vault:certificates
-  - cinder:certificates
-- - vault:certificates
-  - neutron-api:certificates
-- - vault:certificates
-  - nova-cloud-controller:certificates
-
-services:
-  cinder:
-    charm: cs:~openstack-charmers-next/cinder
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      block-device: None
-      glance-api-version: 2
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      token-provider: 'fernet'
-  mysql:
-    charm: cs:~openstack-charmers-next/percona-cluster
-    num_units: 1
-    constraints: mem=3072M
-    options:
-      innodb-buffer-pool-size: 256M
-      max-connections: 1000
-  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
-  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
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      openstack-origin: *openstack-origin
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-  ntp:
-    charm: cs:ntp
-    num_units: 0
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-  keystone-saml-mellon1:
-    series: bionic
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-  keystone-saml-mellon2:
-    series: bionic
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
diff --git a/src/tests/bundles/bionic-ussuri.yaml b/src/tests/bundles/bionic-ussuri.yaml
deleted file mode 100644
index 763b558..0000000
--- a/src/tests/bundles/bionic-ussuri.yaml
+++ /dev/null
@@ -1,345 +0,0 @@
-variables:
-  openstack-origin: &openstack-origin cloud:bionic-ussuri
-
-series: bionic
-
-comment:
-- 'machines section to decide order of deployment. database sooner = faster'
-machines:
-  '0':
-    constraints: mem=3072M
-  '1':
-  '2':
-  '3':
-  '4':
-  '5':
-  '6':
-  '7':
-  '8':
-  '9':
-  '10':
-  '11':
-  '12':
-  '13':
-  '14':
-  '15':
-  '16':
-
-applications:
-
-  mysql:
-    charm: cs:~openstack-charmers-next/percona-cluster
-    num_units: 1
-    options:
-      innodb-buffer-pool-size: 256M
-      max-connections: 1000
-    to:
-      - '0'
-
-  cinder:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
-    options:
-      openstack-origin: *openstack-origin
-      glance-api-version: 2
-      block-device: None
-    to:
-      - '1'
-
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '2'
-
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-      token-provider: 'fernet'
-    to:
-      - '3'
-      - '4'
-      - '5'
-
-  neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      manage-neutron-plugin-legacy-mode: true
-      flat-network-providers: physnet1
-      neutron-security-groups: true
-    to:
-      - '6'
-
-  neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      bridge-mappings: physnet1:br-ex
-    to:
-      - '7'
-
-  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
-    to:
-      - '8'
-
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      openstack-origin: *openstack-origin
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-    to:
-      - '9'
-      - '10'
-
-  ntp:
-    charm: cs:ntp
-    num_units: 0
-
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '11'
-      - '12'
-      - '13'
-
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-    options:
-      source: *openstack-origin
-    to:
-      - '14'
-
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-    to:
-      - '15'
-
-  placement:
-    charm: cs:~openstack-charmers-next/placement
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '16'
-
-  keystone-saml-mellon1:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-
-  keystone-saml-mellon2:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
-
-  keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-  openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-relations:
-
-  - - 'nova-compute:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'keystone:shared-db'
-    - 'mysql:shared-db'
-
-  - - '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'
-
-  - - 'neutron-api:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'neutron-api:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:neutron-plugin-api'
-    - 'neutron-api:neutron-plugin-api'
-
-  - - 'glance:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'glance:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'nova-cloud-controller:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-compute:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-cloud-controller:cloud-compute'
-    - 'nova-compute:cloud-compute'
-
-  - - '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'
-
-  - - 'openstack-dashboard:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'openstack-dashboard:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'nova-cloud-controller:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'nova-cloud-controller:neutron-api'
-    - 'neutron-api:neutron-api'
-
-  - - 'cinder:image-service'
-    - 'glance:image-service'
-
-  - - 'cinder:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'cinder:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'cinder:cinder-volume-service'
-    - 'nova-cloud-controller:cinder-volume-service'
-
-  - - 'cinder:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'ntp:juju-info'
-    - 'nova-compute:juju-info'
-
-  - - 'ntp:juju-info'
-    - 'neutron-gateway:juju-info'
-
-  - - 'keystone'
-    - 'keystone-saml-mellon1'
-  - - 'keystone'
-    - 'keystone-saml-mellon2'
-
-  - - 'vault:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'vault:certificates'
-    - 'keystone:certificates'
-
-  - - 'vault:certificates'
-    - 'glance:certificates'
-
-  - - 'vault:certificates'
-    - 'openstack-dashboard:certificates'
-
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon1'
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon2'
-
-  - - 'keystone:websso-trusted-dashboard'
-    - 'openstack-dashboard:websso-trusted-dashboard'
-
-  - - 'vault:certificates'
-    - 'cinder:certificates'
-
-  - - 'vault:certificates'
-    - 'neutron-api:certificates'
-
-  - - 'vault:certificates'
-    - 'nova-cloud-controller:certificates'
-
-  - - 'placement:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'placement:placement'
-    - 'nova-cloud-controller:placement'
-
-  - - 'vault:certificates'
-    - 'placement:certificates'
-
-  - - 'placement:shared-db'
-    - 'mysql:shared-db'
-
-  - - 'keystone:ha'
-    - 'keystone-hacluster:ha'
-  - - 'openstack-dashboard:ha'
-    - 'openstack-dashboard-hacluster:ha'
diff --git a/src/tests/bundles/focal-ussuri.yaml b/src/tests/bundles/focal-ussuri.yaml
deleted file mode 100644
index 497e175..0000000
--- a/src/tests/bundles/focal-ussuri.yaml
+++ /dev/null
@@ -1,383 +0,0 @@
-variables:
-  openstack-origin: &openstack-origin distro
-
-series: focal
-
-comment:
-- 'machines section to decide order of deployment. database sooner = faster'
-machines:
-  '0':
-    constraints: mem=3072M
-  '1':
-    constraints: mem=3072M
-  '2':
-    constraints: mem=3072M
-  '3':
-  '4':
-  '5':
-  '6':
-  '7':
-  '8':
-  '9':
-  '10':
-  '11':
-  '12':
-  '13':
-  '14':
-  '15':
-  '16':
-  '17':
-  '18':
-
-applications:
-
-  keystone-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
-  openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  cinder-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
-    to:
-      - '0'
-      - '1'
-      - '2'
-
-  cinder:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
-    options:
-      openstack-origin: *openstack-origin
-      glance-api-version: 2
-      block-device: None
-    to:
-      - '3'
-
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '4'
-
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-      token-provider: 'fernet'
-    to:
-      - '5'
-      - '6'
-      - '7'
-
-  neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      manage-neutron-plugin-legacy-mode: true
-      flat-network-providers: physnet1
-      neutron-security-groups: true
-    to:
-      - '8'
-
-  neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      bridge-mappings: physnet1:br-ex
-    to:
-      - '9'
-
-  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
-    to:
-      - '10'
-
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      openstack-origin: *openstack-origin
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-    to:
-      - '11'
-      - '12'
-
-  ntp:
-    charm: cs:ntp
-    num_units: 0
-
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '13'
-      - '14'
-      - '15'
-
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-    options:
-      source: *openstack-origin
-    to:
-      - '16'
-
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-    to:
-      - '17'
-
-  placement:
-    charm: cs:~openstack-charmers-next/placement
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '18'
-
-  keystone-saml-mellon1:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-
-  keystone-saml-mellon2:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
-
-  keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-  openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-relations:
-
-  - - 'nova-compute:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'keystone:shared-db'
-    - 'keystone-mysql-router:shared-db'
-  - - 'keystone-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - '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'
-
-  - - 'neutron-api:shared-db'
-    - 'neutron-api-mysql-router:shared-db'
-  - - 'neutron-api-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'neutron-api:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:neutron-plugin-api'
-    - 'neutron-api:neutron-plugin-api'
-
-  - - 'glance:shared-db'
-    - 'glance-mysql-router:shared-db'
-  - - 'glance-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'glance:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'nova-cloud-controller:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-compute:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-cloud-controller:cloud-compute'
-    - 'nova-compute:cloud-compute'
-
-  - - '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'
-
-  - - 'openstack-dashboard:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'openstack-dashboard:shared-db'
-    - 'openstack-dashboard-mysql-router:shared-db'
-  - - 'openstack-dashboard-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'
-
-  - - 'nova-cloud-controller:neutron-api'
-    - 'neutron-api:neutron-api'
-
-  - - 'cinder:image-service'
-    - 'glance:image-service'
-
-  - - 'cinder:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'cinder:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'cinder:cinder-volume-service'
-    - 'nova-cloud-controller:cinder-volume-service'
-
-  - - 'cinder:shared-db'
-    - 'cinder-mysql-router:shared-db'
-  - - 'cinder-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'ntp:juju-info'
-    - 'nova-compute:juju-info'
-
-  - - 'ntp:juju-info'
-    - 'neutron-gateway:juju-info'
-
-  - - 'keystone'
-    - 'keystone-saml-mellon1'
-  - - 'keystone'
-    - 'keystone-saml-mellon2'
-
-  - - 'vault:shared-db'
-    - 'vault-mysql-router:shared-db'
-  - - 'vault-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'vault:certificates'
-    - 'keystone:certificates'
-
-  - - 'vault:certificates'
-    - 'glance:certificates'
-
-  - - 'vault:certificates'
-    - 'openstack-dashboard:certificates'
-
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon1'
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon2'
-
-  - - 'keystone:websso-trusted-dashboard'
-    - 'openstack-dashboard:websso-trusted-dashboard'
-
-  - - 'vault:certificates'
-    - 'cinder:certificates'
-
-  - - 'vault:certificates'
-    - 'neutron-api:certificates'
-
-  - - 'vault:certificates'
-    - 'nova-cloud-controller:certificates'
-
-  - - 'placement:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'placement:placement'
-    - 'nova-cloud-controller:placement'
-
-  - - 'vault:certificates'
-    - 'placement:certificates'
-
-  - - "placement:shared-db"
-    - "placement-mysql-router:shared-db"
-  - - "placement-mysql-router:db-router"
-    - "mysql-innodb-cluster:db-router"
-
-  - - "keystone:ha"
-    - "keystone-hacluster:ha"
-  - - "openstack-dashboard:ha"
-    - "openstack-dashboard-hacluster:ha"
diff --git a/src/tests/bundles/focal-victoria.yaml b/src/tests/bundles/focal-victoria.yaml
deleted file mode 100644
index 2a285be..0000000
--- a/src/tests/bundles/focal-victoria.yaml
+++ /dev/null
@@ -1,383 +0,0 @@
-variables:
-  openstack-origin: &openstack-origin cloud:focal-victoria
-
-series: focal
-
-comment:
-- 'machines section to decide order of deployment. database sooner = faster'
-machines:
-  '0':
-    constraints: mem=3072M
-  '1':
-    constraints: mem=3072M
-  '2':
-    constraints: mem=3072M
-  '3':
-  '4':
-  '5':
-  '6':
-  '7':
-  '8':
-  '9':
-  '10':
-  '11':
-  '12':
-  '13':
-  '14':
-  '15':
-  '16':
-  '17':
-  '18':
-
-applications:
-
-  keystone-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
-  openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  cinder-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
-    to:
-      - '0'
-      - '1'
-      - '2'
-
-  cinder:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
-    options:
-      openstack-origin: *openstack-origin
-      glance-api-version: 2
-      block-device: None
-    to:
-      - '3'
-
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '4'
-
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-      token-provider: 'fernet'
-    to:
-      - '5'
-      - '6'
-      - '7'
-
-  neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      manage-neutron-plugin-legacy-mode: true
-      flat-network-providers: physnet1
-      neutron-security-groups: true
-    to:
-      - '8'
-
-  neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      bridge-mappings: physnet1:br-ex
-    to:
-      - '9'
-
-  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
-    to:
-      - '10'
-
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      openstack-origin: *openstack-origin
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-    to:
-      - '11'
-      - '12'
-
-  ntp:
-    charm: cs:ntp
-    num_units: 0
-
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '13'
-      - '14'
-      - '15'
-
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-    options:
-      source: *openstack-origin
-    to:
-      - '16'
-
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-    to:
-      - '17'
-
-  placement:
-    charm: cs:~openstack-charmers-next/placement
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '18'
-
-  keystone-saml-mellon1:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-
-  keystone-saml-mellon2:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
-
-  keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-  openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-relations:
-
-  - - 'nova-compute:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'keystone:shared-db'
-    - 'keystone-mysql-router:shared-db'
-  - - 'keystone-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - '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'
-
-  - - 'neutron-api:shared-db'
-    - 'neutron-api-mysql-router:shared-db'
-  - - 'neutron-api-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'neutron-api:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:neutron-plugin-api'
-    - 'neutron-api:neutron-plugin-api'
-
-  - - 'glance:shared-db'
-    - 'glance-mysql-router:shared-db'
-  - - 'glance-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'glance:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'nova-cloud-controller:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-compute:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-cloud-controller:cloud-compute'
-    - 'nova-compute:cloud-compute'
-
-  - - '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'
-
-  - - 'openstack-dashboard:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'openstack-dashboard:shared-db'
-    - 'openstack-dashboard-mysql-router:shared-db'
-  - - 'openstack-dashboard-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'
-
-  - - 'nova-cloud-controller:neutron-api'
-    - 'neutron-api:neutron-api'
-
-  - - 'cinder:image-service'
-    - 'glance:image-service'
-
-  - - 'cinder:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'cinder:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'cinder:cinder-volume-service'
-    - 'nova-cloud-controller:cinder-volume-service'
-
-  - - 'cinder:shared-db'
-    - 'cinder-mysql-router:shared-db'
-  - - 'cinder-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'ntp:juju-info'
-    - 'nova-compute:juju-info'
-
-  - - 'ntp:juju-info'
-    - 'neutron-gateway:juju-info'
-
-  - - 'keystone'
-    - 'keystone-saml-mellon1'
-  - - 'keystone'
-    - 'keystone-saml-mellon2'
-
-  - - 'vault:shared-db'
-    - 'vault-mysql-router:shared-db'
-  - - 'vault-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'vault:certificates'
-    - 'keystone:certificates'
-
-  - - 'vault:certificates'
-    - 'glance:certificates'
-
-  - - 'vault:certificates'
-    - 'openstack-dashboard:certificates'
-
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon1'
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon2'
-
-  - - 'keystone:websso-trusted-dashboard'
-    - 'openstack-dashboard:websso-trusted-dashboard'
-
-  - - 'vault:certificates'
-    - 'cinder:certificates'
-
-  - - 'vault:certificates'
-    - 'neutron-api:certificates'
-
-  - - 'vault:certificates'
-    - 'nova-cloud-controller:certificates'
-
-  - - 'placement:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'placement:placement'
-    - 'nova-cloud-controller:placement'
-
-  - - 'vault:certificates'
-    - 'placement:certificates'
-
-  - - "placement:shared-db"
-    - "placement-mysql-router:shared-db"
-  - - "placement-mysql-router:db-router"
-    - "mysql-innodb-cluster:db-router"
-
-  - - "keystone:ha"
-    - "keystone-hacluster:ha"
-  - - "openstack-dashboard:ha"
-    - "openstack-dashboard-hacluster:ha"
diff --git a/src/tests/bundles/focal-wallaby.yaml b/src/tests/bundles/focal-wallaby.yaml
deleted file mode 100644
index d4ed938..0000000
--- a/src/tests/bundles/focal-wallaby.yaml
+++ /dev/null
@@ -1,383 +0,0 @@
-variables:
-  openstack-origin: &openstack-origin cloud:focal-wallaby
-
-series: focal
-
-comment:
-- 'machines section to decide order of deployment. database sooner = faster'
-machines:
-  '0':
-    constraints: mem=3072M
-  '1':
-    constraints: mem=3072M
-  '2':
-    constraints: mem=3072M
-  '3':
-  '4':
-  '5':
-  '6':
-  '7':
-  '8':
-  '9':
-  '10':
-  '11':
-  '12':
-  '13':
-  '14':
-  '15':
-  '16':
-  '17':
-  '18':
-
-applications:
-
-  keystone-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
-  openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  cinder-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
-    to:
-      - '0'
-      - '1'
-      - '2'
-
-  cinder:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
-    options:
-      openstack-origin: *openstack-origin
-      glance-api-version: 2
-      block-device: None
-    to:
-      - '3'
-
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '4'
-
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-      token-provider: 'fernet'
-    to:
-      - '5'
-      - '6'
-      - '7'
-
-  neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      manage-neutron-plugin-legacy-mode: true
-      flat-network-providers: physnet1
-      neutron-security-groups: true
-    to:
-      - '8'
-
-  neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      bridge-mappings: physnet1:br-ex
-    to:
-      - '9'
-
-  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
-    to:
-      - '10'
-
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      openstack-origin: *openstack-origin
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-    to:
-      - '11'
-      - '12'
-
-  ntp:
-    charm: cs:ntp
-    num_units: 0
-
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '13'
-      - '14'
-      - '15'
-
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-    options:
-      source: *openstack-origin
-    to:
-      - '16'
-
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-    to:
-      - '17'
-
-  placement:
-    charm: cs:~openstack-charmers-next/placement
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '18'
-
-  keystone-saml-mellon1:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-
-  keystone-saml-mellon2:
-    series: focal
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
-
-  keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-  openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-relations:
-
-  - - 'nova-compute:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'keystone:shared-db'
-    - 'keystone-mysql-router:shared-db'
-  - - 'keystone-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - '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'
-
-  - - 'neutron-api:shared-db'
-    - 'neutron-api-mysql-router:shared-db'
-  - - 'neutron-api-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'neutron-api:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:neutron-plugin-api'
-    - 'neutron-api:neutron-plugin-api'
-
-  - - 'glance:shared-db'
-    - 'glance-mysql-router:shared-db'
-  - - 'glance-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'glance:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'nova-cloud-controller:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-compute:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-cloud-controller:cloud-compute'
-    - 'nova-compute:cloud-compute'
-
-  - - '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'
-
-  - - 'openstack-dashboard:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'openstack-dashboard:shared-db'
-    - 'openstack-dashboard-mysql-router:shared-db'
-  - - 'openstack-dashboard-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'
-
-  - - 'nova-cloud-controller:neutron-api'
-    - 'neutron-api:neutron-api'
-
-  - - 'cinder:image-service'
-    - 'glance:image-service'
-
-  - - 'cinder:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'cinder:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'cinder:cinder-volume-service'
-    - 'nova-cloud-controller:cinder-volume-service'
-
-  - - 'cinder:shared-db'
-    - 'cinder-mysql-router:shared-db'
-  - - 'cinder-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'ntp:juju-info'
-    - 'nova-compute:juju-info'
-
-  - - 'ntp:juju-info'
-    - 'neutron-gateway:juju-info'
-
-  - - 'keystone'
-    - 'keystone-saml-mellon1'
-  - - 'keystone'
-    - 'keystone-saml-mellon2'
-
-  - - 'vault:shared-db'
-    - 'vault-mysql-router:shared-db'
-  - - 'vault-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'vault:certificates'
-    - 'keystone:certificates'
-
-  - - 'vault:certificates'
-    - 'glance:certificates'
-
-  - - 'vault:certificates'
-    - 'openstack-dashboard:certificates'
-
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon1'
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon2'
-
-  - - 'keystone:websso-trusted-dashboard'
-    - 'openstack-dashboard:websso-trusted-dashboard'
-
-  - - 'vault:certificates'
-    - 'cinder:certificates'
-
-  - - 'vault:certificates'
-    - 'neutron-api:certificates'
-
-  - - 'vault:certificates'
-    - 'nova-cloud-controller:certificates'
-
-  - - 'placement:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'placement:placement'
-    - 'nova-cloud-controller:placement'
-
-  - - 'vault:certificates'
-    - 'placement:certificates'
-
-  - - "placement:shared-db"
-    - "placement-mysql-router:shared-db"
-  - - "placement-mysql-router:db-router"
-    - "mysql-innodb-cluster:db-router"
-
-  - - "keystone:ha"
-    - "keystone-hacluster:ha"
-  - - "openstack-dashboard:ha"
-    - "openstack-dashboard-hacluster:ha"
diff --git a/src/tests/bundles/focal-xena.yaml b/src/tests/bundles/focal-xena.yaml
index 26c6e04..b379133 100644
--- a/src/tests/bundles/focal-xena.yaml
+++ b/src/tests/bundles/focal-xena.yaml
@@ -32,24 +32,32 @@ machines:
 applications:
 
   keystone-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   neutron-api-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   glance-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   cinder-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   vault-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   placement-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
 
   mysql-innodb-cluster:
-    charm: cs:~openstack-charmers-next/mysql-innodb-cluster
+    charm: ch:mysql-innodb-cluster
     num_units: 3
     options:
       source: *openstack-origin
@@ -57,27 +65,30 @@ applications:
       - '0'
       - '1'
       - '2'
+    channel: latest/edge
 
   cinder:
     num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
+    charm: ch:cinder
     options:
       openstack-origin: *openstack-origin
       glance-api-version: 2
       block-device: None
     to:
       - '3'
+    channel: latest/edge
 
   glance:
-    charm: cs:~openstack-charmers-next/glance
+    charm: ch:glance
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '4'
+    channel: latest/edge
 
   keystone:
-    charm: cs:~openstack-charmers-next/keystone
+    charm: ch:keystone
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -86,9 +97,10 @@ applications:
       - '5'
       - '6'
       - '7'
+    channel: latest/edge
 
   neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
+    charm: ch:neutron-api
     num_units: 1
     options:
       openstack-origin: *openstack-origin
@@ -97,31 +109,35 @@ applications:
       neutron-security-groups: true
     to:
       - '8'
+    channel: latest/edge
 
   neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
+    charm: ch:neutron-gateway
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       bridge-mappings: physnet1:br-ex
     to:
       - '9'
+    channel: latest/edge
 
   neutron-openvswitch:
-    charm: cs:~openstack-charmers-next/neutron-openvswitch
+    charm: ch:neutron-openvswitch
     num_units: 0
+    channel: latest/edge
 
   nova-cloud-controller:
-    charm: cs:~openstack-charmers-next/nova-cloud-controller
+    charm: ch:nova-cloud-controller
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       network-manager: Neutron
     to:
       - '10'
+    channel: latest/edge
 
   nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
+    charm: ch:nova-compute
     num_units: 2
     options:
       openstack-origin: *openstack-origin
@@ -132,13 +148,14 @@ applications:
     to:
       - '11'
       - '12'
+    channel: latest/edge
 
   ntp:
     charm: cs:ntp
     num_units: 0
 
   openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
+    charm: ch:openstack-dashboard
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -146,28 +163,32 @@ applications:
       - '13'
       - '14'
       - '15'
+    channel: latest/edge
 
   rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
+    charm: ch:rabbitmq-server
     num_units: 1
     options:
       source: *openstack-origin
     to:
       - '16'
+    channel: latest/edge
 
   vault:
     num_units: 1
-    charm: cs:~openstack-charmers-next/vault
+    charm: ch:vault
     to:
       - '17'
+    channel: latest/edge
 
   placement:
-    charm: cs:~openstack-charmers-next/placement
+    charm: ch:placement
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '18'
+    channel: latest/edge
 
   keystone-saml-mellon1:
     series: focal
@@ -181,7 +202,7 @@ applications:
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
 
   test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     options:
       idp-name: 'test-saml-idp1'
@@ -201,7 +222,7 @@ applications:
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
 
   test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     options:
       idp-name: 'test-saml-idp2'
@@ -210,18 +231,20 @@ applications:
       auth-user-password: 'userpass2'
 
   keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
   openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
 relations:
 
diff --git a/src/tests/bundles/focal-yoga.yaml b/src/tests/bundles/focal-yoga.yaml
index fc80246..a86463a 100644
--- a/src/tests/bundles/focal-yoga.yaml
+++ b/src/tests/bundles/focal-yoga.yaml
@@ -32,24 +32,32 @@ machines:
 applications:
 
   keystone-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   neutron-api-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   glance-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   cinder-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   vault-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   placement-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
 
   mysql-innodb-cluster:
-    charm: cs:~openstack-charmers-next/mysql-innodb-cluster
+    charm: ch:mysql-innodb-cluster
     num_units: 3
     options:
       source: *openstack-origin
@@ -57,27 +65,30 @@ applications:
       - '0'
       - '1'
       - '2'
+    channel: latest/edge
 
   cinder:
     num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
+    charm: ch:cinder
     options:
       openstack-origin: *openstack-origin
       glance-api-version: 2
       block-device: None
     to:
       - '3'
+    channel: latest/edge
 
   glance:
-    charm: cs:~openstack-charmers-next/glance
+    charm: ch:glance
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '4'
+    channel: latest/edge
 
   keystone:
-    charm: cs:~openstack-charmers-next/keystone
+    charm: ch:keystone
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -86,9 +97,10 @@ applications:
       - '5'
       - '6'
       - '7'
+    channel: latest/edge
 
   neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
+    charm: ch:neutron-api
     num_units: 1
     options:
       openstack-origin: *openstack-origin
@@ -97,31 +109,35 @@ applications:
       neutron-security-groups: true
     to:
       - '8'
+    channel: latest/edge
 
   neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
+    charm: ch:neutron-gateway
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       bridge-mappings: physnet1:br-ex
     to:
       - '9'
+    channel: latest/edge
 
   neutron-openvswitch:
-    charm: cs:~openstack-charmers-next/neutron-openvswitch
+    charm: ch:neutron-openvswitch
     num_units: 0
+    channel: latest/edge
 
   nova-cloud-controller:
-    charm: cs:~openstack-charmers-next/nova-cloud-controller
+    charm: ch:nova-cloud-controller
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       network-manager: Neutron
     to:
       - '10'
+    channel: latest/edge
 
   nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
+    charm: ch:nova-compute
     num_units: 2
     options:
       openstack-origin: *openstack-origin
@@ -132,13 +148,14 @@ applications:
     to:
       - '11'
       - '12'
+    channel: latest/edge
 
   ntp:
     charm: cs:ntp
     num_units: 0
 
   openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
+    charm: ch:openstack-dashboard
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -146,28 +163,32 @@ applications:
       - '13'
       - '14'
       - '15'
+    channel: latest/edge
 
   rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
+    charm: ch:rabbitmq-server
     num_units: 1
     options:
       source: *openstack-origin
     to:
       - '16'
+    channel: latest/edge
 
   vault:
     num_units: 1
-    charm: cs:~openstack-charmers-next/vault
+    charm: ch:vault
     to:
       - '17'
+    channel: latest/edge
 
   placement:
-    charm: cs:~openstack-charmers-next/placement
+    charm: ch:placement
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '18'
+    channel: latest/edge
 
   keystone-saml-mellon1:
     series: focal
@@ -179,8 +200,9 @@ applications:
       user-facing-name: "Test SAML IDP #1"
       subject-confirmation-data-address-check: False
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
+
   test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     options:
       idp-name: 'test-saml-idp1'
@@ -198,8 +220,9 @@ applications:
       user-facing-name: "Test SAML IDP #2"
       subject-confirmation-data-address-check: False
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
+
   test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     options:
       idp-name: 'test-saml-idp2'
@@ -208,17 +231,20 @@ applications:
       auth-user-password: 'userpass2'
 
   keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
+
   openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
 relations:
 
diff --git a/src/tests/bundles/hirsute-wallaby.yaml b/src/tests/bundles/hirsute-wallaby.yaml
deleted file mode 100644
index 04577a4..0000000
--- a/src/tests/bundles/hirsute-wallaby.yaml
+++ /dev/null
@@ -1,375 +0,0 @@
-variables:
-  openstack-origin: &openstack-origin distro
-
-series: hirsute
-
-comment:
-- 'machines section to decide order of deployment. database sooner = faster'
-machines:
-  '0':
-    constraints: mem=3072M
-  '1':
-    constraints: mem=3072M
-  '2':
-    constraints: mem=3072M
-  '3':
-  '4':
-  '5':
-  '6':
-  '7':
-  '8':
-  '9':
-  '10':
-  '11':
-  '12':
-  '13':
-  '14':
-  '15':
-  '16':
-  '17':
-  '18':
-
-applications:
-
-  keystone-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
-  openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
-  cinder-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
-    to:
-      - '0'
-      - '1'
-      - '2'
-
-  cinder:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
-    options:
-      openstack-origin: *openstack-origin
-      glance-api-version: 2
-      block-device: None
-    to:
-      - '3'
-
-  glance:
-    charm: cs:~openstack-charmers-next/glance
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '4'
-
-  keystone:
-    charm: cs:~openstack-charmers-next/keystone
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-      token-provider: 'fernet'
-    to:
-      - '5'
-      - '6'
-      - '7'
-
-  neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      manage-neutron-plugin-legacy-mode: true
-      flat-network-providers: physnet1
-      neutron-security-groups: true
-    to:
-      - '8'
-
-  neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-      bridge-mappings: physnet1:br-ex
-    to:
-      - '9'
-
-  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
-    to:
-      - '10'
-
-  nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
-    num_units: 2
-    options:
-      openstack-origin: *openstack-origin
-      config-flags: default_ephemeral_format=ext4
-      enable-live-migration: true
-      enable-resize: true
-      migration-auth-type: ssh
-    to:
-      - '11'
-      - '12'
-
-  openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
-    num_units: 3
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '13'
-      - '14'
-      - '15'
-
-  rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
-    num_units: 1
-    options:
-      source: *openstack-origin
-    to:
-      - '16'
-
-  vault:
-    num_units: 1
-    charm: cs:~openstack-charmers-next/vault
-    to:
-      - '17'
-
-  placement:
-    charm: cs:~openstack-charmers-next/placement
-    num_units: 1
-    options:
-      openstack-origin: *openstack-origin
-    to:
-      - '18'
-
-  keystone-saml-mellon1:
-    series: groovy
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #1"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    series: focal
-    options:
-      idp-name: 'test-saml-idp1'
-      protocol-name: 'mapped'
-      auth-user-name: 'user1'
-      auth-user-password: 'userpass1'
-
-  keystone-saml-mellon2:
-    series: groovy
-    charm: ../../../keystone-saml-mellon
-    num_units: 0
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      user-facing-name: "Test SAML IDP #2"
-      subject-confirmation-data-address-check: False
-      nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
-
-  test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
-    num_units: 1
-    series: focal
-    options:
-      idp-name: 'test-saml-idp2'
-      protocol-name: 'mapped'
-      auth-user-name: 'user2'
-      auth-user-password: 'userpass2'
-
-  keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-  openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
-    num_units: 0
-    options:
-      corosync_transport: unicast
-      cluster_count: 3
-
-relations:
-
-  - - 'nova-compute:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'keystone:shared-db'
-    - 'keystone-mysql-router:shared-db'
-  - - 'keystone-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - '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'
-
-  - - 'neutron-api:shared-db'
-    - 'neutron-api-mysql-router:shared-db'
-  - - 'neutron-api-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'neutron-api:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'neutron-gateway:neutron-plugin-api'
-    - 'neutron-api:neutron-plugin-api'
-
-  - - 'glance:shared-db'
-    - 'glance-mysql-router:shared-db'
-  - - 'glance-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'glance:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'nova-cloud-controller:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-compute:image-service'
-    - 'glance:image-service'
-
-  - - 'nova-cloud-controller:cloud-compute'
-    - 'nova-compute:cloud-compute'
-
-  - - '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'
-
-  - - 'openstack-dashboard:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'openstack-dashboard:shared-db'
-    - 'openstack-dashboard-mysql-router:shared-db'
-  - - 'openstack-dashboard-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'
-
-  - - 'nova-cloud-controller:neutron-api'
-    - 'neutron-api:neutron-api'
-
-  - - 'cinder:image-service'
-    - 'glance:image-service'
-
-  - - 'cinder:amqp'
-    - 'rabbitmq-server:amqp'
-
-  - - 'cinder:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'cinder:cinder-volume-service'
-    - 'nova-cloud-controller:cinder-volume-service'
-
-  - - 'cinder:shared-db'
-    - 'cinder-mysql-router:shared-db'
-  - - 'cinder-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'keystone'
-    - 'keystone-saml-mellon1'
-  - - 'keystone'
-    - 'keystone-saml-mellon2'
-
-  - - 'vault:shared-db'
-    - 'vault-mysql-router:shared-db'
-  - - 'vault-mysql-router:db-router'
-    - 'mysql-innodb-cluster:db-router'
-
-  - - 'vault:certificates'
-    - 'keystone:certificates'
-
-  - - 'vault:certificates'
-    - 'glance:certificates'
-
-  - - 'vault:certificates'
-    - 'openstack-dashboard:certificates'
-
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon1'
-  - - 'openstack-dashboard'
-    - 'keystone-saml-mellon2'
-
-  - - 'keystone:websso-trusted-dashboard'
-    - 'openstack-dashboard:websso-trusted-dashboard'
-
-  - - 'vault:certificates'
-    - 'cinder:certificates'
-
-  - - 'vault:certificates'
-    - 'neutron-api:certificates'
-
-  - - 'vault:certificates'
-    - 'nova-cloud-controller:certificates'
-
-  - - 'placement:identity-service'
-    - 'keystone:identity-service'
-
-  - - 'placement:placement'
-    - 'nova-cloud-controller:placement'
-
-  - - 'vault:certificates'
-    - 'placement:certificates'
-
-  - - "placement:shared-db"
-    - "placement-mysql-router:shared-db"
-  - - "placement-mysql-router:db-router"
-    - "mysql-innodb-cluster:db-router"
-
-  - - "keystone:ha"
-    - "keystone-hacluster:ha"
-  - - "openstack-dashboard:ha"
-    - "openstack-dashboard-hacluster:ha"
diff --git a/src/tests/bundles/impish-xena.yaml b/src/tests/bundles/impish-xena.yaml
index 6db359c..1b25029 100644
--- a/src/tests/bundles/impish-xena.yaml
+++ b/src/tests/bundles/impish-xena.yaml
@@ -32,24 +32,32 @@ machines:
 applications:
 
   keystone-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   neutron-api-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   glance-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   cinder-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   vault-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   placement-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
 
   mysql-innodb-cluster:
-    charm: cs:~openstack-charmers-next/mysql-innodb-cluster
+    charm: ch:mysql-innodb-cluster
     num_units: 3
     options:
       source: *openstack-origin
@@ -57,27 +65,30 @@ applications:
       - '0'
       - '1'
       - '2'
+    channel: latest/edge
 
   cinder:
     num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
+    charm: ch:cinder
     options:
       openstack-origin: *openstack-origin
       glance-api-version: 2
       block-device: None
     to:
       - '3'
+    channel: latest/edge
 
   glance:
-    charm: cs:~openstack-charmers-next/glance
+    charm: ch:glance
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '4'
+    channel: latest/edge
 
   keystone:
-    charm: cs:~openstack-charmers-next/keystone
+    charm: ch:keystone
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -86,9 +97,10 @@ applications:
       - '5'
       - '6'
       - '7'
+    channel: latest/edge
 
   neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
+    charm: ch:neutron-api
     num_units: 1
     options:
       openstack-origin: *openstack-origin
@@ -97,31 +109,35 @@ applications:
       neutron-security-groups: true
     to:
       - '8'
+    channel: latest/edge
 
   neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
+    charm: ch:neutron-gateway
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       bridge-mappings: physnet1:br-ex
     to:
       - '9'
+    channel: latest/edge
 
   neutron-openvswitch:
-    charm: cs:~openstack-charmers-next/neutron-openvswitch
+    charm: ch:neutron-openvswitch
     num_units: 0
+    channel: latest/edge
 
   nova-cloud-controller:
-    charm: cs:~openstack-charmers-next/nova-cloud-controller
+    charm: ch:nova-cloud-controller
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       network-manager: Neutron
     to:
       - '10'
+    channel: latest/edge
 
   nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
+    charm: ch:nova-compute
     num_units: 2
     options:
       openstack-origin: *openstack-origin
@@ -132,6 +148,7 @@ applications:
     to:
       - '11'
       - '12'
+    channel: latest/edge
 
   ntp:
     charm: cs:ntp
@@ -139,7 +156,7 @@ applications:
     num_units: 0
 
   openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
+    charm: ch:openstack-dashboard
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -147,28 +164,32 @@ applications:
       - '13'
       - '14'
       - '15'
+    channel: latest/edge
 
   rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
+    charm: ch:rabbitmq-server
     num_units: 1
     options:
       source: *openstack-origin
     to:
       - '16'
+    channel: latest/edge
 
   vault:
     num_units: 1
-    charm: cs:~openstack-charmers-next/vault
+    charm: ch:vault
     to:
       - '17'
+    channel: latest/edge
 
   placement:
-    charm: cs:~openstack-charmers-next/placement
+    charm: ch:placement
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '18'
+    channel: latest/edge
 
   keystone-saml-mellon1:
     series: groovy
@@ -182,7 +203,7 @@ applications:
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
 
   test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     series: focal
     options:
@@ -203,7 +224,7 @@ applications:
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
 
   test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     series: focal
     options:
@@ -213,18 +234,20 @@ applications:
       auth-user-password: 'userpass2'
 
   keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
   openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
 relations:
 
diff --git a/src/tests/bundles/jammy-yoga.yaml b/src/tests/bundles/jammy-yoga.yaml
index 24f77ca..915f294 100644
--- a/src/tests/bundles/jammy-yoga.yaml
+++ b/src/tests/bundles/jammy-yoga.yaml
@@ -32,24 +32,32 @@ machines:
 applications:
 
   keystone-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   neutron-api-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   glance-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   openstack-dashboard-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   nova-cloud-controller-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   cinder-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   vault-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
   placement-mysql-router:
-    charm: cs:~openstack-charmers-next/mysql-router
+    charm: ch:mysql-router
+    channel: latest/edge
 
   mysql-innodb-cluster:
-    charm: cs:~openstack-charmers-next/mysql-innodb-cluster
+    charm: ch:mysql-innodb-cluster
     num_units: 3
     options:
       source: *openstack-origin
@@ -57,27 +65,30 @@ applications:
       - '0'
       - '1'
       - '2'
+    channel: latest/edge
 
   cinder:
     num_units: 1
-    charm: cs:~openstack-charmers-next/cinder
+    charm: ch:cinder
     options:
       openstack-origin: *openstack-origin
       glance-api-version: 2
       block-device: None
     to:
       - '3'
+    channel: latest/edge
 
   glance:
-    charm: cs:~openstack-charmers-next/glance
+    charm: ch:glance
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '4'
+    channel: latest/edge
 
   keystone:
-    charm: cs:~openstack-charmers-next/keystone
+    charm: ch:keystone
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -86,9 +97,10 @@ applications:
       - '5'
       - '6'
       - '7'
+    channel: latest/edge
 
   neutron-api:
-    charm: cs:~openstack-charmers-next/neutron-api
+    charm: ch:neutron-api
     num_units: 1
     options:
       openstack-origin: *openstack-origin
@@ -97,31 +109,35 @@ applications:
       neutron-security-groups: true
     to:
       - '8'
+    channel: latest/edge
 
   neutron-gateway:
-    charm: cs:~openstack-charmers-next/neutron-gateway
+    charm: ch:neutron-gateway
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       bridge-mappings: physnet1:br-ex
     to:
       - '9'
+    channel: latest/edge
 
   neutron-openvswitch:
-    charm: cs:~openstack-charmers-next/neutron-openvswitch
+    charm: ch:neutron-openvswitch
     num_units: 0
+    channel: latest/edge
 
   nova-cloud-controller:
-    charm: cs:~openstack-charmers-next/nova-cloud-controller
+    charm: ch:nova-cloud-controller
     num_units: 1
     options:
       openstack-origin: *openstack-origin
       network-manager: Neutron
     to:
       - '10'
+    channel: latest/edge
 
   nova-compute:
-    charm: cs:~openstack-charmers-next/nova-compute
+    charm: ch:nova-compute
     num_units: 2
     options:
       openstack-origin: *openstack-origin
@@ -132,6 +148,7 @@ applications:
     to:
       - '11'
       - '12'
+    channel: latest/edge
 
   ntp:
     charm: cs:ntp
@@ -139,7 +156,7 @@ applications:
     num_units: 0
 
   openstack-dashboard:
-    charm: cs:~openstack-charmers-next/openstack-dashboard
+    charm: ch:openstack-dashboard
     num_units: 3
     options:
       openstack-origin: *openstack-origin
@@ -147,28 +164,32 @@ applications:
       - '13'
       - '14'
       - '15'
+    channel: latest/edge
 
   rabbitmq-server:
-    charm: cs:~openstack-charmers-next/rabbitmq-server
+    charm: ch:rabbitmq-server
     num_units: 1
     options:
       source: *openstack-origin
     to:
       - '16'
+    channel: latest/edge
 
   vault:
     num_units: 1
-    charm: cs:~openstack-charmers-next/vault
+    charm: ch:vault
     to:
       - '17'
+    channel: latest/edge
 
   placement:
-    charm: cs:~openstack-charmers-next/placement
+    charm: ch:placement
     num_units: 1
     options:
       openstack-origin: *openstack-origin
     to:
       - '18'
+    channel: latest/edge
 
   keystone-saml-mellon1:
     series: groovy
@@ -182,7 +203,7 @@ applications:
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
 
   test-saml-idp1:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     series: focal
     options:
@@ -203,7 +224,7 @@ applications:
       nameid-formats: "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
 
   test-saml-idp2:
-    charm: cs:~ionutbalutoiu/test-saml-idp
+    charm: ch:ionutbalutoiu-test-saml-idp
     num_units: 1
     series: focal
     options:
@@ -213,18 +234,20 @@ applications:
       auth-user-password: 'userpass2'
 
   keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
   openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
 
 relations:
 
diff --git a/src/tests/bundles/overlays/bionic-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-ha.yaml.j2
index 754b687..a64eb24 100644
--- a/src/tests/bundles/overlays/bionic-ha.yaml.j2
+++ b/src/tests/bundles/overlays/bionic-ha.yaml.j2
@@ -13,14 +13,16 @@ applications:
     options:
       vip: {{ OS_VIP01 }}
   keystone-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
   openstack-dashboard-hacluster:
-    charm: cs:~openstack-charmers-next/hacluster
+    charm: ch:hacluster
     num_units: 0
     options:
       corosync_transport: unicast
       cluster_count: 3
+    channel: latest/edge
diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml
index 4c328c1..17896d0 100644
--- a/src/tests/tests.yaml
+++ b/src/tests/tests.yaml
@@ -1,15 +1,10 @@
 charm_name: keystone-saml-mellon
 
 smoke_bundles:
-- focal-ussuri
+- focal-xena
 
 gate_bundles:
-- bionic-queens
-- focal-ussuri
-- focal-victoria
-- focal-wallaby
 - focal-xena
-- hirsute-wallaby
 - impish-xena
 
 dev_bundles:
@@ -60,6 +55,5 @@ target_deploy_status:
 
 tests_options:
   force_deploy:
-    - hirsute-wallaby
     - impish-xena
     - jammy-yoga