Added basic multinode kitchen test

- this scenario creates a basic three-node cluster, consisting of one Compute
  Controller, one Network Controller and one Compute Node

Change-Id: Ib9202cccd126b88906776223394b767fbbc41ec6
This commit is contained in:
Samuel Cassiba 2017-12-12 21:34:24 -08:00
parent d7e8923363
commit ca3a5df961

282
.kitchen.multi.yml Normal file
View File

@ -0,0 +1,282 @@
---
driver:
name: vagrant
client_rb:
treat_deprecation_warnings_as_errors: true
resource_cloning: false
provisioner:
name: chef_zero
# You may wish to disable always updating cookbooks in CI or other testing
# environments.
# For example:
# always_update_cookbooks: <%= !ENV['CI'] %>
always_update_cookbooks: true
require_chef_omnibus: 13
# Copy secret to /tmp/kitchen on test VM. Kitchen tries to gather secrets
# before any recipes had a chance to run -> we cannot use a recipe to put the
# secrets file in place.
encrypted_data_bag_secret_key_path: .chef/encrypted_data_bag_secret
attributes:
# Attributes copied from environments/multinode.json
apache:
listen: []
openstack:
is_release: true
apt:
update_apt_cache: true
bind_service:
db:
host: '192.168.101.80'
mq:
host: '192.168.101.80'
main:
identity:
host: '0.0.0.0'
admin:
identity:
host: '0.0.0.0'
all:
block-storage:
host: '0.0.0.0'
compute-api:
host: '0.0.0.0'
compute-metadata-api:
host: '0.0.0.0'
compute-novnc:
host: '0.0.0.0'
image_api:
host: '0.0.0.0'
image_registry:
host: '0.0.0.0'
network:
host: '0.0.0.0'
orchestration-api:
host: '0.0.0.0'
orchestration-api-cfn:
host: '0.0.0.0'
orchestration-api-cloudwatch:
host: '0.0.0.0'
placement-api:
host: '0.0.0.0'
compute:
conf:
libvirt:
cpu_type: none
virt_type: qemu
dashboard:
server_hostname: controller.example.net
endpoints:
db:
host: '192.168.101.80'
mq:
host: '192.168.101.80'
admin:
block-storage:
host: '192.168.101.80'
compute-api:
host: '192.168.101.80'
compute-metadata-api:
host: '192.168.101.80'
compute-novnc:
host: '192.168.101.80'
identity:
host: '192.168.101.80'
image_api:
host: '192.168.101.80'
image_registry:
host: '192.168.101.80'
network:
host: '192.168.101.80'
orchestration-api:
host: '192.168.101.80'
orchestration-api-cfn:
host: '192.168.101.80'
orchestration-api-cloudwatch:
host: '192.168.101.80'
placement-api:
host: '192.168.101.80'
internal:
block-storage:
host: '192.168.101.80'
compute-api:
host: '192.168.101.80'
compute-metadata-api:
host: '192.168.101.80'
compute-novnc:
host: '192.168.101.80'
identity:
host: '192.168.101.80'
image_api:
host: '192.168.101.80'
image_registry:
host: '192.168.101.80'
network:
host: '192.168.101.80'
orchestration-api:
host: '192.168.101.80'
orchestration-api-cfn:
host: '192.168.101.80'
orchestration-api-cloudwatch:
host: '192.168.101.80'
placement-api:
host: '192.168.101.80'
public:
block-storage:
host: '192.168.101.80'
compute-api:
host: '192.168.101.80'
compute-metadata-api:
host: '192.168.101.80'
compute-novnc:
host: '192.168.101.80'
identity:
host: '192.168.101.80'
image_api:
host: '192.168.101.80'
image_registry:
host: '192.168.101.80'
network:
host: '192.168.101.80'
orchestration-api:
host: '192.168.101.80'
orchestration-api-cfn:
host: '192.168.101.80'
orchestration-api-cloudwatch:
host: '192.168.101.80'
placement-api:
host: '192.168.101.80'
image:
image_upload: true
memcached_servers: ['127.0.0.1:11211']
mq:
user: admin
network:
conf:
DEFAULT:
service_plugins: router
ml2:
tenant_network_types: 'vxlan'
plugins:
ml2_openvswitch:
conf:
ml2_type_vxlan:
vni_ranges: '65537:69999'
vxlan_group: '239.1.1.40'
transport_url:
rabbit_host: '192.168.101.80'
tun_network_bridge_interface: 'eth2'
secret:
key_path: /tmp/kitchen/encrypted_data_bag_secret
sysctl:
net.ipv4.ip_forward: 1
telemetry:
conf:
DEFAULT:
meter_dispatchers: database
verifier:
name: inspec
platforms:
- name: ubuntu-16.04
- name: centos-7.4
suites:
- name: network
customize:
cpus: 2
memory: 2048
driver:
network:
- ["private_network", {ip: "192.168.100.70"}]
- ["private_network", {ip: "192.168.101.70"}]
run_list:
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::python]
- recipe[openstack-network::plugin_config]
- recipe[openstack-network::ml2_openvswitch]
- recipe[openstack-network]
- recipe[openstack-network::openvswitch]
- recipe[openstack-network::_bridge_config_example]
- recipe[openstack-network::l3_agent]
- recipe[openstack-network::dhcp_agent]
- recipe[openstack-network::metadata_agent]
- recipe[openstack-network::openvswitch_agent]
- name: compute
customize:
cpus: 2
memory: 2048
driver:
network:
- ["private_network", {ip: "192.168.100.61"}]
- ["private_network", {ip: "192.168.101.61"}]
run_list:
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::python]
- recipe[openstack-compute::compute]
- name: controller
customize:
cpus: 4
memory: 4096
driver:
network:
- ["private_network", {ip: "192.168.100.80"}]
- ["private_network", {ip: "192.168.101.80"}]
run_list:
# run_list taken from roles/multinode-controller.json
- recipe[openstack-common]
- recipe[openstack-common::logging]
- recipe[openstack-common::sysctl]
- recipe[openstack-common::python]
- recipe[openstack-common::client]
- recipe[openstack-common::etcd]
- recipe[openstack-ops-database::server]
- recipe[openstack-ops-database::openstack-db]
- recipe[openstack-ops-messaging::rabbitmq-server]
- recipe[openstack-identity::server-apache]
- recipe[openstack-identity::registration]
- recipe[openstack-identity::openrc]
- recipe[openstack-image::api]
- recipe[openstack-image::registry]
- recipe[openstack-image::identity_registration]
- recipe[openstack-network]
- recipe[openstack-network::ml2_core_plugin]
- recipe[openstack-network::openvswitch]
- recipe[openstack-compute::nova-setup]
- recipe[openstack-compute::identity_registration]
- recipe[openstack-compute::conductor]
- recipe[openstack-compute::api-os-compute]
- recipe[openstack-compute::api-metadata]
- recipe[openstack-compute::placement_api]
- recipe[openstack-compute::scheduler]
- recipe[openstack-compute::vncproxy]
- recipe[openstack-compute::identity_registration]
# NOTE: block-storage, orchestration, dashboard, etc. will be installed
# but are not tested by tempest
- recipe[openstack-block-storage::api]
- recipe[openstack-block-storage::scheduler]
- recipe[openstack-block-storage::volume_driver_lvm]
- recipe[openstack-block-storage::volume]
- recipe[openstack-block-storage::backup]
- recipe[openstack-block-storage::identity_registration]
- recipe[openstack-orchestration::engine]
- recipe[openstack-orchestration::api]
- recipe[openstack-orchestration::api-cfn]
- recipe[openstack-orchestration::api-cloudwatch]
- recipe[openstack-orchestration::identity_registration]
- recipe[openstack-image::image_upload]
- recipe[openstack-dashboard::horizon]
- recipe[openstack-dashboard::neutron-lbaas-dashboard]
- recipe[openstack-integration-test::create_network]
- recipe[openstack-integration-test::setup]
- recipe[openstack-integration-test::run_tempest]
verifier:
inspec_tests:
- test/tempest/default