diff --git a/charmcraft.yaml b/charmcraft.yaml index a89bb84e..eac8e267 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -4,29 +4,18 @@ 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: - - build-on: - - name: ubuntu - channel: "22.04" - architectures: - - amd64 - run-on: - - name: ubuntu - channel: "22.04" - architectures: [amd64, s390x, ppc64el, arm64] +base: ubuntu@24.04 +platforms: + amd64: + build-on: amd64 + build-for: amd64 + arm64: + build-on: arm64 + build-for: arm64 + ppc64el: + build-on: ppc64el + build-for: ppc64el + s390x: + build-on: s390x + build-for: s390x diff --git a/hooks/charmhelpers/core/host_factory/ubuntu.py b/hooks/charmhelpers/core/host_factory/ubuntu.py index 732d76c3..e87595e4 100644 --- a/hooks/charmhelpers/core/host_factory/ubuntu.py +++ b/hooks/charmhelpers/core/host_factory/ubuntu.py @@ -33,6 +33,8 @@ UBUNTU_RELEASES = ( 'kinetic', 'lunar', 'mantic', + 'noble', + 'oracular', ) diff --git a/osci.yaml b/osci.yaml index b02b9a9b..decfb477 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: neutron-openvswitch build_type: charmcraft - charmcraft_channel: 2.x/stable + charmcraft_channel: 3.x/beta diff --git a/tests/bundles/jammy-antelope.yaml b/tests/bundles/jammy-antelope.yaml deleted file mode 100644 index 81b1e68e..00000000 --- a/tests/bundles/jammy-antelope.yaml +++ /dev/null @@ -1,219 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-antelope - -series: &series jammy - -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: ch:mysql-router - channel: latest/edge - nova-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-mysql-router: - charm: ch:mysql-router - channel: latest/edge - vault-mysql-router: - charm: ch:mysql-router - channel: latest/edge - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - channel: latest/edge - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - neutron-api: - charm: ch: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 - enable-qos: True - to: - - '4' - channel: 2024.1/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - channel: 2024.1/edge - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - 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: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - channel: 2024.1/edge - nova-compute: - charm: ch: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' - channel: 2024.1/edge - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - channel: 2024.1/edge - vault: - charm: ch:vault - num_units: 1 - to: - - '11' - channel: latest/edge - ovn-central: - charm: ch:ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - channel: latest/edge - neutron-api-plugin-ovn: - charm: ch:neutron-api-plugin-ovn - channel: 2024.1/edge - 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' - - - '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/jammy-bobcat.yaml b/tests/bundles/jammy-bobcat.yaml deleted file mode 100644 index d0f72e00..00000000 --- a/tests/bundles/jammy-bobcat.yaml +++ /dev/null @@ -1,219 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-bobcat - -series: &series jammy - -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: ch:mysql-router - channel: latest/edge - nova-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-mysql-router: - charm: ch:mysql-router - channel: latest/edge - vault-mysql-router: - charm: ch:mysql-router - channel: latest/edge - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - channel: latest/edge - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - neutron-api: - charm: ch: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 - enable-qos: True - to: - - '4' - channel: 2024.1/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - channel: 2024.1/edge - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - 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: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - channel: 2024.1/edge - nova-compute: - charm: ch: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' - channel: 2024.1/edge - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - channel: 2024.1/edge - vault: - charm: ch:vault - num_units: 1 - to: - - '11' - channel: latest/edge - ovn-central: - charm: ch:ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - channel: latest/edge - neutron-api-plugin-ovn: - charm: ch:neutron-api-plugin-ovn - channel: 2024.1/edge - 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' - - - '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/jammy-caracal.yaml b/tests/bundles/jammy-caracal.yaml deleted file mode 100644 index 554da77b..00000000 --- a/tests/bundles/jammy-caracal.yaml +++ /dev/null @@ -1,219 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-caracal - -series: &series jammy - -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: ch:mysql-router - channel: latest/edge - nova-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-mysql-router: - charm: ch:mysql-router - channel: latest/edge - placement-mysql-router: - charm: ch:mysql-router - channel: latest/edge - vault-mysql-router: - charm: ch:mysql-router - channel: latest/edge - mysql-innodb-cluster: - charm: ch:mysql-innodb-cluster - num_units: 3 - options: - source: *openstack-origin - to: - - '0' - - '1' - - '2' - channel: latest/edge - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - neutron-api: - charm: ch: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 - enable-qos: True - to: - - '4' - channel: 2024.1/edge - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '5' - channel: 2024.1/edge - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - 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: ch:nova-cloud-controller - num_units: 1 - options: - network-manager: Neutron - openstack-origin: *openstack-origin - to: - - '7' - channel: 2024.1/edge - nova-compute: - charm: ch: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' - channel: 2024.1/edge - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '10' - channel: 2024.1/edge - vault: - charm: ch:vault - num_units: 1 - to: - - '11' - channel: latest/edge - ovn-central: - charm: ch:ovn-central - num_units: 3 - options: - source: *openstack-origin - to: - - '12' - channel: latest/edge - neutron-api-plugin-ovn: - charm: ch:neutron-api-plugin-ovn - channel: 2024.1/edge - 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' - - - '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/noble-caracal.yaml b/tests/bundles/noble-caracal.yaml index 046e571d..8d6b65e5 100644 --- a/tests/bundles/noble-caracal.yaml +++ b/tests/bundles/noble-caracal.yaml @@ -75,7 +75,7 @@ applications: enable-qos: True to: - '4' - channel: 2024.1/edge + channel: latest/edge keystone: charm: ch:keystone num_units: 1 @@ -83,7 +83,7 @@ applications: openstack-origin: *openstack-origin to: - '5' - channel: 2024.1/edge + channel: latest/edge glance: charm: ch:glance num_units: 1 @@ -91,7 +91,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: 2024.1/edge + channel: latest/edge neutron-openvswitch: charm: ../../neutron-openvswitch.charm options: @@ -106,7 +106,7 @@ applications: openstack-origin: *openstack-origin to: - '7' - channel: 2024.1/edge + channel: latest/edge nova-compute: charm: ch:nova-compute num_units: 2 @@ -119,7 +119,7 @@ applications: to: - '8' - '9' - channel: 2024.1/edge + channel: latest/edge placement: charm: ch:placement num_units: 1 @@ -127,7 +127,7 @@ applications: openstack-origin: *openstack-origin to: - '10' - channel: 2024.1/edge + channel: latest/edge vault: charm: ch:vault num_units: 1 @@ -144,7 +144,7 @@ applications: channel: latest/edge neutron-api-plugin-ovn: charm: ch:neutron-api-plugin-ovn - channel: 2024.1/edge + channel: latest/edge ovn-chassis: charm: ch:ovn-chassis options: diff --git a/tests/tests.yaml b/tests/tests.yaml index 64c6afde..249b4152 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -6,11 +6,9 @@ charm_name: neutron-openvswitch # OVS to OVN. smoke_bundles: - - jammy-caracal + - noble-caracal gate_bundles: - - jammy-antelope - - jammy-bobcat - - jammy-caracal + - noble-caracal dev_bundles: - noble-caracal configure: @@ -53,5 +51,3 @@ tests_options: # reusing the instances created for the first run. This both saves time and # allows verifying instances survive a SDN migration. zaza.openstack.charm_tests.neutron.tests.NeutronNetworkingTest.test_instances_have_networking.run_resource_cleanup: false - force_deploy: - - noble-caracal