Add support for kitchen testing
This changeset adds support for testing openstack-chef-repo with kitchen and tempest. Out of 63 tests, 33 pass and 30 are skipped, same as with current CI tests. The recipe, run_tempest in openstack-integration-test, is called at the end of the installation phase. In addition, a tempest run can be executed manually with "kitchen verify". Depends-On: I98706b1fc2c65a2359ca9b117a9491c0569514bd Change-Id: I90c4ab627e3834ba9fd5791c425320e9536f7826
This commit is contained in:
parent
9274ef3a7f
commit
962633f25a
|
@ -0,0 +1,127 @@
|
||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: vagrant
|
||||||
|
customize:
|
||||||
|
memory: 12000
|
||||||
|
|
||||||
|
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: 12
|
||||||
|
# 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
|
||||||
|
|
||||||
|
verifier:
|
||||||
|
name: inspec
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
# from environments/allinone-ubuntu16.json
|
||||||
|
- name: ubuntu-16.04
|
||||||
|
attributes:
|
||||||
|
apache:
|
||||||
|
listen: []
|
||||||
|
apt:
|
||||||
|
compile_time_update: true
|
||||||
|
openstack:
|
||||||
|
apt:
|
||||||
|
update_apt_cache: true
|
||||||
|
dashboard:
|
||||||
|
server_hostname: localhost
|
||||||
|
memcached_servers: ['127.0.0.1:11211']
|
||||||
|
# from environments/allinone-centos7.json
|
||||||
|
- name: centos-7.3
|
||||||
|
attributes:
|
||||||
|
mariadb:
|
||||||
|
mysqld:
|
||||||
|
lc_messages_dir: '/usr/share/mariadb'
|
||||||
|
|
||||||
|
suites:
|
||||||
|
- name: default
|
||||||
|
run_list:
|
||||||
|
# run_list taken from roles/allinone.json
|
||||||
|
- recipe[build-essential]
|
||||||
|
- recipe[openstack-common]
|
||||||
|
- recipe[openstack-common::logging]
|
||||||
|
- recipe[openstack-common::sysctl]
|
||||||
|
- recipe[openstack-common::client]
|
||||||
|
- 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::identity_registration]
|
||||||
|
- recipe[openstack-network::ml2_core_plugin]
|
||||||
|
- recipe[openstack-network::ml2_openvswitch]
|
||||||
|
- recipe[openstack-network]
|
||||||
|
- recipe[openstack-network::openvswitch]
|
||||||
|
- recipe[openstack-network::_bridge_config_example]
|
||||||
|
- recipe[openstack-network::plugin_config]
|
||||||
|
- recipe[openstack-network::server]
|
||||||
|
- recipe[openstack-network::l3_agent]
|
||||||
|
- recipe[openstack-network::dhcp_agent]
|
||||||
|
- recipe[openstack-network::metadata_agent]
|
||||||
|
- recipe[openstack-network::openvswitch_agent]
|
||||||
|
- 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::compute]
|
||||||
|
- recipe[openstack-compute::identity_registration]
|
||||||
|
# NOTE: block-storage, orchestration, dashboard, etc. can 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
|
||||||
|
# from environments/allinone-ubuntu16.json, environments/allinone-centos7.json
|
||||||
|
attributes:
|
||||||
|
# Attributes copied from environments/integration-ubuntu16.json
|
||||||
|
openstack:
|
||||||
|
telemetry:
|
||||||
|
conf:
|
||||||
|
DEFAULT:
|
||||||
|
meter_dispatchers: database
|
||||||
|
mq:
|
||||||
|
user: admin
|
||||||
|
network:
|
||||||
|
conf:
|
||||||
|
DEFAULT:
|
||||||
|
service_plugins: router
|
||||||
|
image:
|
||||||
|
image_upload: true
|
||||||
|
compute:
|
||||||
|
conf:
|
||||||
|
libvirt:
|
||||||
|
virt_type: qemu
|
||||||
|
secret:
|
||||||
|
key_path: /tmp/kitchen/encrypted_data_bag_secret
|
|
@ -0,0 +1,14 @@
|
||||||
|
# # encoding: utf-8
|
||||||
|
|
||||||
|
# Inspec test for openstack-chef-repo
|
||||||
|
|
||||||
|
# The Inspec reference, with examples and extensive documentation, can be
|
||||||
|
# found at http://inspec.io/docs/reference/resources/
|
||||||
|
|
||||||
|
# There is no console output during runtime, check log file instead.
|
||||||
|
describe command('sudo bash -c "cd /opt/tempest && ' \
|
||||||
|
'sudo /opt/tempest-venv/tempest.sh | ' \
|
||||||
|
'tee /root/inspec-tempest-$(date -Iminutes).log &&' \
|
||||||
|
'exit \${PIPESTATUS[0]}"') do
|
||||||
|
its('exit_status') { should eq 0 }
|
||||||
|
end
|
Loading…
Reference in New Issue