diff --git a/charmcraft.yaml b/charmcraft.yaml index 79551bcd..eac8e267 100644 --- a/charmcraft.yaml +++ b/charmcraft.yaml @@ -4,31 +4,18 @@ parts: charm: plugin: dump source: . - prime: - - actions/* - - charmhelpers/* - - files/* - - hooks/* - - lib/* - - scripts/* - - templates/* - - actions.yaml - - config.yaml - - copyright - - hardening.yaml - - 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/charmhelpers/core/host_factory/ubuntu.py b/charmhelpers/core/host_factory/ubuntu.py index 732d76c3..e87595e4 100644 --- a/charmhelpers/core/host_factory/ubuntu.py +++ b/charmhelpers/core/host_factory/ubuntu.py @@ -33,6 +33,8 @@ UBUNTU_RELEASES = ( 'kinetic', 'lunar', 'mantic', + 'noble', + 'oracular', ) diff --git a/config.yaml b/config.yaml index 5a11b4d7..8efaee7d 100644 --- a/config.yaml +++ b/config.yaml @@ -19,7 +19,7 @@ options: Enable Keystone auditing middleware for logging API calls. openstack-origin: type: string - default: bobcat + default: caracal description: | Repository from which to install. May be one of the following: distro (default), ppa:somecustom/ppa, a deb url sources entry, diff --git a/osci.yaml b/osci.yaml index 85af21fc..e5cd49ab 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: nova-cloud-controller 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 62dddc24..00000000 --- a/tests/bundles/jammy-antelope.yaml +++ /dev/null @@ -1,257 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-antelope - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - '6': - '7': - '8': - '9': - # machines 10 and 11 are for nova-compute which needs more memory for the - # instances. - '10': - constraints: mem=4096M cores=4 - '11': - constraints: mem=4096M cores=4 - '12': - -applications: - - nova-cloud-controller-mysql-router: - charm: ch:mysql-router - channel: latest/edge - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-api-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 - # Reduce chances of spurious "super-read-only" failures, see lp:1882205 - expel-timeout: 20 - to: - - '0' - - '1' - - '2' - channel: latest/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - - nova-cloud-controller: - charm: ../../nova-cloud-controller.charm - num_units: 1 - options: - openstack-origin: *openstack-origin - api-rate-limit-rules: "( POST, '*', .*, 9999, MINUTE );" - network-manager: Neutron - vendor-data: '{"some": "json data"}' - vendor-data-url: http://some.url/vdata - debug: true - to: - - '4' - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - openstack-origin: *openstack-origin - flat-network-providers: physnet1 - neutron-security-groups: true - to: - - '5' - channel: 2024.1/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '7' - channel: 2024.1/edge - - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '8' - channel: 2024.1/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: 2024.1/edge - - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '9' - channel: 2024.1/edge - - nova-compute: - charm: ch:nova-compute - num_units: 2 - storage: - ephemeral-device: '40G' - options: - openstack-origin: *openstack-origin - config-flags: auto_assign_floating_ip=False - enable-live-migration: false - aa-profile-mode: enforce - debug: true - to: - - '10' - - '11' - channel: 2024.1/edge - - vault: - charm: ch:vault - num_units: 1 - to: - - '12' - channel: latest/edge - -relations: - - - - 'nova-compute:image-service' - - 'glance:image-service' - - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:identity-service' - - 'keystone:identity-service' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:quantum-network-service' - - 'neutron-gateway:quantum-network-service' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - - 'rabbitmq-server:amqp' - - 'neutron-openvswitch:amqp' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement:identity-service' - - 'keystone:identity-service' - - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - - - 'vault:shared-db' - - 'vault-mysql-router:shared-db' - - - 'vault-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'vault:certificates' - - 'neutron-api:certificates' - - - - 'vault:certificates' - - 'glance:certificates' - - - - 'vault:certificates' - - 'keystone:certificates' - - - - 'vault:certificates' - - 'nova-cloud-controller:certificates' - - - - 'vault:certificates' - - 'placement:certificates' diff --git a/tests/bundles/jammy-bobcat.yaml b/tests/bundles/jammy-bobcat.yaml deleted file mode 100644 index 26a36a22..00000000 --- a/tests/bundles/jammy-bobcat.yaml +++ /dev/null @@ -1,257 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-bobcat - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - '6': - '7': - '8': - '9': - # machines 10 and 11 are for nova-compute which needs more memory for the - # instances. - '10': - constraints: mem=4096M cores=4 - '11': - constraints: mem=4096M cores=4 - '12': - -applications: - - nova-cloud-controller-mysql-router: - charm: ch:mysql-router - channel: latest/edge - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-api-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 - # Reduce chances of spurious "super-read-only" failures, see lp:1882205 - expel-timeout: 20 - to: - - '0' - - '1' - - '2' - channel: latest/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - - nova-cloud-controller: - charm: ../../nova-cloud-controller.charm - num_units: 1 - options: - openstack-origin: *openstack-origin - api-rate-limit-rules: "( POST, '*', .*, 9999, MINUTE );" - network-manager: Neutron - vendor-data: '{"some": "json data"}' - vendor-data-url: http://some.url/vdata - debug: true - to: - - '4' - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - openstack-origin: *openstack-origin - flat-network-providers: physnet1 - neutron-security-groups: true - to: - - '5' - channel: 2024.1/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '7' - channel: 2024.1/edge - - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '8' - channel: 2024.1/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: 2024.1/edge - - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '9' - channel: 2024.1/edge - - nova-compute: - charm: ch:nova-compute - num_units: 2 - storage: - ephemeral-device: '40G' - options: - openstack-origin: *openstack-origin - config-flags: auto_assign_floating_ip=False - enable-live-migration: false - aa-profile-mode: enforce - debug: true - to: - - '10' - - '11' - channel: 2024.1/edge - - vault: - charm: ch:vault - num_units: 1 - to: - - '12' - channel: latest/edge - -relations: - - - - 'nova-compute:image-service' - - 'glance:image-service' - - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:identity-service' - - 'keystone:identity-service' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:quantum-network-service' - - 'neutron-gateway:quantum-network-service' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - - 'rabbitmq-server:amqp' - - 'neutron-openvswitch:amqp' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement:identity-service' - - 'keystone:identity-service' - - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - - - 'vault:shared-db' - - 'vault-mysql-router:shared-db' - - - 'vault-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'vault:certificates' - - 'neutron-api:certificates' - - - - 'vault:certificates' - - 'glance:certificates' - - - - 'vault:certificates' - - 'keystone:certificates' - - - - 'vault:certificates' - - 'nova-cloud-controller:certificates' - - - - 'vault:certificates' - - 'placement:certificates' diff --git a/tests/bundles/jammy-caracal.yaml b/tests/bundles/jammy-caracal.yaml deleted file mode 100644 index c6acae1b..00000000 --- a/tests/bundles/jammy-caracal.yaml +++ /dev/null @@ -1,257 +0,0 @@ -variables: - openstack-origin: &openstack-origin cloud:jammy-caracal - -series: jammy - -comment: -- 'machines section to decide order of deployment. database sooner = faster' -machines: - '0': - constraints: mem=3072M - '1': - constraints: mem=3072M - '2': - constraints: mem=3072M - '3': - '4': - '5': - '6': - '7': - '8': - '9': - # machines 10 and 11 are for nova-compute which needs more memory for the - # instances. - '10': - constraints: mem=4096M cores=4 - '11': - constraints: mem=4096M cores=4 - '12': - -applications: - - nova-cloud-controller-mysql-router: - charm: ch:mysql-router - channel: latest/edge - keystone-mysql-router: - charm: ch:mysql-router - channel: latest/edge - glance-mysql-router: - charm: ch:mysql-router - channel: latest/edge - neutron-api-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 - # Reduce chances of spurious "super-read-only" failures, see lp:1882205 - expel-timeout: 20 - to: - - '0' - - '1' - - '2' - channel: latest/edge - - rabbitmq-server: - charm: ch:rabbitmq-server - num_units: 1 - to: - - '3' - channel: latest/edge - - nova-cloud-controller: - charm: ../../nova-cloud-controller.charm - num_units: 1 - options: - openstack-origin: *openstack-origin - api-rate-limit-rules: "( POST, '*', .*, 9999, MINUTE );" - network-manager: Neutron - vendor-data: '{"some": "json data"}' - vendor-data-url: http://some.url/vdata - debug: true - to: - - '4' - - neutron-api: - charm: ch:neutron-api - num_units: 1 - options: - manage-neutron-plugin-legacy-mode: true - neutron-plugin: ovs - openstack-origin: *openstack-origin - flat-network-providers: physnet1 - neutron-security-groups: true - to: - - '5' - channel: 2024.1/edge - - keystone: - charm: ch:keystone - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '6' - channel: 2024.1/edge - - neutron-gateway: - charm: ch:neutron-gateway - num_units: 1 - options: - openstack-origin: *openstack-origin - bridge-mappings: physnet1:br-ex - to: - - '7' - channel: 2024.1/edge - - glance: - charm: ch:glance - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '8' - channel: 2024.1/edge - - neutron-openvswitch: - charm: ch:neutron-openvswitch - channel: 2024.1/edge - - placement: - charm: ch:placement - num_units: 1 - options: - openstack-origin: *openstack-origin - to: - - '9' - channel: 2024.1/edge - - nova-compute: - charm: ch:nova-compute - num_units: 2 - storage: - ephemeral-device: '40G' - options: - openstack-origin: *openstack-origin - config-flags: auto_assign_floating_ip=False - enable-live-migration: false - aa-profile-mode: enforce - debug: true - to: - - '10' - - '11' - channel: 2024.1/edge - - vault: - charm: ch:vault - num_units: 1 - to: - - '12' - channel: latest/edge - -relations: - - - - 'nova-compute:image-service' - - 'glance:image-service' - - - - 'nova-compute:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:shared-db' - - 'nova-cloud-controller-mysql-router:shared-db' - - - 'nova-cloud-controller-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'nova-cloud-controller:identity-service' - - 'keystone:identity-service' - - - - 'nova-cloud-controller:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:cloud-compute' - - 'nova-compute:cloud-compute' - - - - 'nova-cloud-controller:image-service' - - 'glance:image-service' - - - - 'keystone:shared-db' - - 'keystone-mysql-router:shared-db' - - - 'keystone-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:identity-service' - - 'keystone:identity-service' - - - - 'glance:shared-db' - - 'glance-mysql-router:shared-db' - - - 'glance-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'glance:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-gateway:amqp' - - 'rabbitmq-server:amqp' - - - - 'nova-cloud-controller:quantum-network-service' - - 'neutron-gateway:quantum-network-service' - - - - 'neutron-api:shared-db' - - 'neutron-api-mysql-router:shared-db' - - - 'neutron-api-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'neutron-api:amqp' - - 'rabbitmq-server:amqp' - - - - 'neutron-api:neutron-api' - - 'nova-cloud-controller:neutron-api' - - - - 'neutron-api:identity-service' - - 'keystone:identity-service' - - - - 'nova-compute:neutron-plugin' - - 'neutron-openvswitch:neutron-plugin' - - - - 'rabbitmq-server:amqp' - - 'neutron-openvswitch:amqp' - - - - 'placement:shared-db' - - 'placement-mysql-router:shared-db' - - - 'placement-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'placement:identity-service' - - 'keystone:identity-service' - - - - 'placement:placement' - - 'nova-cloud-controller:placement' - - - - 'vault:shared-db' - - 'vault-mysql-router:shared-db' - - - 'vault-mysql-router:db-router' - - 'mysql-innodb-cluster:db-router' - - - - 'vault:certificates' - - 'neutron-api:certificates' - - - - 'vault:certificates' - - 'glance:certificates' - - - - 'vault:certificates' - - 'keystone:certificates' - - - - 'vault:certificates' - - 'nova-cloud-controller:certificates' - - - - 'vault:certificates' - - 'placement:certificates' diff --git a/tests/bundles/noble-caracal.yaml b/tests/bundles/noble-caracal.yaml index e84c06a2..bf383c2e 100644 --- a/tests/bundles/noble-caracal.yaml +++ b/tests/bundles/noble-caracal.yaml @@ -92,7 +92,7 @@ applications: neutron-security-groups: true to: - '5' - channel: 2024.1/edge + channel: latest/edge keystone: charm: ch:keystone @@ -101,7 +101,7 @@ applications: openstack-origin: *openstack-origin to: - '6' - channel: 2024.1/edge + channel: latest/edge neutron-gateway: charm: ch:neutron-gateway @@ -111,7 +111,7 @@ applications: bridge-mappings: physnet1:br-ex to: - '7' - channel: 2024.1/edge + channel: latest/edge glance: charm: ch:glance @@ -120,11 +120,11 @@ applications: openstack-origin: *openstack-origin to: - '8' - channel: 2024.1/edge + channel: latest/edge neutron-openvswitch: charm: ch:neutron-openvswitch - channel: 2024.1/edge + channel: latest/edge placement: charm: ch:placement @@ -133,7 +133,7 @@ applications: openstack-origin: *openstack-origin to: - '9' - channel: 2024.1/edge + channel: latest/edge nova-compute: charm: ch:nova-compute @@ -149,7 +149,7 @@ applications: to: - '10' - '11' - channel: 2024.1/edge + channel: latest/edge vault: charm: ch:vault diff --git a/tests/tests.yaml b/tests/tests.yaml index d20bf37f..efbb90a2 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -1,11 +1,9 @@ charm_name: nova-cloud-controller smoke_bundles: - - jammy-caracal + - noble-caracal gate_bundles: - - jammy-antelope - - jammy-bobcat - - jammy-caracal + - noble-caracal dev_bundles: - noble-caracal target_deploy_status: @@ -32,5 +30,3 @@ tests_options: audit-middleware: service: nova application: nova-cloud-controller - force_deploy: - - noble-caracal