From 0b07702b38c3d2757c486f54cb4626d932c0985e Mon Sep 17 00:00:00 2001 From: Alex Kavanagh Date: Fri, 20 May 2022 20:02:49 +0100 Subject: [PATCH] Migrate charm charmhub for stable/ussuri - start from stable/ussuri branch - Do charmcraft, osci, zuul changes - Modify libs to point to stable/ussuri for: - charmhelpers - charms.openstack (as needed) - zaza & zaza.openstack.tests - Remove unsupported test bundles - migration bundles to charmhub.io (ch: prefix + channels) - Build on 18.04 amd64 - Run on 18.04 amd64, s390x, ppc64el, arm64 - Run on 20.04 amd64, s390x, ppc64el, arm64 Change-Id: I39e6587b830a319a73e8da20cfb2c67898397729 --- .gitignore | 1 + .gitreview | 2 +- .zuul.yaml | 4 +- build-requirements.txt | 7 + charmcraft.yaml | 38 ++ metadata.yaml | 1 + osci.yaml | 51 +-- rename.sh | 13 + requirements.txt | 1 + src/build.lock | 14 +- src/metadata.yaml | 4 - src/test-requirements.txt | 8 +- ...ic-queens-ha.yaml => bionic-train-ha.yaml} | 75 +++- src/tests/bundles/bionic-ussuri-ha.yaml | 227 +++++++++++ src/tests/bundles/focal-ussuri-ha.yaml | 79 ++-- src/tests/bundles/focal-victoria-ha.yaml | 380 ------------------ src/tests/bundles/focal-wallaby-ha.yaml | 380 ------------------ src/tests/bundles/groovy-victoria-ha.yaml | 370 ----------------- src/tests/bundles/hirsute-wallaby-ha.yaml | 370 ----------------- src/tests/bundles/overlays/bionic-ha.yaml.j2 | 26 -- .../bundles/overlays/bionic-queens-ha.yaml.j2 | 26 -- .../overlays/bionic-queens-smoke-ha.yaml.j2 | 26 -- src/tests/tests.yaml | 17 +- src/wheelhouse.txt | 4 +- test-requirements.txt | 3 +- tox.ini | 45 ++- 26 files changed, 478 insertions(+), 1694 deletions(-) create mode 100644 build-requirements.txt create mode 100644 charmcraft.yaml create mode 120000 metadata.yaml create mode 100755 rename.sh rename src/tests/bundles/{bionic-queens-ha.yaml => bionic-train-ha.yaml} (72%) create mode 100644 src/tests/bundles/bionic-ussuri-ha.yaml delete mode 100644 src/tests/bundles/focal-victoria-ha.yaml delete mode 100644 src/tests/bundles/focal-wallaby-ha.yaml delete mode 100644 src/tests/bundles/groovy-victoria-ha.yaml delete mode 100644 src/tests/bundles/hirsute-wallaby-ha.yaml delete mode 100644 src/tests/bundles/overlays/bionic-ha.yaml.j2 delete mode 100644 src/tests/bundles/overlays/bionic-queens-ha.yaml.j2 delete mode 100644 src/tests/bundles/overlays/bionic-queens-smoke-ha.yaml.j2 diff --git a/.gitignore b/.gitignore index 875e8f2..3235d65 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build src/tests/bundles/overlays/local-charm-overlay.yaml.j2 interfaces layers +*.charm diff --git a/.gitreview b/.gitreview index 9577408..09ac7a2 100644 --- a/.gitreview +++ b/.gitreview @@ -3,4 +3,4 @@ host=review.opendev.org port=29418 project=openstack/charm-keystone-saml-mellon.git -defaultbranch=stable/21.10 +defaultbranch=stable/ussuri diff --git a/.zuul.yaml b/.zuul.yaml index 18efca1..0eed196 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -1,4 +1,4 @@ - project: templates: - - python35-charm-jobs - - openstack-python3-train-jobs + - openstack-python3-ussuri-jobs + - openstack-cover-jobs diff --git a/build-requirements.txt b/build-requirements.txt new file mode 100644 index 0000000..b6d2452 --- /dev/null +++ b/build-requirements.txt @@ -0,0 +1,7 @@ +# NOTES(lourot): +# * We don't install charmcraft via pip anymore because it anyway spins up a +# container and scp the system's charmcraft snap inside it. So the charmcraft +# snap is necessary on the system anyway. +# * `tox -e build` successfully validated with charmcraft 1.2.1 + +cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. diff --git a/charmcraft.yaml b/charmcraft.yaml new file mode 100644 index 0000000..63d1a7d --- /dev/null +++ b/charmcraft.yaml @@ -0,0 +1,38 @@ +type: charm + +parts: + charm: + build-packages: + - git + - python3-dev + - python3-pip + - libffi-dev + - libssl-dev + - libxml2-dev + - libxslt1-dev + override-build: | + apt-get install ca-certificates -y + pip3 install --user "tox==3.18" + ~/.local/bin/tox -e build-reactive + override-stage: | + echo "Copying charm to staging area: $CHARMCRAFT_STAGE" + NAME=$(ls $CHARMCRAFT_PART_BUILD/build/builds) + cp -r $CHARMCRAFT_PART_BUILD/build/builds/$NAME/* $CHARMCRAFT_STAGE/ + override-prime: | + # For some reason, the normal priming chokes on the fact that there's a + # hooks directory. + cp -r $CHARMCRAFT_STAGE/* . + +bases: + - build-on: + - name: ubuntu + channel: "18.04" + architectures: + - amd64 + run-on: + - name: ubuntu + channel: "18.04" + architectures: [amd64, s390x, ppc64el, arm64] + - name: ubuntu + channel: "20.04" + architectures: [amd64, s390x, ppc64el, arm64] 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 bcde713..6498b9b 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,50 +1,41 @@ - project: templates: - - charm-unit-jobs + - charm-unit-jobs-py36 + - charm-unit-jobs-py38 check: jobs: - - bionic-queens-ha_keystone-saml-mellon + - bionic-train-ha_keystone-saml-mellon + - bionic-ussuri-ha_keystone-saml-mellon - focal-ussuri-ha_keystone-saml-mellon - - focal-victoria-ha_keystone-saml-mellon - - focal-wallaby-ha_keystone-saml-mellon - - hirsute-wallaby-ha_keystone-saml-mellon vars: needs_charm_build: true charm_build_name: keystone-saml-mellon + build_type: charmcraft - job: - name: bionic-queens-ha_keystone-saml-mellon + name: bionic-train-ha_keystone-saml-mellon parent: func-target dependencies: + - charm-build - osci-lint - - tox-py35 - tox-py36 - - tox-py37 - - tox-py38 vars: - tox_extra_args: bionic-queens-ha + tox_extra_args: bionic-train-ha +- job: + name: bionic-ussuri-ha_keystone-saml-mellon + parent: func-target + dependencies: + - charm-build + - osci-lint + - tox-py36 + vars: + tox_extra_args: bionic-ussuri-ha - job: name: focal-ussuri-ha_keystone-saml-mellon parent: func-target - dependencies: &smoke-jobs - - bionic-queens-ha_keystone-saml-mellon + dependencies: + - charm-build + - osci-lint + - tox-py38 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: hirsute-wallaby-ha_keystone-saml-mellon - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: hirsute-wallaby-ha diff --git a/rename.sh b/rename.sh new file mode 100755 index 0000000..d0c35c9 --- /dev/null +++ b/rename.sh @@ -0,0 +1,13 @@ +#!/bin/bash +charm=$(grep "charm_build_name" osci.yaml | awk '{print $2}') +echo "renaming ${charm}_*.charm to ${charm}.charm" +echo -n "pwd: " +pwd +ls -al +echo "Removing bad downloaded charm maybe?" +if [[ -e "${charm}.charm" ]]; +then + rm "${charm}.charm" +fi +echo "Renaming charm here." +mv ${charm}_*.charm ${charm}.charm diff --git a/requirements.txt b/requirements.txt index a68620f..e182e8a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 # Build requirements +pyparsing<3.0.0 # cffi needs pyparsing < 3.0.0. cffi==1.14.6; python_version < '3.6' # cffi 1.15.0 drops support for py35. charm-tools==2.8.3 diff --git a/src/build.lock b/src/build.lock index 2d37e95..9fdff28 100644 --- a/src/build.lock +++ b/src/build.lock @@ -150,17 +150,11 @@ "vcs": null, "version": "1.1.1" }, - { - "type": "python_module", - "package": "Tempita", - "vcs": null, - "version": "0.4" - }, { "type": "python_module", "package": "charms.openstack", "url": "git+https://github.com/openstack/charms.openstack.git", - "branch": "refs/heads/stable/21.10", + "branch": "stable/ussuri", "version": "10627ee5f991c268f174d6d100e218a0e1867af1", "vcs": "git" }, @@ -180,8 +174,8 @@ "type": "python_module", "package": "charmhelpers", "url": "git+https://github.com/juju/charm-helpers.git", - "branch": "refs/heads/stable/21.10", - "version": "26efcd0da51d580f68ead2ca13c38f58766f8a14", + "branch": "stable/ussuri", + "version": "a99a667d343ab3c11074d8bc8c6d8b5d638f73b7", "vcs": "git" }, { @@ -209,4 +203,4 @@ "version": "21.10.1" } ] -} +} \ No newline at end of file diff --git a/src/metadata.yaml b/src/metadata.yaml index 83f7784..3f46df1 100644 --- a/src/metadata.yaml +++ b/src/metadata.yaml @@ -20,12 +20,8 @@ tags: - federation - idP series: -- xenial - bionic - focal -- groovy -- hirsute -- impish provides: keystone-fid-service-provider: interface: keystone-fid-service-provider diff --git a/src/test-requirements.txt b/src/test-requirements.txt index bd0c1a8..cba1f4e 100644 --- a/src/test-requirements.txt +++ b/src/test-requirements.txt @@ -5,5 +5,9 @@ # # Functional Test Requirements (let Zaza's dependencies solve all dependencies here!) -git+https://github.com/openstack-charmers/zaza.git@stable/21.10#egg=zaza -git+https://github.com/openstack-charmers/zaza-openstack-tests.git@stable/21.10#egg=zaza.openstack +git+https://github.com/openstack-charmers/zaza.git@stable/ussuri#egg=zaza +git+https://github.com/openstack-charmers/zaza-openstack-tests.git@stable/ussuri#egg=zaza.openstack + +# Need tox to be available from tox... inception yes, but its a workaround for now +tox + diff --git a/src/tests/bundles/bionic-queens-ha.yaml b/src/tests/bundles/bionic-train-ha.yaml similarity index 72% rename from src/tests/bundles/bionic-queens-ha.yaml rename to src/tests/bundles/bionic-train-ha.yaml index 2fd75cf..6f6ff1a 100644 --- a/src/tests/bundles/bionic-queens-ha.yaml +++ b/src/tests/bundles/bionic-train-ha.yaml @@ -1,3 +1,8 @@ +local_overlay_enabled: False + +variables: + openstack-origin: &openstack-origin cloud:bionic-train + relations: - - nova-compute:amqp - rabbitmq-server:amqp @@ -71,6 +76,14 @@ relations: - glance:certificates - - vault:certificates - openstack-dashboard:certificates +- - 'placement:identity-service' + - 'keystone:identity-service' +- - 'placement:placement' + - 'nova-cloud-controller:placement' +- - 'vault:certificates' + - 'placement:certificates' +- - "placement:shared-db" + - mysql:shared-db - - openstack-dashboard - keystone-saml-mellon1 - - openstack-dashboard @@ -87,68 +100,98 @@ relations: series: bionic services: cinder: - charm: cs:~openstack-charmers/cinder + charm: ch:cinder num_units: 1 options: + openstack-origin: *openstack-origin block-device: None glance-api-version: 2 + channel: ussuri/edge glance: - charm: cs:~openstack-charmers/glance + charm: ch:glance + options: + openstack-origin: *openstack-origin num_units: 1 + channel: ussuri/edge keystone: - charm: cs:~openstack-charmers/keystone + charm: ch:keystone num_units: 1 options: + openstack-origin: *openstack-origin token-provider: 'fernet' + channel: ussuri/edge mysql: - charm: cs:~openstack-charmers/percona-cluster + charm: ch:percona-cluster num_units: 1 constraints: mem=3072M options: innodb-buffer-pool-size: 256M max-connections: 1000 + channel: 5.7/edge neutron-api: - charm: cs:~openstack-charmers/neutron-api + charm: ch:neutron-api num_units: 1 options: + openstack-origin: *openstack-origin flat-network-providers: physnet1 neutron-security-groups: true + channel: ussuri/edge neutron-gateway: - charm: cs:~openstack-charmers/neutron-gateway + charm: ch:neutron-gateway num_units: 1 options: + openstack-origin: *openstack-origin bridge-mappings: physnet1:br-ex + channel: ussuri/edge neutron-openvswitch: - charm: cs:~openstack-charmers/neutron-openvswitch + charm: ch:neutron-openvswitch num_units: 0 + channel: ussuri/edge nova-cloud-controller: - charm: cs:~openstack-charmers/nova-cloud-controller + charm: ch:nova-cloud-controller num_units: 1 options: + openstack-origin: *openstack-origin network-manager: Neutron + channel: ussuri/edge nova-compute: - charm: cs:~openstack-charmers/nova-compute + charm: ch: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 + channel: ussuri/edge ntp: charm: cs:ntp num_units: 0 openstack-dashboard: - charm: cs:~openstack-charmers/openstack-dashboard + charm: ch:openstack-dashboard num_units: 1 + options: + openstack-origin: *openstack-origin + channel: ussuri/edge rabbitmq-server: - charm: cs:~openstack-charmers/rabbitmq-server + charm: ch:rabbitmq-server num_units: 1 + channel: 3.8/edge vault: num_units: 1 - charm: cs:~openstack-charmers/vault + charm: ch:vault + channel: 1.7/edge + placement: + charm: ch:placement + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '18' + channel: ussuri/edge keystone-saml-mellon1: series: bionic - charm: ../../../keystone-saml-mellon + charm: ../../../keystone-saml-mellon.charm num_units: 0 options: idp-name: 'test-saml-idp1' @@ -157,7 +200,7 @@ services: 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' @@ -166,7 +209,7 @@ services: auth-user-password: 'userpass1' keystone-saml-mellon2: series: bionic - charm: ../../../keystone-saml-mellon + charm: ../../../keystone-saml-mellon.charm num_units: 0 options: idp-name: 'test-saml-idp2' @@ -175,7 +218,7 @@ services: 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' diff --git a/src/tests/bundles/bionic-ussuri-ha.yaml b/src/tests/bundles/bionic-ussuri-ha.yaml new file mode 100644 index 0000000..9dbf1c7 --- /dev/null +++ b/src/tests/bundles/bionic-ussuri-ha.yaml @@ -0,0 +1,227 @@ +local_overlay_enabled: False + +variables: + openstack-origin: &openstack-origin cloud:bionic-ussuri + +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 +- - 'placement:identity-service' + - 'keystone:identity-service' +- - 'placement:placement' + - 'nova-cloud-controller:placement' +- - 'vault:certificates' + - 'placement:certificates' +- - "placement:shared-db" + - mysql:shared-db +- - 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: ch:cinder + num_units: 1 + options: + openstack-origin: *openstack-origin + block-device: None + glance-api-version: 2 + channel: ussuri/edge + glance: + charm: ch:glance + options: + openstack-origin: *openstack-origin + num_units: 1 + channel: ussuri/edge + keystone: + charm: ch:keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + token-provider: 'fernet' + channel: ussuri/edge + mysql: + charm: ch:percona-cluster + num_units: 1 + constraints: mem=3072M + options: + innodb-buffer-pool-size: 256M + max-connections: 1000 + channel: 5.7/edge + neutron-api: + charm: ch:neutron-api + num_units: 1 + options: + openstack-origin: *openstack-origin + flat-network-providers: physnet1 + neutron-security-groups: true + channel: ussuri/edge + neutron-gateway: + charm: ch:neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + channel: ussuri/edge + neutron-openvswitch: + charm: ch:neutron-openvswitch + num_units: 0 + channel: ussuri/edge + nova-cloud-controller: + charm: ch:nova-cloud-controller + num_units: 1 + options: + openstack-origin: *openstack-origin + network-manager: Neutron + channel: ussuri/edge + nova-compute: + charm: ch: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 + channel: ussuri/edge + ntp: + charm: cs:ntp + num_units: 0 + openstack-dashboard: + charm: ch:openstack-dashboard + num_units: 1 + options: + openstack-origin: *openstack-origin + channel: ussuri/edge + rabbitmq-server: + charm: ch:rabbitmq-server + num_units: 1 + channel: 3.8/edge + vault: + num_units: 1 + charm: ch:vault + channel: 1.7/edge + placement: + charm: ch:placement + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '18' + channel: ussuri/edge + keystone-saml-mellon1: + series: bionic + charm: ../../../keystone-saml-mellon.charm + 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: ch: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.charm + 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: ch: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/focal-ussuri-ha.yaml b/src/tests/bundles/focal-ussuri-ha.yaml index 1964047..ff3fd54 100644 --- a/src/tests/bundles/focal-ussuri-ha.yaml +++ b/src/tests/bundles/focal-ussuri-ha.yaml @@ -1,3 +1,5 @@ +local_overlay_enabled: False + variables: openstack-origin: &openstack-origin distro @@ -32,24 +34,32 @@ machines: applications: keystone-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge neutron-api-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge glance-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge openstack-dashboard-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge nova-cloud-controller-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge cinder-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge vault-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge placement-mysql-router: - charm: cs:~openstack-charmers/mysql-router + charm: ch:mysql-router + channel: 8.0/edge mysql-innodb-cluster: - charm: cs:~openstack-charmers/mysql-innodb-cluster + charm: ch:mysql-innodb-cluster num_units: 3 options: source: *openstack-origin @@ -57,27 +67,30 @@ applications: - '0' - '1' - '2' + channel: 8.0/edge cinder: num_units: 1 - charm: cs:~openstack-charmers/cinder + charm: ch:cinder options: openstack-origin: *openstack-origin glance-api-version: 2 block-device: None to: - '3' + channel: ussuri/edge glance: - charm: cs:~openstack-charmers/glance + charm: ch:glance num_units: 1 options: openstack-origin: *openstack-origin to: - '4' + channel: ussuri/edge keystone: - charm: cs:~openstack-charmers/keystone + charm: ch:keystone num_units: 3 options: openstack-origin: *openstack-origin @@ -86,9 +99,10 @@ applications: - '5' - '6' - '7' + channel: ussuri/edge neutron-api: - charm: cs:~openstack-charmers/neutron-api + charm: ch:neutron-api num_units: 1 options: openstack-origin: *openstack-origin @@ -97,31 +111,35 @@ applications: neutron-security-groups: true to: - '8' + channel: ussuri/edge neutron-gateway: - charm: cs:~openstack-charmers/neutron-gateway + charm: ch:neutron-gateway num_units: 1 options: openstack-origin: *openstack-origin bridge-mappings: physnet1:br-ex to: - '9' + channel: ussuri/edge neutron-openvswitch: - charm: cs:~openstack-charmers/neutron-openvswitch + charm: ch:neutron-openvswitch num_units: 0 + channel: ussuri/edge nova-cloud-controller: - charm: cs:~openstack-charmers/nova-cloud-controller + charm: ch:nova-cloud-controller num_units: 1 options: openstack-origin: *openstack-origin network-manager: Neutron to: - '10' + channel: ussuri/edge nova-compute: - charm: cs:~openstack-charmers/nova-compute + charm: ch:nova-compute num_units: 2 options: openstack-origin: *openstack-origin @@ -132,13 +150,14 @@ applications: to: - '11' - '12' + channel: ussuri/edge ntp: charm: cs:ntp num_units: 0 openstack-dashboard: - charm: cs:~openstack-charmers/openstack-dashboard + charm: ch:openstack-dashboard num_units: 3 options: openstack-origin: *openstack-origin @@ -146,32 +165,36 @@ applications: - '13' - '14' - '15' + channel: ussuri/edge rabbitmq-server: - charm: cs:~openstack-charmers/rabbitmq-server + charm: ch:rabbitmq-server num_units: 1 options: source: *openstack-origin to: - '16' + channel: 3.8/edge vault: num_units: 1 - charm: cs:~openstack-charmers/vault + charm: ch:vault to: - '17' + channel: 1.7/edge placement: - charm: cs:~openstack-charmers/placement + charm: ch:placement num_units: 1 options: openstack-origin: *openstack-origin to: - '18' + channel: ussuri/edge keystone-saml-mellon1: series: focal - charm: ../../../keystone-saml-mellon + charm: ../../../keystone-saml-mellon.charm num_units: 0 options: idp-name: 'test-saml-idp1' @@ -180,7 +203,7 @@ applications: 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:test-saml-idp num_units: 1 options: idp-name: 'test-saml-idp1' @@ -190,7 +213,7 @@ applications: keystone-saml-mellon2: series: focal - charm: ../../../keystone-saml-mellon + charm: ../../../keystone-saml-mellon.charm num_units: 0 options: idp-name: 'test-saml-idp2' @@ -199,7 +222,7 @@ applications: 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:test-saml-idp num_units: 1 options: idp-name: 'test-saml-idp2' @@ -208,17 +231,19 @@ applications: auth-user-password: 'userpass2' keystone-hacluster: - charm: cs:~openstack-charmers/hacluster + charm: ch:hacluster num_units: 0 options: corosync_transport: unicast cluster_count: 3 + channel: 2.0.3/edge openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/hacluster + charm: ch:hacluster num_units: 0 options: corosync_transport: unicast cluster_count: 3 + channel: 2.0.3/edge relations: diff --git a/src/tests/bundles/focal-victoria-ha.yaml b/src/tests/bundles/focal-victoria-ha.yaml deleted file mode 100644 index c48743c..0000000 --- a/src/tests/bundles/focal-victoria-ha.yaml +++ /dev/null @@ -1,380 +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/mysql-router - neutron-api-mysql-router: - charm: cs:~openstack-charmers/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers/mysql-router - openstack-dashboard-mysql-router: - charm: cs:~openstack-charmers/mysql-router - nova-cloud-controller-mysql-router: - charm: cs:~openstack-charmers/mysql-router - cinder-mysql-router: - charm: cs:~openstack-charmers/mysql-router - vault-mysql-router: - charm: cs:~openstack-charmers/mysql-router - placement-mysql-router: - charm: cs:~openstack-charmers/mysql-router - - mysql-innodb-cluster: - charm: cs:~openstack-charmers/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - - cinder: - num_units: 1 - charm: cs:~openstack-charmers/cinder - options: - openstack-origin: *openstack-origin - glance-api-version: 2 - block-device: None - to: - - '3' - - glance: - charm: cs:~openstack-charmers/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - - keystone: - charm: cs:~openstack-charmers/keystone - num_units: 3 - options: - openstack-origin: *openstack-origin - token-provider: 'fernet' - to: - - '5' - - '6' - - '7' - - neutron-api: - charm: cs:~openstack-charmers/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/neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '9' - - neutron-openvswitch: - charm: cs:~openstack-charmers/neutron-openvswitch - num_units: 0 - - nova-cloud-controller: - charm: cs:~openstack-charmers/nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - to: - - '10' - - nova-compute: - charm: cs:~openstack-charmers/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/openstack-dashboard - num_units: 3 - options: - openstack-origin: *openstack-origin - to: - - '13' - - '14' - - '15' - - rabbitmq-server: - charm: cs:~openstack-charmers/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '16' - - vault: - num_units: 1 - charm: cs:~openstack-charmers/vault - to: - - '17' - - placement: - charm: cs:~openstack-charmers/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/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/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-ha.yaml b/src/tests/bundles/focal-wallaby-ha.yaml deleted file mode 100644 index 60bdfe2..0000000 --- a/src/tests/bundles/focal-wallaby-ha.yaml +++ /dev/null @@ -1,380 +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/mysql-router - neutron-api-mysql-router: - charm: cs:~openstack-charmers/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers/mysql-router - openstack-dashboard-mysql-router: - charm: cs:~openstack-charmers/mysql-router - nova-cloud-controller-mysql-router: - charm: cs:~openstack-charmers/mysql-router - cinder-mysql-router: - charm: cs:~openstack-charmers/mysql-router - vault-mysql-router: - charm: cs:~openstack-charmers/mysql-router - placement-mysql-router: - charm: cs:~openstack-charmers/mysql-router - - mysql-innodb-cluster: - charm: cs:~openstack-charmers/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - - cinder: - num_units: 1 - charm: cs:~openstack-charmers/cinder - options: - openstack-origin: *openstack-origin - glance-api-version: 2 - block-device: None - to: - - '3' - - glance: - charm: cs:~openstack-charmers/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - - keystone: - charm: cs:~openstack-charmers/keystone - num_units: 3 - options: - openstack-origin: *openstack-origin - token-provider: 'fernet' - to: - - '5' - - '6' - - '7' - - neutron-api: - charm: cs:~openstack-charmers/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/neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '9' - - neutron-openvswitch: - charm: cs:~openstack-charmers/neutron-openvswitch - num_units: 0 - - nova-cloud-controller: - charm: cs:~openstack-charmers/nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - to: - - '10' - - nova-compute: - charm: cs:~openstack-charmers/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/openstack-dashboard - num_units: 3 - options: - openstack-origin: *openstack-origin - to: - - '13' - - '14' - - '15' - - rabbitmq-server: - charm: cs:~openstack-charmers/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '16' - - vault: - num_units: 1 - charm: cs:~openstack-charmers/vault - to: - - '17' - - placement: - charm: cs:~openstack-charmers/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/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/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/groovy-victoria-ha.yaml b/src/tests/bundles/groovy-victoria-ha.yaml deleted file mode 100644 index 3532992..0000000 --- a/src/tests/bundles/groovy-victoria-ha.yaml +++ /dev/null @@ -1,370 +0,0 @@ -variables: - openstack-origin: &openstack-origin distro - -series: groovy - -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/mysql-router - neutron-api-mysql-router: - charm: cs:~openstack-charmers/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers/mysql-router - openstack-dashboard-mysql-router: - charm: cs:~openstack-charmers/mysql-router - nova-cloud-controller-mysql-router: - charm: cs:~openstack-charmers/mysql-router - cinder-mysql-router: - charm: cs:~openstack-charmers/mysql-router - vault-mysql-router: - charm: cs:~openstack-charmers/mysql-router - placement-mysql-router: - charm: cs:~openstack-charmers/mysql-router - - mysql-innodb-cluster: - charm: cs:~openstack-charmers/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - - cinder: - num_units: 1 - charm: cs:~openstack-charmers/cinder - options: - openstack-origin: *openstack-origin - glance-api-version: 2 - block-device: None - to: - - '3' - - glance: - charm: cs:~openstack-charmers/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - - keystone: - charm: cs:~openstack-charmers/keystone - num_units: 3 - options: - openstack-origin: *openstack-origin - token-provider: 'fernet' - to: - - '5' - - '6' - - '7' - - neutron-api: - charm: cs:~openstack-charmers/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/neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '9' - - neutron-openvswitch: - charm: cs:~openstack-charmers/neutron-openvswitch - num_units: 0 - - nova-cloud-controller: - charm: cs:~openstack-charmers/nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - to: - - '10' - - nova-compute: - charm: cs:~openstack-charmers/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/openstack-dashboard - num_units: 3 - options: - openstack-origin: *openstack-origin - to: - - '13' - - '14' - - '15' - - rabbitmq-server: - charm: cs:~openstack-charmers/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '16' - - vault: - num_units: 1 - charm: cs:~openstack-charmers/vault - to: - - '17' - - placement: - charm: cs:~openstack-charmers/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 - 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 - options: - idp-name: 'test-saml-idp2' - protocol-name: 'mapped' - auth-user-name: 'user2' - auth-user-password: 'userpass2' - - keystone-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/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/hirsute-wallaby-ha.yaml b/src/tests/bundles/hirsute-wallaby-ha.yaml deleted file mode 100644 index 2811ab6..0000000 --- a/src/tests/bundles/hirsute-wallaby-ha.yaml +++ /dev/null @@ -1,370 +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/mysql-router - neutron-api-mysql-router: - charm: cs:~openstack-charmers/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers/mysql-router - openstack-dashboard-mysql-router: - charm: cs:~openstack-charmers/mysql-router - nova-cloud-controller-mysql-router: - charm: cs:~openstack-charmers/mysql-router - cinder-mysql-router: - charm: cs:~openstack-charmers/mysql-router - vault-mysql-router: - charm: cs:~openstack-charmers/mysql-router - placement-mysql-router: - charm: cs:~openstack-charmers/mysql-router - - mysql-innodb-cluster: - charm: cs:~openstack-charmers/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - - cinder: - num_units: 1 - charm: cs:~openstack-charmers/cinder - options: - openstack-origin: *openstack-origin - glance-api-version: 2 - block-device: None - to: - - '3' - - glance: - charm: cs:~openstack-charmers/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - - keystone: - charm: cs:~openstack-charmers/keystone - num_units: 3 - options: - openstack-origin: *openstack-origin - token-provider: 'fernet' - to: - - '5' - - '6' - - '7' - - neutron-api: - charm: cs:~openstack-charmers/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/neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '9' - - neutron-openvswitch: - charm: cs:~openstack-charmers/neutron-openvswitch - num_units: 0 - - nova-cloud-controller: - charm: cs:~openstack-charmers/nova-cloud-controller - num_units: 1 - options: - openstack-origin: *openstack-origin - network-manager: Neutron - to: - - '10' - - nova-compute: - charm: cs:~openstack-charmers/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/openstack-dashboard - num_units: 3 - options: - openstack-origin: *openstack-origin - to: - - '13' - - '14' - - '15' - - rabbitmq-server: - charm: cs:~openstack-charmers/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '16' - - vault: - num_units: 1 - charm: cs:~openstack-charmers/vault - to: - - '17' - - placement: - charm: cs:~openstack-charmers/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 - 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 - options: - idp-name: 'test-saml-idp2' - protocol-name: 'mapped' - auth-user-name: 'user2' - auth-user-password: 'userpass2' - - keystone-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/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/overlays/bionic-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-ha.yaml.j2 deleted file mode 100644 index dd5114a..0000000 --- a/src/tests/bundles/overlays/bionic-ha.yaml.j2 +++ /dev/null @@ -1,26 +0,0 @@ -relations: -- - keystone - - keystone-hacluster -- - openstack-dashboard - - openstack-dashboard-hacluster -applications: - keystone: - num_units: 3 - options: - vip: {{ OS_VIP00 }} - openstack-dashboard: - num_units: 3 - options: - vip: {{ OS_VIP01 }} - keystone-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 diff --git a/src/tests/bundles/overlays/bionic-queens-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-queens-ha.yaml.j2 deleted file mode 100644 index dd5114a..0000000 --- a/src/tests/bundles/overlays/bionic-queens-ha.yaml.j2 +++ /dev/null @@ -1,26 +0,0 @@ -relations: -- - keystone - - keystone-hacluster -- - openstack-dashboard - - openstack-dashboard-hacluster -applications: - keystone: - num_units: 3 - options: - vip: {{ OS_VIP00 }} - openstack-dashboard: - num_units: 3 - options: - vip: {{ OS_VIP01 }} - keystone-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 diff --git a/src/tests/bundles/overlays/bionic-queens-smoke-ha.yaml.j2 b/src/tests/bundles/overlays/bionic-queens-smoke-ha.yaml.j2 deleted file mode 100644 index dd5114a..0000000 --- a/src/tests/bundles/overlays/bionic-queens-smoke-ha.yaml.j2 +++ /dev/null @@ -1,26 +0,0 @@ -relations: -- - keystone - - keystone-hacluster -- - openstack-dashboard - - openstack-dashboard-hacluster -applications: - keystone: - num_units: 3 - options: - vip: {{ OS_VIP00 }} - openstack-dashboard: - num_units: 3 - options: - vip: {{ OS_VIP01 }} - keystone-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 - openstack-dashboard-hacluster: - charm: cs:~openstack-charmers/hacluster - num_units: 0 - options: - corosync_transport: unicast - cluster_count: 3 diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index b9056a5..03726bc 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -1,17 +1,14 @@ charm_name: keystone-saml-mellon smoke_bundles: -- focal-ussuri-ha + - focal-ussuri-ha gate_bundles: -- bionic-queens-ha -- focal-ussuri-ha -- focal-victoria-ha -- focal-wallaby-ha -- groovy-victoria-ha + - bionic-train-ha + - bionic-ussuri-ha + - focal-ussuri-ha -dev_bundles: -- hirsute-wallaby-ha +dev_bundles: [] configure: - zaza.openstack.charm_tests.vault.setup.auto_initialize @@ -56,6 +53,4 @@ target_deploy_status: workload-status-message: "sp-metadata resource is not a well-formed xml file" tests_options: - force_deploy: - - hirsute-wallaby-ha - - groovy-victoria-ha + force_deploy: [] diff --git a/src/wheelhouse.txt b/src/wheelhouse.txt index 634c8df..a49e0c7 100644 --- a/src/wheelhouse.txt +++ b/src/wheelhouse.txt @@ -6,6 +6,6 @@ cryptography<3.4 lxml psutil -git+https://github.com/openstack/charms.openstack.git@stable/21.10#egg=charms.openstack +git+https://github.com/openstack/charms.openstack.git@stable/ussuri#egg=charms.openstack -git+https://github.com/juju/charm-helpers.git@stable/21.10#egg=charmhelpers +git+https://github.com/juju/charm-helpers@stable/ussuri#egg=charmhelpers diff --git a/test-requirements.txt b/test-requirements.txt index 4afbb28..fa98d57 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -3,6 +3,7 @@ # choices of *requirements.txt files for OpenStack Charms: # https://github.com/openstack-charmers/release-tools # +pyparsing<3.0.0 # cffi needs pyparsing < 3.0.0. 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 @@ -34,7 +35,7 @@ mock>=1.2; python_version >= '3.6' nose>=1.3.7 coverage>=3.6 -git+https://github.com/openstack/charms.openstack.git@stable/21.10#egg=charms.openstack +git+https://github.com/openstack/charms.openstack.git@stable/ussuri#egg=charms.openstack # # Revisit for removal / mock improvement: # diff --git a/tox.ini b/tox.ini index 22159df..e22fe48 100644 --- a/tox.ini +++ b/tox.ini @@ -37,11 +37,24 @@ setenv = VIRTUAL_ENV={envdir} passenv = http_proxy https_proxy INTERFACE_PATH LAYER_PATH JUJU_REPOSITORY install_command = {toxinidir}/pip.sh install {opts} {packages} +allowlist_externals = + charmcraft + bash + tox + rename.sh deps = -r{toxinidir}/requirements.txt [testenv:build] basepython = python3 +deps = -r{toxinidir}/build-requirements.txt +commands = + charmcraft clean + charmcraft -v build + {toxinidir}/rename.sh + +[testenv:build-reactive] +basepython = python3 commands = charm-build --log-level DEBUG --use-lock-file-branches -o {toxinidir}/build/builds src {posargs} @@ -55,32 +68,44 @@ basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} -[testenv:py35] -basepython = python3.5 -deps = -r{toxinidir}/test-requirements.txt -commands = stestr run --slowest {posargs} - [testenv:py36] basepython = python3.6 deps = -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} -[testenv:py37] -basepython = python3.7 -deps = -r{toxinidir}/test-requirements.txt -commands = stestr run --slowest {posargs} - [testenv:py38] 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:py310] +basepython = python3.10 +deps = -r{toxinidir}/test-requirements.txt +commands = stestr run --slowest {posargs} + [testenv:pep8] basepython = python3 deps = flake8==3.9.2 charm-tools==2.8.3 commands = flake8 {posargs} src unit_tests +[testenv:func-target] +# Hack to get functional tests working in the charmcraft +# world. We should fix this. +basepython = python3 +passenv = HOME TERM CS_* OS_* TEST_* +deps = -r{toxinidir}/src/test-requirements.txt +changedir = {toxinidir}/src +commands = + bash -c "if [ ! -f ../*.charm ]; then echo 'Charm does not exist. Run tox -e build'; exit 1; fi" + tox --version + tox -e func-target {posargs} + [testenv:cover] # Technique based heavily upon # https://github.com/openstack/nova/blob/master/tox.ini