From 67944a4b953a3459bb105938e2c8ed8e9fb72f3a Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Fri, 29 Oct 2021 17:00:41 -0400 Subject: [PATCH] Add yoga bundles and release-tool syncs * charm-helpers sync for classic charms * sync from release-tools * switch to release-specific zosci functional tests * run focal-ussuri as smoke tests * remove trusty, xenial, and groovy metadata/tests * drop py35 and add py39 Change-Id: I4a800cfdf19d33d5a5c4f1d7c34efd082fc14549 --- osci.yaml | 75 +--- requirements.txt | 1 + src/metadata.yaml | 1 - ...onic-queens-ha.yaml => bionic-queens.yaml} | 0 src/tests/bundles/bionic-stein.yaml | 198 +++++++++ src/tests/bundles/bionic-ussuri.yaml | 345 ++++++++++++++++ ...focal-ussuri-ha.yaml => focal-ussuri.yaml} | 0 ...l-victoria-ha.yaml => focal-victoria.yaml} | 0 ...cal-wallaby-ha.yaml => focal-wallaby.yaml} | 0 .../{focal-xena-ha.yaml => focal-xena.yaml} | 0 src/tests/bundles/focal-yoga.yaml | 380 ++++++++++++++++++ ...e-wallaby-ha.yaml => hirsute-wallaby.yaml} | 0 .../{impish-xena-ha.yaml => impish-xena.yaml} | 0 ...roovy-victoria-ha.yaml => jammy-yoga.yaml} | 13 +- ...ueens-ha.yaml.j2 => bionic-queens.yaml.j2} | 0 ...-smoke-ha.yaml.j2 => bionic-stein.yaml.j2} | 0 ...ssuri-ha.yaml.j2 => bionic-ussuri.yaml.j2} | 0 ...ctoria-ha.yaml.j2 => focal-ussuri.yaml.j2} | 0 ...laby-ha.yaml.j2 => focal-victoria.yaml.j2} | 0 ...-xena-ha.yaml.j2 => focal-wallaby.yaml.j2} | 0 ...victoria-ha.yaml.j2 => focal-xena.yaml.j2} | 0 ...-wallaby-ha.yaml.j2 => focal-yoga.yaml.j2} | 0 ...ena-ha.yaml.j2 => hirsute-wallaby.yaml.j2} | 0 .../bundles/overlays/impish-xena.yaml.j2 | 1 + src/tests/bundles/overlays/jammy-yoga.yaml.j2 | 1 + src/tests/tests.yaml | 24 +- test-requirements.txt | 2 + tox.ini | 5 + 28 files changed, 974 insertions(+), 72 deletions(-) rename src/tests/bundles/{bionic-queens-ha.yaml => bionic-queens.yaml} (100%) create mode 100644 src/tests/bundles/bionic-stein.yaml create mode 100644 src/tests/bundles/bionic-ussuri.yaml rename src/tests/bundles/{focal-ussuri-ha.yaml => focal-ussuri.yaml} (100%) rename src/tests/bundles/{focal-victoria-ha.yaml => focal-victoria.yaml} (100%) rename src/tests/bundles/{focal-wallaby-ha.yaml => focal-wallaby.yaml} (100%) rename src/tests/bundles/{focal-xena-ha.yaml => focal-xena.yaml} (100%) create mode 100644 src/tests/bundles/focal-yoga.yaml rename src/tests/bundles/{hirsute-wallaby-ha.yaml => hirsute-wallaby.yaml} (100%) rename src/tests/bundles/{impish-xena-ha.yaml => impish-xena.yaml} (100%) rename src/tests/bundles/{groovy-victoria-ha.yaml => jammy-yoga.yaml} (97%) rename src/tests/bundles/overlays/{bionic-queens-ha.yaml.j2 => bionic-queens.yaml.j2} (100%) rename src/tests/bundles/overlays/{bionic-queens-smoke-ha.yaml.j2 => bionic-stein.yaml.j2} (100%) rename src/tests/bundles/overlays/{focal-ussuri-ha.yaml.j2 => bionic-ussuri.yaml.j2} (100%) rename src/tests/bundles/overlays/{focal-victoria-ha.yaml.j2 => focal-ussuri.yaml.j2} (100%) rename src/tests/bundles/overlays/{focal-wallaby-ha.yaml.j2 => focal-victoria.yaml.j2} (100%) rename src/tests/bundles/overlays/{focal-xena-ha.yaml.j2 => focal-wallaby.yaml.j2} (100%) rename src/tests/bundles/overlays/{groovy-victoria-ha.yaml.j2 => focal-xena.yaml.j2} (100%) rename src/tests/bundles/overlays/{hirsute-wallaby-ha.yaml.j2 => focal-yoga.yaml.j2} (100%) rename src/tests/bundles/overlays/{impish-xena-ha.yaml.j2 => hirsute-wallaby.yaml.j2} (100%) create mode 120000 src/tests/bundles/overlays/impish-xena.yaml.j2 create mode 120000 src/tests/bundles/overlays/jammy-yoga.yaml.j2 diff --git a/osci.yaml b/osci.yaml index 886ae16..06e83ae 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,66 +1,23 @@ - project: templates: - - charm-unit-jobs + - charm-yoga-unit-jobs + - charm-yoga-functional-jobs + - 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: - - bionic-queens-ha_keystone-saml-mellon - - focal-ussuri-ha_keystone-saml-mellon - - focal-victoria-ha_keystone-saml-mellon - - focal-wallaby-ha_keystone-saml-mellon - - focal-xena-ha_keystone-saml-mellon: - voting: false - - hirsute-wallaby-ha_keystone-saml-mellon - - impish-xena-ha_keystone-saml-mellon: - voting: false + # Non-voting due to: + # https://bugs.launchpad.net/charm-keystone-saml-mellon/+bug/1840515 + - bionic-ussuri: + voting: false + - focal-ussuri: + voting: false vars: needs_charm_build: true charm_build_name: keystone-saml-mellon - -- job: - name: bionic-queens-ha_keystone-saml-mellon - parent: func-target - dependencies: - - osci-lint - - tox-py35 - - tox-py36 - - tox-py37 - - tox-py38 - vars: - tox_extra_args: bionic-queens-ha -- job: - name: focal-ussuri-ha_keystone-saml-mellon - parent: func-target - dependencies: &smoke-jobs - - bionic-queens-ha_keystone-saml-mellon - vars: - tox_extra_args: focal-ussuri-ha -- job: - name: focal-victoria-ha_keystone-saml-mellon - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: focal-victoria-ha -- job: - name: focal-wallaby-ha_keystone-saml-mellon - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: focal-wallaby-ha -- job: - name: focal-xena-ha_keystone-saml-mellon - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: focal-xena-ha -- job: - name: hirsute-wallaby-ha_keystone-saml-mellon - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: hirsute-wallaby-ha -- job: - name: impish-xena-ha_keystone-saml-mellon - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: impish-xena-ha diff --git a/requirements.txt b/requirements.txt index b786b42..a68620f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 # Build requirements +cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. charm-tools==2.8.3 simplejson diff --git a/src/metadata.yaml b/src/metadata.yaml index 83f7784..3777572 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -20,7 +20,6 @@ tags: - federation - idP series: -- xenial - bionic - focal - groovy diff --git a/src/tests/bundles/bionic-queens-ha.yaml b/src/tests/bundles/bionic-queens.yaml similarity index 100% rename from src/tests/bundles/bionic-queens-ha.yaml rename to src/tests/bundles/bionic-queens.yaml diff --git a/src/tests/bundles/bionic-stein.yaml b/src/tests/bundles/bionic-stein.yaml new file mode 100644 index 0000000..511837f --- /dev/null +++ b/src/tests/bundles/bionic-stein.yaml @@ -0,0 +1,198 @@ +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 new file mode 100644 index 0000000..763b558 --- /dev/null +++ b/src/tests/bundles/bionic-ussuri.yaml @@ -0,0 +1,345 @@ +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-ha.yaml b/src/tests/bundles/focal-ussuri.yaml similarity index 100% rename from src/tests/bundles/focal-ussuri-ha.yaml rename to src/tests/bundles/focal-ussuri.yaml diff --git a/src/tests/bundles/focal-victoria-ha.yaml b/src/tests/bundles/focal-victoria.yaml similarity index 100% rename from src/tests/bundles/focal-victoria-ha.yaml rename to src/tests/bundles/focal-victoria.yaml diff --git a/src/tests/bundles/focal-wallaby-ha.yaml b/src/tests/bundles/focal-wallaby.yaml similarity index 100% rename from src/tests/bundles/focal-wallaby-ha.yaml rename to src/tests/bundles/focal-wallaby.yaml diff --git a/src/tests/bundles/focal-xena-ha.yaml b/src/tests/bundles/focal-xena.yaml similarity index 100% rename from src/tests/bundles/focal-xena-ha.yaml rename to src/tests/bundles/focal-xena.yaml diff --git a/src/tests/bundles/focal-yoga.yaml b/src/tests/bundles/focal-yoga.yaml new file mode 100644 index 0000000..fc80246 --- /dev/null +++ b/src/tests/bundles/focal-yoga.yaml @@ -0,0 +1,380 @@ +variables: + openstack-origin: &openstack-origin cloud:focal-yoga + +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/hirsute-wallaby-ha.yaml b/src/tests/bundles/hirsute-wallaby.yaml similarity index 100% rename from src/tests/bundles/hirsute-wallaby-ha.yaml rename to src/tests/bundles/hirsute-wallaby.yaml diff --git a/src/tests/bundles/impish-xena-ha.yaml b/src/tests/bundles/impish-xena.yaml similarity index 100% rename from src/tests/bundles/impish-xena-ha.yaml rename to src/tests/bundles/impish-xena.yaml diff --git a/src/tests/bundles/groovy-victoria-ha.yaml b/src/tests/bundles/jammy-yoga.yaml similarity index 97% rename from src/tests/bundles/groovy-victoria-ha.yaml rename to src/tests/bundles/jammy-yoga.yaml index 32fc9db..24f77ca 100644 --- a/src/tests/bundles/groovy-victoria-ha.yaml +++ b/src/tests/bundles/jammy-yoga.yaml @@ -1,7 +1,7 @@ variables: openstack-origin: &openstack-origin distro -series: groovy +series: jammy comment: - 'machines section to decide order of deployment. database sooner = faster' @@ -133,6 +133,11 @@ applications: - '11' - '12' + ntp: + charm: cs:ntp + series: focal + num_units: 0 + openstack-dashboard: charm: cs:~openstack-charmers-next/openstack-dashboard num_units: 3 @@ -319,6 +324,12 @@ relations: - - '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' diff --git a/src/tests/bundles/overlays/bionic-queens-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-queens.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/bionic-queens-ha.yaml.j2 rename to src/tests/bundles/overlays/bionic-queens.yaml.j2 diff --git a/src/tests/bundles/overlays/bionic-queens-smoke-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-stein.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/bionic-queens-smoke-ha.yaml.j2 rename to src/tests/bundles/overlays/bionic-stein.yaml.j2 diff --git a/src/tests/bundles/overlays/focal-ussuri-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-ussuri.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/focal-ussuri-ha.yaml.j2 rename to src/tests/bundles/overlays/bionic-ussuri.yaml.j2 diff --git a/src/tests/bundles/overlays/focal-victoria-ha.yaml.j2 b/src/tests/bundles/overlays/focal-ussuri.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/focal-victoria-ha.yaml.j2 rename to src/tests/bundles/overlays/focal-ussuri.yaml.j2 diff --git a/src/tests/bundles/overlays/focal-wallaby-ha.yaml.j2 b/src/tests/bundles/overlays/focal-victoria.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/focal-wallaby-ha.yaml.j2 rename to src/tests/bundles/overlays/focal-victoria.yaml.j2 diff --git a/src/tests/bundles/overlays/focal-xena-ha.yaml.j2 b/src/tests/bundles/overlays/focal-wallaby.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/focal-xena-ha.yaml.j2 rename to src/tests/bundles/overlays/focal-wallaby.yaml.j2 diff --git a/src/tests/bundles/overlays/groovy-victoria-ha.yaml.j2 b/src/tests/bundles/overlays/focal-xena.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/groovy-victoria-ha.yaml.j2 rename to src/tests/bundles/overlays/focal-xena.yaml.j2 diff --git a/src/tests/bundles/overlays/hirsute-wallaby-ha.yaml.j2 b/src/tests/bundles/overlays/focal-yoga.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/hirsute-wallaby-ha.yaml.j2 rename to src/tests/bundles/overlays/focal-yoga.yaml.j2 diff --git a/src/tests/bundles/overlays/impish-xena-ha.yaml.j2 b/src/tests/bundles/overlays/hirsute-wallaby.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/impish-xena-ha.yaml.j2 rename to src/tests/bundles/overlays/hirsute-wallaby.yaml.j2 diff --git a/src/tests/bundles/overlays/impish-xena.yaml.j2 b/src/tests/bundles/overlays/impish-xena.yaml.j2 new file mode 120000 index 0000000..9280f58 --- /dev/null +++ b/src/tests/bundles/overlays/impish-xena.yaml.j2 @@ -0,0 +1 @@ +ha.yaml.j2 \ No newline at end of file diff --git a/src/tests/bundles/overlays/jammy-yoga.yaml.j2 b/src/tests/bundles/overlays/jammy-yoga.yaml.j2 new file mode 120000 index 0000000..9280f58 --- /dev/null +++ b/src/tests/bundles/overlays/jammy-yoga.yaml.j2 @@ -0,0 +1 @@ +ha.yaml.j2 \ No newline at end of file diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index 941e016..4c328c1 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -1,19 +1,20 @@ charm_name: keystone-saml-mellon smoke_bundles: -- focal-ussuri-ha +- focal-ussuri gate_bundles: -- bionic-queens-ha -- focal-ussuri-ha -- focal-victoria-ha -- focal-wallaby-ha -- focal-xena-ha +- bionic-queens +- focal-ussuri +- focal-victoria +- focal-wallaby +- focal-xena +- hirsute-wallaby +- impish-xena dev_bundles: -- groovy-victoria-ha -- hirsute-wallaby-ha -- impish-xena-ha +- focal-yoga +- jammy-yoga configure: - zaza.openstack.charm_tests.vault.setup.auto_initialize @@ -59,5 +60,6 @@ target_deploy_status: tests_options: force_deploy: - - impish-xena-ha - - groovy-victoria-ha + - hirsute-wallaby + - impish-xena + - jammy-yoga diff --git a/test-requirements.txt b/test-requirements.txt index af069e1..bb1307f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,6 +3,8 @@ # choices of *requirements.txt files for OpenStack Charms: # https://github.com/openstack-charmers/release-tools # +pyparsing<3.0.0 # aodhclient is pinned in zaza and needs pyparsing < 3.0.0, but cffi also needs it, so pin here. +cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 stestr>=2.2.0 diff --git a/tox.ini b/tox.ini index 22159df..faf6092 100644 --- a/tox.ini +++ b/tox.ini @@ -75,6 +75,11 @@ basepython = python3.8 deps = -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} +[testenv:py39] +basepython = python3.9 +deps = -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} + [testenv:pep8] basepython = python3 deps = flake8==3.9.2