diff --git a/.gitignore b/.gitignore index b5db5c04..99fe114f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ bin tags *.sw[nop] *.pyc +*.charm .unit-state.db .pydevproject func-results.json diff --git a/build-requirements.txt b/build-requirements.txt new file mode 100644 index 00000000..b6d2452f --- /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 00000000..1974db4d --- /dev/null +++ b/charmcraft.yaml @@ -0,0 +1,27 @@ +type: charm + +parts: + charm: + plugin: dump + source: . + prime: + - actions/* + - charmhelpers/* + - files/* + - hooks/* + - lib/* + - templates/* + - actions.yaml + - config.yaml + - copyright + - icon.svg + - LICENSE + - Makefile + - metadata.yaml + - README.md + +bases: + - name: ubuntu + channel: "20.04" + architectures: + - amd64 diff --git a/metadata.yaml b/metadata.yaml index bfe8fb4d..5a6b8e27 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -17,10 +17,7 @@ description: | tags: - openstack series: -- bionic - focal -- groovy -- hirsute - impish extra-bindings: data: diff --git a/osci.yaml b/osci.yaml index fcbb9f1e..45814ba2 100644 --- a/osci.yaml +++ b/osci.yaml @@ -1,103 +1,51 @@ - project: templates: - - charm-yoga-unit-jobs + - charm-unit-jobs-py38 + - charm-unit-jobs-py39 check: jobs: - - bionic-queens-dvr-snat - - bionic-stein-dvr-snat - - bionic-train-dvr-snat - - bionic-ussuri-dvr-snat - - migrate-ovn-focal-ussuri-dvr-snat - - migrate-ovn-focal-victoria-dvr-snat # migrate-ovn tests fail on wallaby and above due to: # https://bugs.launchpad.net/charm-neutron-openvswitch/+bug/1951856 - - migrate-ovn-focal-wallaby-dvr-snat: - voting: false - - migrate-ovn-focal-xena-dvr-snat: + - migrate-ovn-focal-xena-dvr-snat + - migrate-ovn-impish-xena-dvr-snat: voting: false - migrate-ovn-focal-yoga-dvr-snat: voting: false - - migrate-ovn-hirsute-wallaby-dvr-snat: - voting: false - - migrate-ovn-impish-xena-dvr-snat: - voting: false - migrate-ovn-jammy-yoga-dvr-snat: voting: false + vars: + needs_charm_build: true + charm_build_name: neutron-openvswitch + build_type: charmcraft -- job: - name: bionic-queens-dvr-snat - parent: func-target - dependencies: &smoke-jobs - - migrate-ovn-focal-ussuri-dvr-snat - vars: - tox_extra_args: bionic-queens-dvr-snat -- job: - name: bionic-stein-dvr-snat - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: bionic-stein-dvr-snat -- job: - name: bionic-train-dvr-snat - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: bionic-train-dvr-snat -- job: - name: bionic-ussuri-dvr-snat - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: bionic-ussuri-dvr-snat -- job: - name: migrate-ovn-focal-ussuri-dvr-snat - parent: func-target - dependencies: - - osci-lint - - tox-py36 - - tox-py38 - - tox-py39 - vars: - tox_extra_args: migrate-ovn:focal-ussuri-dvr-snat -- job: - name: migrate-ovn-focal-victoria-dvr-snat - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: migrate-ovn:focal-victoria-dvr-snat -- job: - name: migrate-ovn-focal-wallaby-dvr-snat - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: migrate-ovn:focal-wallaby-dvr-snat - job: name: migrate-ovn-focal-xena-dvr-snat parent: func-target - dependencies: *smoke-jobs + dependencies: + - charm-build + - osci-lint + - tox-py38 + - tox-py39 vars: tox_extra_args: migrate-ovn:focal-xena-dvr-snat - job: name: migrate-ovn-focal-yoga-dvr-snat parent: func-target - dependencies: *smoke-jobs + dependencies: + - migrate-ovn-focal-xena-dvr-snat vars: tox_extra_args: migrate-ovn:focal-yoga-dvr-snat -- job: - name: migrate-ovn-hirsute-wallaby-dvr-snat - parent: func-target - dependencies: *smoke-jobs - vars: - tox_extra_args: migrate-ovn:hirsute-wallaby-dvr-snat - job: name: migrate-ovn-impish-xena-dvr-snat parent: func-target - dependencies: *smoke-jobs + dependencies: + - migrate-ovn-focal-xena-dvr-snat vars: tox_extra_args: migrate-ovn:impish-xena-dvr-snat - job: name: migrate-ovn-jammy-yoga-dvr-snat parent: func-target - dependencies: *smoke-jobs + dependencies: + - migrate-ovn-focal-xena-dvr-snat vars: tox_extra_args: migrate-ovn:jammy-yoga-dvr-snat diff --git a/rename.sh b/rename.sh new file mode 100755 index 00000000..d0c35c97 --- /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/tests/README.md b/tests/README.md index 856c4f90..5c99a280 100644 --- a/tests/README.md +++ b/tests/README.md @@ -5,5 +5,5 @@ from the perspective of this charm, its requirements and its features, as exercised in a subset of the full OpenStack deployment test bundle topology. For full details on functional testing of OpenStack charms please refer to -the [functional testing](http://docs.openstack.org/developer/charm-guide/testing.html#functional-testing) +the [functional testing](https://docs.openstack.org/charm-guide/latest/reference/testing.html#functional-testing) section of the OpenStack Charm Guide. diff --git a/tests/bundles/bionic-queens-dvr-snat.yaml b/tests/bundles/bionic-queens-dvr-snat.yaml deleted file mode 100644 index de92d58d..00000000 --- a/tests/bundles/bionic-queens-dvr-snat.yaml +++ /dev/null @@ -1,125 +0,0 @@ -variables: - openstack-origin: &openstack-origin distro - -series: &series bionic - -machines: - 0: - constraints: "mem=3072M" - 1: {} - 2: {} - 3: {} - 4: {} - 5: {} - 6: - constraints: "root-disk=20G mem=4G" - 7: - constraints: "root-disk=20G mem=4G" - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - percona-cluster: - charm: cs:~openstack-charmers-next/percona-cluster - num_units: 1 - options: - source: *openstack-origin - to: - - '0' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '1' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '2' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '5' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '6' - - '7' -relations: - - - 'neutron-api:shared-db' - - 'percona-cluster:shared-db' - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'keystone:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:shared-db' - - 'percona-cluster:shared-db' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' diff --git a/tests/bundles/bionic-rocky-dvr-snat.yaml b/tests/bundles/bionic-rocky-dvr-snat.yaml deleted file mode 100644 index 87b82183..00000000 --- a/tests/bundles/bionic-rocky-dvr-snat.yaml +++ /dev/null @@ -1,125 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:bionic-rocky - -series: &series bionic - -machines: - 0: - constraints: "mem=3072M" - 1: {} - 2: {} - 3: {} - 4: {} - 5: {} - 6: - constraints: "root-disk=20G mem=4G" - 7: - constraints: "root-disk=20G mem=4G" - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - percona-cluster: - charm: cs:~openstack-charmers-next/percona-cluster - num_units: 1 - options: - source: *openstack-origin - to: - - '0' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '1' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '2' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '5' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '6' - - '7' -relations: - - - 'neutron-api:shared-db' - - 'percona-cluster:shared-db' - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'keystone:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:shared-db' - - 'percona-cluster:shared-db' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' diff --git a/tests/bundles/bionic-stein-dvr-snat.yaml b/tests/bundles/bionic-stein-dvr-snat.yaml deleted file mode 100644 index c042cc8e..00000000 --- a/tests/bundles/bionic-stein-dvr-snat.yaml +++ /dev/null @@ -1,125 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:bionic-stein - -series: &series bionic - -machines: - 0: - constraints: "mem=3072M" - 1: {} - 2: {} - 3: {} - 4: {} - 5: {} - 6: - constraints: "root-disk=20G mem=4G" - 7: - constraints: "root-disk=20G mem=4G" - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - percona-cluster: - charm: cs:~openstack-charmers-next/percona-cluster - num_units: 1 - options: - source: *openstack-origin - to: - - '0' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '1' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '2' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '5' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '6' - - '7' -relations: - - - 'neutron-api:shared-db' - - 'percona-cluster:shared-db' - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'keystone:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:shared-db' - - 'percona-cluster:shared-db' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' diff --git a/tests/bundles/bionic-train-dvr-snat.yaml b/tests/bundles/bionic-train-dvr-snat.yaml deleted file mode 100644 index 916b9eb7..00000000 --- a/tests/bundles/bionic-train-dvr-snat.yaml +++ /dev/null @@ -1,139 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:bionic-train - -series: &series bionic - -machines: - 0: - constraints: "mem=3072M" - 1: {} - 2: {} - 3: {} - 4: {} - 5: {} - 6: - constraints: "root-disk=20G mem=4G" - 7: - constraints: "root-disk=20G mem=4G" - 8: {} - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - percona-cluster: - charm: cs:~openstack-charmers-next/percona-cluster - num_units: 1 - options: - source: *openstack-origin - to: - - '0' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '1' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '2' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '5' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '6' - - '7' - placement: - charm: cs:~openstack-charmers-next/placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '8' -relations: - - - 'neutron-api:shared-db' - - 'percona-cluster:shared-db' - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'keystone:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:shared-db' - - 'percona-cluster:shared-db' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - 'placement:shared-db' - - 'percona-cluster:shared-db' - - - 'placement:identity-service' - - 'keystone:identity-service' - - - 'placement:placement' - - 'nova-cloud-controller:placement' diff --git a/tests/bundles/bionic-ussuri-dvr-snat.yaml b/tests/bundles/bionic-ussuri-dvr-snat.yaml deleted file mode 100644 index 8ad171d4..00000000 --- a/tests/bundles/bionic-ussuri-dvr-snat.yaml +++ /dev/null @@ -1,140 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:bionic-ussuri - -series: &series bionic - -machines: - 0: - constraints: "mem=3072M" - 1: {} - 2: {} - 3: {} - 4: {} - 5: {} - 6: - constraints: "root-disk=20G mem=4G" - 7: - constraints: "root-disk=20G mem=4G" - 8: {} - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - percona-cluster: - charm: cs:~openstack-charmers-next/percona-cluster - num_units: 1 - options: - source: *openstack-origin - to: - - '0' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '1' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '2' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '3' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '4' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '5' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '6' - - '7' - placement: - charm: cs:~openstack-charmers-next/placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '8' -relations: - - - 'neutron-api:shared-db' - - 'percona-cluster:shared-db' - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'keystone:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:shared-db' - - 'percona-cluster:shared-db' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:shared-db' - - 'percona-cluster:shared-db' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - 'placement:shared-db' - - 'percona-cluster:shared-db' - - - 'placement:identity-service' - - 'keystone:identity-service' - - - 'placement:placement' - - 'nova-cloud-controller:placement' diff --git a/tests/bundles/focal-ussuri-dvr-snat.yaml b/tests/bundles/focal-ussuri-dvr-snat.yaml deleted file mode 100644 index 2577db63..00000000 --- a/tests/bundles/focal-ussuri-dvr-snat.yaml +++ /dev/null @@ -1,204 +0,0 @@ -variables: - openstack-origin: &openstack-origin distro - -series: &series focal - -machines: - 0: - constraints: "mem=3072M" - 1: - constraints: "mem=3072M" - 2: - constraints: "mem=3072M" - 3: {} - 4: {} - 5: {} - 6: {} - 7: {} - 8: - constraints: "root-disk=20G mem=4G" - 9: - constraints: "root-disk=20G mem=4G" - 10: {} - 11: {} - 12: {} - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - neutron-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 - mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '3' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '4' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '8' - - '9' - placement: - charm: cs:~openstack-charmers-next/placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - vault: - charm: cs:~openstack-charmers-next/vault - num_units: 1 - to: - - '11' - ovn-central: - charm: cs:~openstack-charmers-next/ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn - ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis - options: - # start new units paused to allow unit by unit OVS to OVN migration - new-units-paused: true -relations: - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - 'placement:identity-service' - - 'keystone:identity-service' - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - # We need to defer the addition of the neutron-api-plugin-ovn subordinate - # relation to the functional test as the test will first validate the legacy - # Neutron ML2+OVS topology, migrate it to OVN and then confirm connectivity - # post migration. - # - # - - neutron-api-plugin-ovn:neutron-plugin - # - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:shared-db - - vault-mysql-router:shared-db - - - vault-mysql-router:db-router - - mysql-innodb-cluster:db-router diff --git a/tests/bundles/focal-victoria-dvr-snat.yaml b/tests/bundles/focal-victoria-dvr-snat.yaml deleted file mode 100644 index fc3f3ae9..00000000 --- a/tests/bundles/focal-victoria-dvr-snat.yaml +++ /dev/null @@ -1,204 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:focal-victoria - -series: &series focal - -machines: - 0: - constraints: "mem=3072M" - 1: - constraints: "mem=3072M" - 2: - constraints: "mem=3072M" - 3: {} - 4: {} - 5: {} - 6: {} - 7: {} - 8: - constraints: "root-disk=20G mem=4G" - 9: - constraints: "root-disk=20G mem=4G" - 10: {} - 11: {} - 12: {} - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - neutron-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 - mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '3' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '4' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '8' - - '9' - placement: - charm: cs:~openstack-charmers-next/placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - vault: - charm: cs:~openstack-charmers-next/vault - num_units: 1 - to: - - '11' - ovn-central: - charm: cs:~openstack-charmers-next/ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn - ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis - options: - # start new units paused to allow unit by unit OVS to OVN migration - new-units-paused: true -relations: - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - 'placement:identity-service' - - 'keystone:identity-service' - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - # We need to defer the addition of the neutron-api-plugin-ovn subordinate - # relation to the functional test as the test will first validate the legacy - # Neutron ML2+OVS topology, migrate it to OVN and then confirm connectivity - # post migration. - # - # - - neutron-api-plugin-ovn:neutron-plugin - # - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:shared-db - - vault-mysql-router:shared-db - - - vault-mysql-router:db-router - - mysql-innodb-cluster:db-router diff --git a/tests/bundles/focal-wallaby-dvr-snat.yaml b/tests/bundles/focal-wallaby-dvr-snat.yaml deleted file mode 100644 index 644fb8e6..00000000 --- a/tests/bundles/focal-wallaby-dvr-snat.yaml +++ /dev/null @@ -1,204 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:focal-wallaby - -series: &series focal - -machines: - 0: - constraints: "mem=3072M" - 1: - constraints: "mem=3072M" - 2: - constraints: "mem=3072M" - 3: {} - 4: {} - 5: {} - 6: {} - 7: {} - 8: - constraints: "root-disk=20G mem=4G" - 9: - constraints: "root-disk=20G mem=4G" - 10: {} - 11: {} - 12: {} - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - neutron-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 - mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '3' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '4' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '8' - - '9' - placement: - charm: cs:~openstack-charmers-next/placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - vault: - charm: cs:~openstack-charmers-next/vault - num_units: 1 - to: - - '11' - ovn-central: - charm: cs:~openstack-charmers-next/ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn - ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis - options: - # start new units paused to allow unit by unit OVS to OVN migration - new-units-paused: true -relations: - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - 'placement:identity-service' - - 'keystone:identity-service' - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - # We need to defer the addition of the neutron-api-plugin-ovn subordinate - # relation to the functional test as the test will first validate the legacy - # Neutron ML2+OVS topology, migrate it to OVN and then confirm connectivity - # post migration. - # - # - - neutron-api-plugin-ovn:neutron-plugin - # - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:shared-db - - vault-mysql-router:shared-db - - - vault-mysql-router:db-router - - mysql-innodb-cluster:db-router diff --git a/tests/bundles/focal-xena-dvr-snat.yaml b/tests/bundles/focal-xena-dvr-snat.yaml index f6479a33..76c0f87a 100644 --- a/tests/bundles/focal-xena-dvr-snat.yaml +++ b/tests/bundles/focal-xena-dvr-snat.yaml @@ -27,19 +27,25 @@ machines: # time, given that machine "0" comes up way before machine "7" applications: keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge neutron-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge placement-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster + charm: ch:mysql-innodb-cluster num_units: 3 options: source: *openstack-origin @@ -47,15 +53,17 @@ applications: - '0' - '1' - '2' + channel: latest/edge rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server + charm: ch:rabbitmq-server num_units: 1 options: source: *openstack-origin to: - '3' + channel: latest/edge neutron-api: - charm: cs:~openstack-charmers-next/neutron-api + charm: ch:neutron-api series: *series num_units: 1 options: @@ -68,36 +76,40 @@ applications: enable-dvr: True to: - '4' + channel: yoga/edge keystone: - charm: cs:~openstack-charmers-next/keystone + charm: ch:keystone num_units: 1 options: openstack-origin: *openstack-origin to: - '5' + channel: yoga/edge glance: - charm: cs:~openstack-charmers-next/glance + charm: ch:glance num_units: 1 options: openstack-origin: *openstack-origin to: - '6' + channel: yoga/edge neutron-openvswitch: - charm: ../../../neutron-openvswitch + charm: ../../neutron-openvswitch.charm options: use-dvr-snat: True bridge-mappings: physnet1:br-ex enable-local-dhcp-and-metadata: True nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller + charm: ch:nova-cloud-controller num_units: 1 options: network-manager: Neutron openstack-origin: *openstack-origin to: - '7' + channel: yoga/edge nova-compute: - charm: cs:~openstack-charmers-next/nova-compute + charm: ch:nova-compute num_units: 2 options: config-flags: default_ephemeral_format=ext4 @@ -108,34 +120,41 @@ applications: to: - '8' - '9' + channel: yoga/edge placement: - charm: cs:~openstack-charmers-next/placement + charm: ch:placement num_units: 1 options: openstack-origin: *openstack-origin to: - '10' + channel: yoga/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault: - charm: cs:~openstack-charmers-next/vault + charm: ch:vault num_units: 1 to: - '11' + channel: latest/edge ovn-central: - charm: cs:~openstack-charmers-next/ovn-central + charm: ch:ovn-central num_units: 3 options: source: *openstack-origin to: - '12' + channel: latest/edge neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn + charm: ch:neutron-api-plugin-ovn + channel: yoga/edge ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis + charm: ch:ovn-chassis options: # start new units paused to allow unit by unit OVS to OVN migration new-units-paused: true + channel: latest/edge relations: - - 'neutron-api:amqp' - 'rabbitmq-server:amqp' diff --git a/tests/bundles/focal-yoga-dvr-snat.yaml b/tests/bundles/focal-yoga-dvr-snat.yaml index b38ab7c4..c076f1e0 100644 --- a/tests/bundles/focal-yoga-dvr-snat.yaml +++ b/tests/bundles/focal-yoga-dvr-snat.yaml @@ -27,19 +27,25 @@ machines: # time, given that machine "0" comes up way before machine "7" applications: keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge neutron-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge placement-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster + charm: ch:mysql-innodb-cluster num_units: 3 options: source: *openstack-origin @@ -47,15 +53,17 @@ applications: - '0' - '1' - '2' + channel: latest/edge rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server + charm: ch:rabbitmq-server num_units: 1 options: source: *openstack-origin to: - '3' + channel: latest/edge neutron-api: - charm: cs:~openstack-charmers-next/neutron-api + charm: ch:neutron-api series: *series num_units: 1 options: @@ -68,36 +76,40 @@ applications: enable-dvr: True to: - '4' + channel: yoga/edge keystone: - charm: cs:~openstack-charmers-next/keystone + charm: ch:keystone num_units: 1 options: openstack-origin: *openstack-origin to: - '5' + channel: yoga/edge glance: - charm: cs:~openstack-charmers-next/glance + charm: ch:glance num_units: 1 options: openstack-origin: *openstack-origin to: - '6' + channel: yoga/edge neutron-openvswitch: - charm: ../../../neutron-openvswitch + charm: ../../neutron-openvswitch.charm options: use-dvr-snat: True bridge-mappings: physnet1:br-ex enable-local-dhcp-and-metadata: True nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller + charm: ch:nova-cloud-controller num_units: 1 options: network-manager: Neutron openstack-origin: *openstack-origin to: - '7' + channel: yoga/edge nova-compute: - charm: cs:~openstack-charmers-next/nova-compute + charm: ch:nova-compute num_units: 2 options: config-flags: default_ephemeral_format=ext4 @@ -108,34 +120,41 @@ applications: to: - '8' - '9' + channel: yoga/edge placement: - charm: cs:~openstack-charmers-next/placement + charm: ch:placement num_units: 1 options: openstack-origin: *openstack-origin to: - '10' + channel: yoga/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault: - charm: cs:~openstack-charmers-next/vault + charm: ch:vault num_units: 1 to: - '11' + channel: latest/edge ovn-central: - charm: cs:~openstack-charmers-next/ovn-central + charm: ch:ovn-central num_units: 3 options: source: *openstack-origin to: - '12' + channel: latest/edge neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn + charm: ch:neutron-api-plugin-ovn + channel: yoga/edge ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis + charm: ch:ovn-chassis options: # start new units paused to allow unit by unit OVS to OVN migration new-units-paused: true + channel: latest/edge relations: - - 'neutron-api:amqp' - 'rabbitmq-server:amqp' diff --git a/tests/bundles/hirsute-wallaby-dvr-snat.yaml b/tests/bundles/hirsute-wallaby-dvr-snat.yaml deleted file mode 100644 index 060b7faa..00000000 --- a/tests/bundles/hirsute-wallaby-dvr-snat.yaml +++ /dev/null @@ -1,204 +0,0 @@ -variables: - openstack-origin: &openstack-origin distro - -series: &series hirsute - -machines: - 0: - constraints: "mem=3072M" - 1: - constraints: "mem=3072M" - 2: - constraints: "mem=3072M" - 3: {} - 4: {} - 5: {} - 6: {} - 7: {} - 8: - constraints: "root-disk=20G mem=4G" - 9: - constraints: "root-disk=20G mem=4G" - 10: {} - 11: {} - 12: {} - -# We specify machine placements for these to improve iteration -# time, given that machine "0" comes up way before machine "7" -applications: - keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - neutron-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 - mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server - num_units: 1 - options: - source: *openstack-origin - to: - - '3' - neutron-api: - charm: cs:~openstack-charmers-next/neutron-api - series: *series - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - overlay-network-type: 'vxlan' - l2-population: True - flat-network-providers: physnet1 - neutron-security-groups: true - openstack-origin: *openstack-origin - enable-dvr: True - to: - - '4' - keystone: - charm: cs:~openstack-charmers-next/keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - glance: - charm: cs:~openstack-charmers-next/glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - neutron-openvswitch: - charm: ../../../neutron-openvswitch - options: - use-dvr-snat: True - bridge-mappings: physnet1:br-ex - enable-local-dhcp-and-metadata: True - nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - nova-compute: - charm: cs:~openstack-charmers-next/nova-compute - num_units: 2 - options: - config-flags: default_ephemeral_format=ext4 - enable-live-migration: true - enable-resize: true - migration-auth-type: ssh - openstack-origin: *openstack-origin - to: - - '8' - - '9' - placement: - charm: cs:~openstack-charmers-next/placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router - vault: - charm: cs:~openstack-charmers-next/vault - num_units: 1 - to: - - '11' - ovn-central: - charm: cs:~openstack-charmers-next/ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn - ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis - options: - # start new units paused to allow unit by unit OVS to OVN migration - new-units-paused: true -relations: - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - 'neutron-api:neutron-plugin-api' - - 'neutron-openvswitch:neutron-plugin-api' - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - 'neutron-openvswitch:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - 'glance:identity-service' - - 'keystone:identity-service' - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - 'nova-compute:image-service' - - 'glance:image-service' - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - 'placement:identity-service' - - 'keystone:identity-service' - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - ["keystone:shared-db", "keystone-mysql-router:shared-db"] - - ["glance:shared-db", "glance-mysql-router:shared-db"] - - ["nova-cloud-controller:shared-db", "nova-mysql-router:shared-db"] - - ["neutron-api:shared-db", "neutron-mysql-router:shared-db"] - - ["placement:shared-db", "placement-mysql-router:shared-db"] - - ["keystone-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["nova-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["glance-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["neutron-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - - ["placement-mysql-router:db-router", "mysql-innodb-cluster:db-router"] - # We need to defer the addition of the neutron-api-plugin-ovn subordinate - # relation to the functional test as the test will first validate the legacy - # Neutron ML2+OVS topology, migrate it to OVN and then confirm connectivity - # post migration. - # - # - - neutron-api-plugin-ovn:neutron-plugin - # - neutron-api:neutron-plugin-api-subordinate - - - ovn-central:certificates - - vault:certificates - - - ovn-central:ovsdb-cms - - neutron-api-plugin-ovn:ovsdb-cms - - - ovn-chassis:nova-compute - - nova-compute:neutron-plugin - - - ovn-chassis:certificates - - vault:certificates - - - ovn-chassis:ovsdb - - ovn-central:ovsdb - - - vault:certificates - - neutron-api-plugin-ovn:certificates - - - vault:shared-db - - vault-mysql-router:shared-db - - - vault-mysql-router:db-router - - mysql-innodb-cluster:db-router diff --git a/tests/bundles/impish-xena-dvr-snat.yaml b/tests/bundles/impish-xena-dvr-snat.yaml index 6a625809..8ef5b3f0 100644 --- a/tests/bundles/impish-xena-dvr-snat.yaml +++ b/tests/bundles/impish-xena-dvr-snat.yaml @@ -27,19 +27,25 @@ machines: # time, given that machine "0" comes up way before machine "7" applications: keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge neutron-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge placement-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster + charm: ch:mysql-innodb-cluster num_units: 3 options: source: *openstack-origin @@ -47,15 +53,17 @@ applications: - '0' - '1' - '2' + channel: latest/edge rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server + charm: ch:rabbitmq-server num_units: 1 options: source: *openstack-origin to: - '3' + channel: latest/edge neutron-api: - charm: cs:~openstack-charmers-next/neutron-api + charm: ch:neutron-api series: *series num_units: 1 options: @@ -68,36 +76,40 @@ applications: enable-dvr: True to: - '4' + channel: yoga/edge keystone: - charm: cs:~openstack-charmers-next/keystone + charm: ch:keystone num_units: 1 options: openstack-origin: *openstack-origin to: - '5' + channel: yoga/edge glance: - charm: cs:~openstack-charmers-next/glance + charm: ch:glance num_units: 1 options: openstack-origin: *openstack-origin to: - '6' + channel: yoga/edge neutron-openvswitch: - charm: ../../../neutron-openvswitch + charm: ../../neutron-openvswitch.charm options: use-dvr-snat: True bridge-mappings: physnet1:br-ex enable-local-dhcp-and-metadata: True nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller + charm: ch:nova-cloud-controller num_units: 1 options: network-manager: Neutron openstack-origin: *openstack-origin to: - '7' + channel: yoga/edge nova-compute: - charm: cs:~openstack-charmers-next/nova-compute + charm: ch:nova-compute num_units: 2 options: config-flags: default_ephemeral_format=ext4 @@ -108,34 +120,41 @@ applications: to: - '8' - '9' + channel: yoga/edge placement: - charm: cs:~openstack-charmers-next/placement + charm: ch:placement num_units: 1 options: openstack-origin: *openstack-origin to: - '10' + channel: yoga/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault: - charm: cs:~openstack-charmers-next/vault + charm: ch:vault num_units: 1 to: - '11' + channel: latest/edge ovn-central: - charm: cs:~openstack-charmers-next/ovn-central + charm: ch:ovn-central num_units: 3 options: source: *openstack-origin to: - '12' + channel: latest/edge neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn + charm: ch:neutron-api-plugin-ovn + channel: yoga/edge ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis + charm: ch:ovn-chassis options: # start new units paused to allow unit by unit OVS to OVN migration new-units-paused: true + channel: latest/edge relations: - - 'neutron-api:amqp' - 'rabbitmq-server:amqp' diff --git a/tests/bundles/jammy-yoga-dvr-snat.yaml b/tests/bundles/jammy-yoga-dvr-snat.yaml index 2b2a641d..7231ffd6 100644 --- a/tests/bundles/jammy-yoga-dvr-snat.yaml +++ b/tests/bundles/jammy-yoga-dvr-snat.yaml @@ -27,19 +27,25 @@ machines: # time, given that machine "0" comes up way before machine "7" applications: keystone-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge nova-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge glance-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge neutron-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge placement-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge mysql-innodb-cluster: - charm: cs:~openstack-charmers-next/mysql-innodb-cluster + charm: ch:mysql-innodb-cluster num_units: 3 options: source: *openstack-origin @@ -47,15 +53,17 @@ applications: - '0' - '1' - '2' + channel: latest/edge rabbitmq-server: - charm: cs:~openstack-charmers-next/rabbitmq-server + charm: ch:rabbitmq-server num_units: 1 options: source: *openstack-origin to: - '3' + channel: latest/edge neutron-api: - charm: cs:~openstack-charmers-next/neutron-api + charm: ch:neutron-api series: *series num_units: 1 options: @@ -68,36 +76,40 @@ applications: enable-dvr: True to: - '4' + channel: yoga/edge keystone: - charm: cs:~openstack-charmers-next/keystone + charm: ch:keystone num_units: 1 options: openstack-origin: *openstack-origin to: - '5' + channel: yoga/edge glance: - charm: cs:~openstack-charmers-next/glance + charm: ch:glance num_units: 1 options: openstack-origin: *openstack-origin to: - '6' + channel: yoga/edge neutron-openvswitch: - charm: ../../../neutron-openvswitch + charm: ../../neutron-openvswitch.charm options: use-dvr-snat: True bridge-mappings: physnet1:br-ex enable-local-dhcp-and-metadata: True nova-cloud-controller: - charm: cs:~openstack-charmers-next/nova-cloud-controller + charm: ch:nova-cloud-controller num_units: 1 options: network-manager: Neutron openstack-origin: *openstack-origin to: - '7' + channel: yoga/edge nova-compute: - charm: cs:~openstack-charmers-next/nova-compute + charm: ch:nova-compute num_units: 2 options: config-flags: default_ephemeral_format=ext4 @@ -108,34 +120,41 @@ applications: to: - '8' - '9' + channel: yoga/edge placement: - charm: cs:~openstack-charmers-next/placement + charm: ch:placement num_units: 1 options: openstack-origin: *openstack-origin to: - '10' + channel: yoga/edge vault-mysql-router: - charm: cs:~openstack-charmers-next/mysql-router + charm: ch:mysql-router + channel: latest/edge vault: - charm: cs:~openstack-charmers-next/vault + charm: ch:vault num_units: 1 to: - '11' + channel: latest/edge ovn-central: - charm: cs:~openstack-charmers-next/ovn-central + charm: ch:ovn-central num_units: 3 options: source: *openstack-origin to: - '12' + channel: latest/edge neutron-api-plugin-ovn: - charm: cs:~openstack-charmers-next/neutron-api-plugin-ovn + charm: ch:neutron-api-plugin-ovn + channel: yoga/edge ovn-chassis: - charm: cs:~openstack-charmers-next/ovn-chassis + charm: ch:ovn-chassis options: # start new units paused to allow unit by unit OVS to OVN migration new-units-paused: true + channel: latest/edge relations: - - 'neutron-api:amqp' - 'rabbitmq-server:amqp' diff --git a/tests/tests.yaml b/tests/tests.yaml index d9c7d49e..323b78e9 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -6,22 +6,13 @@ charm_name: neutron-openvswitch # OVS to OVN. smoke_bundles: - - migrate-ovn: focal-ussuri-dvr-snat + - migrate-ovn: focal-xena-dvr-snat gate_bundles: - - bionic-queens-dvr-snat - - bionic-stein-dvr-snat - - bionic-ussuri-dvr-snat - - migrate-ovn: focal-ussuri-dvr-snat - - migrate-ovn: focal-victoria-dvr-snat - - migrate-ovn: focal-wallaby-dvr-snat - migrate-ovn: focal-xena-dvr-snat - - migrate-ovn: hirsute-wallaby-dvr-snat - migrate-ovn: impish-xena-dvr-snat dev_bundles: - - bionic-rocky-dvr-snat - - bionic-train-dvr-snat - migrate-ovn: focal-yoga-dvr-snat - migrate-ovn: jammy-yoga-dvr-snat @@ -77,6 +68,5 @@ tests_options: # allows verifying instances survive a SDN migration. zaza.openstack.charm_tests.neutron.tests.NeutronNetworkingTest.test_instances_have_networking.run_resource_cleanup: false force_deploy: - - hirsute-wallaby-dvr-snat - impish-xena-dvr-snat - jammy-yoga-dvr-snat diff --git a/tox.ini b/tox.ini index 86d1e904..81fd2492 100644 --- a/tox.ini +++ b/tox.ini @@ -37,10 +37,20 @@ setenv = VIRTUAL_ENV={envdir} install_command = {toxinidir}/pip.sh install {opts} {packages} commands = stestr run --slowest {posargs} -allowlist_externals = juju +allowlist_externals = + charmcraft + rename.sh passenv = HOME TERM CS_* OS_* TEST_* deps = -r{toxinidir}/test-requirements.txt +[testenv:build] +basepython = python3 +deps = -r{toxinidir}/build-requirements.txt +commands = + charmcraft clean + charmcraft -v build + {toxinidir}/rename.sh + [testenv:py35] basepython = python3.5 deps = -r{toxinidir}/requirements.txt