diff --git a/osci.yaml b/osci.yaml index 6c3c9120..cbc471f4 100644 --- a/osci.yaml +++ b/osci.yaml @@ -3,7 +3,9 @@ - charm-unit-jobs check: jobs: + - vault-hirsute-wallaby - vault-groovy-victoria + - vault-focal-wallaby - vault-focal-victoria - vault-focal-ussuri - bionic-ussuri @@ -13,12 +15,12 @@ - xenial-mitaka - job: - name: vault-groovy-victoria + name: vault-focal-ussuri parent: func-target dependencies: &smoke-jobs - bionic-ussuri vars: - tox_extra_args: vault:groovy-victoria + tox_extra_args: vault:focal-ussuri - job: name: vault-focal-victoria parent: func-target @@ -26,8 +28,20 @@ vars: tox_extra_args: vault:focal-victoria - job: - name: vault-focal-ussuri + name: vault-focal-wallaby parent: func-target dependencies: *smoke-jobs vars: - tox_extra_args: vault:focal-ussuri \ No newline at end of file + tox_extra_args: vault:focal-wallaby +- job: + name: vault-groovy-victoria + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: vault:groovy-victoria +- job: + name: vault-hirsute-wallaby + parent: func-target + dependencies: *smoke-jobs + vars: + tox_extra_args: vault:hirsute-wallaby diff --git a/tests/bundles/focal-wallaby.yaml b/tests/bundles/focal-wallaby.yaml new file mode 100644 index 00000000..9859b793 --- /dev/null +++ b/tests/bundles/focal-wallaby.yaml @@ -0,0 +1,241 @@ +variables: + openstack-origin: &openstack-origin cloud:focal-wallaby + +series: focal + +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: cs:~openstack-charmers-next/mysql-router + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + + mysql-innodb-cluster: + charm: cs:~openstack-charmers-next/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' + + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + to: + - '3' + + nova-cloud-controller: + charm: ../../../nova-cloud-controller + 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: cs:~openstack-charmers-next/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' + + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '6' + + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + to: + - '7' + + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '8' + + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '9' + + nova-compute: + charm: cs:~openstack-charmers-next/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' + + vault: + charm: cs:~openstack-charmers-next/vault + num_units: 1 + to: + - '12' + +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/hirsute-wallaby.yaml b/tests/bundles/hirsute-wallaby.yaml new file mode 100644 index 00000000..654cc19b --- /dev/null +++ b/tests/bundles/hirsute-wallaby.yaml @@ -0,0 +1,241 @@ +variables: + openstack-origin: &openstack-origin distro + +series: hirsute + +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: cs:~openstack-charmers-next/mysql-router + keystone-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + glance-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + neutron-api-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + placement-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + vault-mysql-router: + charm: cs:~openstack-charmers-next/mysql-router + + mysql-innodb-cluster: + charm: cs:~openstack-charmers-next/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' + + rabbitmq-server: + charm: cs:~openstack-charmers-next/rabbitmq-server + num_units: 1 + to: + - '3' + + nova-cloud-controller: + charm: ../../../nova-cloud-controller + 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: cs:~openstack-charmers-next/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' + + keystone: + charm: cs:~openstack-charmers-next/keystone + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '6' + + neutron-gateway: + charm: cs:~openstack-charmers-next/neutron-gateway + num_units: 1 + options: + openstack-origin: *openstack-origin + bridge-mappings: physnet1:br-ex + to: + - '7' + + glance: + charm: cs:~openstack-charmers-next/glance + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '8' + + neutron-openvswitch: + charm: cs:~openstack-charmers-next/neutron-openvswitch + + placement: + charm: cs:~openstack-charmers-next/placement + num_units: 1 + options: + openstack-origin: *openstack-origin + to: + - '9' + + nova-compute: + charm: cs:~openstack-charmers-next/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' + + vault: + charm: cs:~openstack-charmers-next/vault + num_units: 1 + to: + - '12' + +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/tests.yaml b/tests/tests.yaml index 31c50d6f..d62a165c 100644 --- a/tests/tests.yaml +++ b/tests/tests.yaml @@ -1,8 +1,11 @@ charm_name: nova-cloud-controller + smoke_bundles: - vault: focal-ussuri + gate_bundles: - vault: groovy-victoria +- vault: focal-wallaby - vault: focal-victoria - vault: focal-ussuri - sync_az: bionic-ussuri @@ -10,15 +13,19 @@ gate_bundles: - sync_az: bionic-stein - bionic-queens - xenial-mitaka + dev_bundles: - xenial-ocata - xenial-pike - xenial-queens - bionic-rocky +- vault: hirsute-wallaby + target_deploy_status: vault: workload-status: blocked workload-status-message: Vault needs to be initialized + configure: - zaza.openstack.charm_tests.glance.setup.add_cirros_image - zaza.openstack.charm_tests.keystone.setup.add_demo_user @@ -38,6 +45,7 @@ configure: - zaza.openstack.charm_tests.neutron.setup.basic_overcloud_network - zaza.openstack.charm_tests.nova.setup.create_flavors - zaza.openstack.charm_tests.nova.setup.manage_ssh_key + tests: - zaza.openstack.charm_tests.nova.tests.CirrosGuestCreateTest - zaza.openstack.charm_tests.nova.tests.SecurityTests @@ -52,6 +60,7 @@ tests: - zaza.openstack.charm_tests.nova.tests.SecurityTests - zaza.openstack.charm_tests.nova.tests.NovaCloudController - zaza.openstack.charm_tests.nova.tests.NovaCloudControllerActionTest + tests_options: force_deploy: - - groovy-victoria + - hirsute-wallaby