From f13800fb0d2b6c53a0df9fcfdfaec4f409b921f0 Mon Sep 17 00:00:00 2001 From: Peter Sabaini Date: Wed, 27 Sep 2023 12:52:32 +0200 Subject: [PATCH] Add upgrade func testing Change functional testing to also test upgrades from charmhub version to the locally built charm. Include a new test for installing a locally built charm from scratch. Also pin some support charms to specific tracks. Change-Id: Id7de1723a4bbfcff02dd606be650b4410f897913 --- osci.yaml | 12 ++ tests/bundles/focal-yoga.yaml | 17 +- tests/bundles/jammy-antelope.yaml | 3 +- tests/bundles/jammy-bobcat.yaml | 17 +- tests/bundles/local-jammy-antelope.yaml | 234 ++++++++++++++++++++++++ tests/bundles/lunar-antelope.yaml | 3 +- tests/bundles/mantic-bobcat.yaml | 3 +- tests/tests.yaml | 16 +- 8 files changed, 284 insertions(+), 21 deletions(-) create mode 100644 tests/bundles/local-jammy-antelope.yaml diff --git a/osci.yaml b/osci.yaml index 2a379fd0..d78147f4 100644 --- a/osci.yaml +++ b/osci.yaml @@ -8,3 +8,15 @@ charm_build_name: ceph-osd build_type: charmcraft charmcraft_channel: 2.x/stable + check: + jobs: + - new-install-jammy-antelope +- job: + name: new-install-jammy-antelope + parent: func-target + dependencies: + - osci-lint + - charm-build + - tox-py38 + vars: + tox_extra_args: '-- install:local-jammy-antelope' diff --git a/tests/bundles/focal-yoga.yaml b/tests/bundles/focal-yoga.yaml index 41b6acbb..6fe81b77 100644 --- a/tests/bundles/focal-yoga.yaml +++ b/tests/bundles/focal-yoga.yaml @@ -30,19 +30,19 @@ applications: keystone-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0.19/edge glance-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0.19/edge cinder-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0.19/edge nova-cloud-controller-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0.19/edge placement-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0.19/edge mysql-innodb-cluster: charm: ch:mysql-innodb-cluster @@ -53,10 +53,11 @@ applications: - '0' - '1' - '2' - channel: latest/edge + channel: 8.0.19/edge ceph-osd: - charm: ../../ceph-osd.charm + charm: ch:ceph-osd + channel: quincy/edge num_units: 3 storage: osd-devices: 'cinder,10G,2' @@ -88,7 +89,7 @@ applications: source: *openstack-origin to: - '9' - channel: latest/edge + channel: 3.9/edge keystone: expose: True diff --git a/tests/bundles/jammy-antelope.yaml b/tests/bundles/jammy-antelope.yaml index 48a8b36a..6474006a 100644 --- a/tests/bundles/jammy-antelope.yaml +++ b/tests/bundles/jammy-antelope.yaml @@ -54,7 +54,8 @@ applications: channel: 8.0/edge ceph-osd: - charm: ../../ceph-osd.charm + charm: ch:ceph-osd + channel: quincy/edge num_units: 3 storage: osd-devices: 'cinder,10G,2' diff --git a/tests/bundles/jammy-bobcat.yaml b/tests/bundles/jammy-bobcat.yaml index 426fdef0..ac468730 100644 --- a/tests/bundles/jammy-bobcat.yaml +++ b/tests/bundles/jammy-bobcat.yaml @@ -30,19 +30,19 @@ applications: keystone-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0/edge glance-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0/edge cinder-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0/edge nova-cloud-controller-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0/edge placement-mysql-router: charm: ch:mysql-router - channel: latest/edge + channel: 8.0/edge mysql-innodb-cluster: charm: ch:mysql-innodb-cluster @@ -51,10 +51,11 @@ applications: - '0' - '1' - '2' - channel: latest/edge + channel: 8.0/edge ceph-osd: - charm: ../../ceph-osd.charm + charm: ch:ceph-osd + channel: latest/edge num_units: 3 storage: osd-devices: 'cinder,10G,2' @@ -84,7 +85,7 @@ applications: num_units: 1 to: - '9' - channel: latest/edge + channel: 3.9/edge keystone: expose: True diff --git a/tests/bundles/local-jammy-antelope.yaml b/tests/bundles/local-jammy-antelope.yaml new file mode 100644 index 00000000..48a8b36a --- /dev/null +++ b/tests/bundles/local-jammy-antelope.yaml @@ -0,0 +1,234 @@ +variables: + openstack-origin: &openstack-origin cloud:jammy-antelope + +series: jammy + +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': + +applications: + + keystone-mysql-router: + charm: ch:mysql-router + channel: 8.0/edge + glance-mysql-router: + charm: ch:mysql-router + channel: 8.0/edge + cinder-mysql-router: + charm: ch:mysql-router + channel: 8.0/edge + nova-cloud-controller-mysql-router: + charm: ch:mysql-router + channel: 8.0/edge + placement-mysql-router: + charm: ch:mysql-router + channel: 8.0/edge + + mysql-innodb-cluster: + charm: ch:mysql-innodb-cluster + num_units: 3 + to: + - '0' + - '1' + - '2' + channel: 8.0/edge + + ceph-osd: + charm: ../../ceph-osd.charm + num_units: 3 + storage: + osd-devices: 'cinder,10G,2' + options: + osd-devices: '/dev/test-non-existent' + source: *openstack-origin + aa-profile-mode: enforce + to: + - '3' + - '4' + - '5' + + ceph-mon: + charm: ch:ceph-mon + num_units: 3 + options: + monitor-count: '3' + source: *openstack-origin + to: + - '6' + - '7' + - '8' + channel: quincy/edge + + rabbitmq-server: + charm: ch:rabbitmq-server + num_units: 1 + to: + - '9' + channel: 3.9/edge + + keystone: + expose: True + charm: ch:keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '10' + channel: 2023.1/edge + + nova-compute: + charm: ch:nova-compute + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '11' + channel: 2023.1/edge + + glance: + expose: True + charm: ch:glance + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '12' + channel: 2023.1/edge + + cinder: + expose: True + charm: ch:cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: 'None' + glance-api-version: '2' + to: + - '13' + channel: 2023.1/edge + + cinder-ceph: + charm: ch:cinder-ceph + channel: 2023.1/edge + + nova-cloud-controller: + expose: True + charm: ch:nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '14' + channel: 2023.1/edge + + placement: + charm: ch:placement + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '15' + channel: 2023.1/edge + +relations: + - - 'nova-compute:amqp' + - 'rabbitmq-server:amqp' + + - - 'nova-compute:image-service' + - 'glance:image-service' + + - - 'nova-compute:ceph' + - 'ceph-mon:client' + + - - 'keystone:shared-db' + - 'keystone-mysql-router:shared-db' + - - 'keystone-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'glance:shared-db' + - 'glance-mysql-router:shared-db' + - - 'glance-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'glance:identity-service' + - 'keystone:identity-service' + + - - 'glance:amqp' + - 'rabbitmq-server:amqp' + + - - 'glance:ceph' + - 'ceph-mon:client' + + - - 'cinder:shared-db' + - 'cinder-mysql-router:shared-db' + - - 'cinder-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'cinder:identity-service' + - 'keystone:identity-service' + + - - 'cinder:amqp' + - 'rabbitmq-server:amqp' + + - - 'cinder:image-service' + - 'glance:image-service' + + - - 'cinder-ceph:storage-backend' + - 'cinder:storage-backend' + + - - 'cinder-ceph:ceph' + - 'ceph-mon:client' + + - - 'ceph-osd:mon' + - 'ceph-mon:osd' + + - - '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:identity-service' + - 'keystone:identity-service' + + - - 'nova-cloud-controller:amqp' + - 'rabbitmq-server:amqp' + + - - 'nova-cloud-controller:cloud-compute' + - 'nova-compute:cloud-compute' + + - - 'nova-cloud-controller:image-service' + - 'glance:image-service' + + - - 'placement:shared-db' + - 'placement-mysql-router:shared-db' + - - 'placement-mysql-router:db-router' + - 'mysql-innodb-cluster:db-router' + + - - 'placement' + - 'keystone' + + - - 'placement' + - 'nova-cloud-controller' + + - - 'cinder-ceph:ceph-access' + - 'nova-compute:ceph-access' diff --git a/tests/bundles/lunar-antelope.yaml b/tests/bundles/lunar-antelope.yaml index 85692211..8d04e764 100644 --- a/tests/bundles/lunar-antelope.yaml +++ b/tests/bundles/lunar-antelope.yaml @@ -66,7 +66,8 @@ applications: channel: 8.0/edge ceph-osd: - charm: ../../ceph-osd.charm + charm: ch:ceph-osd + channel: quincy/edge num_units: 3 storage: osd-devices: 'cinder,10G,2' diff --git a/tests/bundles/mantic-bobcat.yaml b/tests/bundles/mantic-bobcat.yaml index 3dc07363..9c2e41c6 100644 --- a/tests/bundles/mantic-bobcat.yaml +++ b/tests/bundles/mantic-bobcat.yaml @@ -66,7 +66,8 @@ applications: channel: latest/edge ceph-osd: - charm: ../../ceph-osd.charm + charm: ch:ceph-osd + channel: latest/edge num_units: 3 storage: osd-devices: 'cinder,10G,2' diff --git a/tests/tests.yaml b/tests/tests.yaml index af1f66cf..6701ea2e 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -8,12 +8,24 @@ gate_bundles: - mantic-bobcat smoke_bundles: - - focal-xena + - jammy-antelope configure: - - zaza.openstack.charm_tests.glance.setup.add_lts_image + - install: + - zaza.openstack.charm_tests.glance.setup.add_lts_image tests: + - install: + - zaza.openstack.charm_tests.ceph.tests.CephLowLevelTest + - zaza.openstack.charm_tests.ceph.tests.CephTest + - zaza.openstack.charm_tests.ceph.osd.tests.SecurityTest + - zaza.openstack.charm_tests.ceph.osd.tests.ServiceTest + - zaza.openstack.charm_tests.ceph.tests.CephLowLevelTest + - zaza.openstack.charm_tests.ceph.tests.CephTest + - zaza.openstack.charm_tests.ceph.osd.tests.SecurityTest + - zaza.openstack.charm_tests.ceph.osd.tests.ServiceTest + # Charm upgrade, then re-run tests + - zaza.charm_tests.lifecycle.tests.UpgradeCharmsToPath;ceph-osd - zaza.openstack.charm_tests.ceph.tests.CephLowLevelTest - zaza.openstack.charm_tests.ceph.tests.CephTest - zaza.openstack.charm_tests.ceph.osd.tests.SecurityTest