From c69c5a626977b5f2fcfa52da200dc1938a54231f 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: I00b04030db38c78f0d69f3dbeb759842bbb57287 --- osci.yaml | 20 +- requirements.txt | 1 + src/tests/bundles/focal-yoga.yaml | 284 ++++++++++++++++++ .../{groovy-victoria.yaml => jammy-yoga.yaml} | 2 +- ...vy-victoria.yaml.j2 => focal-yoga.yaml.j2} | 0 src/tests/bundles/overlays/jammy-yoga.yaml.j2 | 1 + src/tests/tests.yaml | 22 +- test-requirements.txt | 2 + tox.ini | 5 + 9 files changed, 312 insertions(+), 25 deletions(-) create mode 100644 src/tests/bundles/focal-yoga.yaml rename src/tests/bundles/{groovy-victoria.yaml => jammy-yoga.yaml} (99%) rename src/tests/bundles/overlays/{groovy-victoria.yaml.j2 => focal-yoga.yaml.j2} (100%) create mode 120000 src/tests/bundles/overlays/jammy-yoga.yaml.j2 diff --git a/osci.yaml b/osci.yaml index a999d85..dc33540 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,19 +1,11 @@ - project: templates: - - charm-unit-jobs - check: - jobs: - - bionic-train - - bionic-ussuri - - focal-ussuri - - focal-victoria - - focal-wallaby - - focal-xena: - voting: false - - groovy-victoria - - hirsute-wallaby - - impish-xena: - voting: false + - charm-yoga-unit-jobs + - charm-yoga-functional-jobs + - charm-xena-functional-jobs + - charm-wallaby-functional-jobs + - charm-victoria-functional-jobs + - charm-ussuri-functional-jobs vars: needs_charm_build: true charm_build_name: neutron-api-plugin-ironic 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/tests/bundles/focal-yoga.yaml b/src/tests/bundles/focal-yoga.yaml new file mode 100644 index 0000000..c3cb54f --- /dev/null +++ b/src/tests/bundles/focal-yoga.yaml @@ -0,0 +1,284 @@ +options: + source: &source cloud:focal-yoga +series: focal +local_overlay_enabled: false +relations: +- - nova-ironic + - ironic-api +- - ironic-conductor + - ironic-api +- - neutron-ironic-agent:identity-credentials + - keystone +- - neutron-ironic-agent + - neutron-api +- - neutron-openvswitch + - neutron-api +- - ironic-api:amqp + - rabbitmq-server:amqp +- - ironic-api + - keystone +- - ironic-api:shared-db + - ironic-api-mysql-router:shared-db +- - ironic-conductor:amqp + - rabbitmq-server:amqp +- - ironic-conductor + - keystone +- - ironic-conductor:shared-db + - ironic-conductor-mysql-router:shared-db +- - nova-ironic:amqp + - rabbitmq-server:amqp +- - nova-ironic + - glance +- - nova-ironic + - keystone +- - nova-ironic + - nova-cloud-controller +- - neutron-gateway:amqp + - rabbitmq-server:amqp +- - keystone:shared-db + - keystone-mysql-router:shared-db +- - nova-cloud-controller:identity-service + - keystone:identity-service +- - glance:identity-service + - keystone:identity-service +- - neutron-api:identity-service + - keystone:identity-service +- - neutron-api:shared-db + - neutron-api-mysql-router:shared-db +- - 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:amqp + - rabbitmq-server:amqp +- - nova-cloud-controller:image-service + - glance:image-service +- - nova-cloud-controller:amqp + - rabbitmq-server:amqp +- - nova-cloud-controller:quantum-network-service + - neutron-gateway:quantum-network-service +- - nova-cloud-controller:shared-db + - nova-cloud-controller-mysql-router: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 + - cinder-mysql-router:shared-db +- - placement:shared-db + - placement-mysql-router:shared-db +- - placement + - keystone +- - placement + - nova-cloud-controller +- - ceph-mon:client + - nova-ironic:ceph +- - ceph-mon:client + - glance:ceph +- - ceph-radosgw:mon + - ceph-mon:radosgw +- - ceph-radosgw:identity-service + - keystone:identity-service +- - ceph-osd:mon + - ceph-mon:osd +- - ceph-radosgw:object-store + - glance +- - mysql-innodb-cluster:db-router + - nova-cloud-controller-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - keystone-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - glance-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - neutron-api-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - placement-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - cinder-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - ironic-api-mysql-router:db-router +- - mysql-innodb-cluster:db-router + - ironic-conductor-mysql-router:db-router +- - vault-mysql-router:db-router + - mysql-innodb-cluster:db-router +- - vault:shared-db + - vault-mysql-router:shared-db +- - vault:certificates + - ceph-radosgw +- - vault:certificates + - cinder +- - vault:certificates + - glance:certificates +- - vault:certificates + - keystone:certificates +- - vault:certificates + - neutron-api:certificates +- - vault:certificates + - nova-cloud-controller:certificates +- - vault:certificates + - placement:certificates +- - vault + - ironic-conductor +- - vault:certificates + - ironic-api:certificates +- - ironic-api + - hacluster-ironic +services: + nova-cloud-controller-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + cinder-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + ironic-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + ironic-conductor-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + mysql-innodb-cluster: + charm: cs:~openstack-charmers-next/mysql-innodb-cluster + num_units: 3 + constraints: mem=4G + options: + source: *source + cinder: + charm: cs:~openstack-charmers-next/cinder + num_units: 1 + constraints: mem=2G + options: + block-device: vdb + glance-api-version: 2 + openstack-origin: *source + worker-multiplier: 0.25 + storage: + block-devices: cinder,50G + ceph-radosgw: + charm: cs:~openstack-charmers-next/ceph-radosgw + num_units: 1 + constraints: mem=2G + options: + source: *source + namespace-tenants: True + ceph-mon: + charm: cs:~openstack-charmers-next/ceph-mon + num_units: 3 + constraints: mem=2G + options: + expected-osd-count: 3 + source: *source + ceph-osd: + charm: cs:~openstack-charmers-next/ceph-osd + num_units: 3 + constraints: mem=2G + options: + source: *source + storage: + osd-devices: 'cinder,30G' + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + constraints: mem=2G + options: + openstack-origin: *source + worker-multiplier: 0.25 + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + constraints: mem=2G + options: + openstack-origin: *source + worker-multiplier: 0.25 + neutron-api: + charm: cs:~openstack-charmers-next/neutron-api + num_units: 1 + constraints: mem=2G + options: + flat-network-providers: "physnet1" + neutron-security-groups: true + openstack-origin: *source + manage-neutron-plugin-legacy-mode: false + worker-multiplier: 0.25 + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + constraints: mem=2G + options: + openstack-origin: *source + enable-isolated-metadata: true + enable-metadata-network: true + bridge-mappings: physnet1:br-ex + nova-cloud-controller: + charm: cs:~openstack-charmers-next/nova-cloud-controller + num_units: 1 + constraints: mem=2G + options: + network-manager: Neutron + openstack-origin: *source + worker-multiplier: 0.25 + nova-ironic: + charm: cs:~openstack-charmers-next/nova-compute + num_units: 1 + constraints: mem=2G + options: + enable-live-migration: false + enable-resize: false + openstack-origin: *source + virt-type: ironic + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + constraints: mem=2G + options: + openstack-origin: *source + worker-multiplier: 0.25 + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + constraints: mem=2G + hacluster-ironic: + charm: cs:~openstack-charmers-next/hacluster + num_units: 0 + ironic-api: + charm: cs:~openstack-charmers-next/ironic-api + num_units: 3 + constraints: mem=2G + options: + openstack-origin: *source + ironic-conductor: + charm: cs:~openstack-charmers-next/ironic-conductor + num_units: 1 + constraints: mem=2G + options: + openstack-origin: *source + max-tftp-block-size: 1418 + disable-secure-erase: true + use-ipxe: true + enabled-network-interfaces: "flat, noop" + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + num_units: 0 + options: + bridge-mappings: physnet1:br-ex + neutron-ironic-agent: + charm: ../../../neutron-api-plugin-ironic + num_units: 0 + options: + openstack-origin: *source + vault: + charm: cs:~openstack-charmers-next/vault + num_units: 1 diff --git a/src/tests/bundles/groovy-victoria.yaml b/src/tests/bundles/jammy-yoga.yaml similarity index 99% rename from src/tests/bundles/groovy-victoria.yaml rename to src/tests/bundles/jammy-yoga.yaml index 4af3424..55facdd 100644 --- a/src/tests/bundles/groovy-victoria.yaml +++ b/src/tests/bundles/jammy-yoga.yaml @@ -1,6 +1,6 @@ options: source: &source distro -series: groovy +series: jammy local_overlay_enabled: false relations: - - nova-ironic diff --git a/src/tests/bundles/overlays/groovy-victoria.yaml.j2 b/src/tests/bundles/overlays/focal-yoga.yaml.j2 similarity index 100% rename from src/tests/bundles/overlays/groovy-victoria.yaml.j2 rename to src/tests/bundles/overlays/focal-yoga.yaml.j2 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..f07f22d --- /dev/null +++ b/src/tests/bundles/overlays/jammy-yoga.yaml.j2 @@ -0,0 +1 @@ +ironic.j2 \ No newline at end of file diff --git a/src/tests/tests.yaml b/src/tests/tests.yaml index f161745..978f0f8 100644 --- a/src/tests/tests.yaml +++ b/src/tests/tests.yaml @@ -4,20 +4,21 @@ charm_name: ironic-api gate_bundles: -- focal-xena -- focal-wallaby -- focal-victoria -- focal-ussuri -- bionic-train - bionic-ussuri +- focal-ussuri +- focal-victoria +- focal-wallaby +- focal-xena - hirsute-wallaby - -dev_bundles: -- groovy-victoria - impish-xena +dev_bundles: +- bionic-train +- focal-yoga +- jammy-yoga + smoke_bundles: -- bionic-ussuri +- focal-ussuri target_deploy_status: vault: @@ -48,5 +49,6 @@ tests: tests_options: force_deploy: - - groovy-victoria + - 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