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