scenario001: add volume service

* Install & Configure Cinder with iSCSI backend
* Enable volume tests in Tempest
* Add default_floating_pool parameter to Nova API configuration
  to tempest volume scenario can work, since it uses Nova API to
  associate the floating IP.

Change-Id: I8bc007f3182741b2710dc0615261d9bd403f781f
This commit is contained in:
Emilien Macchi 2015-09-15 16:42:43 -04:00
parent ae784b33e6
commit dbb4feae20
2 changed files with 56 additions and 4 deletions

View File

@ -68,13 +68,13 @@ rabbitmq_vhost { '/':
provider => 'rabbitmqctl', provider => 'rabbitmqctl',
require => Class['rabbitmq'], require => Class['rabbitmq'],
} }
rabbitmq_user { ['neutron', 'nova']: rabbitmq_user { ['neutron', 'nova', 'cinder']:
admin => true, admin => true,
password => 'an_even_bigger_secret', password => 'an_even_bigger_secret',
provider => 'rabbitmqctl', provider => 'rabbitmqctl',
require => Class['rabbitmq'], require => Class['rabbitmq'],
} }
rabbitmq_user_permissions { ['neutron@/', 'nova@/']: rabbitmq_user_permissions { ['neutron@/', 'nova@/', 'cinder@/']:
configure_permission => '.*', configure_permission => '.*',
write_permission => '.*', write_permission => '.*',
read_permission => '.*', read_permission => '.*',
@ -215,6 +215,7 @@ class { '::nova::api':
osapi_compute_workers => 4, osapi_compute_workers => 4,
ec2_workers => 4, ec2_workers => 4,
metadata_workers => 4, metadata_workers => 4,
default_floating_pool => 'public',
} }
class { '::nova::cert': } class { '::nova::cert': }
class { '::nova::client': } class { '::nova::client': }
@ -234,6 +235,57 @@ class { '::nova::network::neutron':
neutron_admin_auth_url => 'http://127.0.0.1:35357/v2.0', neutron_admin_auth_url => 'http://127.0.0.1:35357/v2.0',
} }
# Deploy Cinder
class { '::cinder::db::mysql':
password => 'cinder',
}
class { '::cinder::keystone::auth':
password => 'a_big_secret',
}
class { '::cinder':
database_connection => 'mysql://cinder:cinder@127.0.0.1/cinder?charset=utf8',
rabbit_host => '127.0.0.1',
rabbit_userid => 'cinder',
rabbit_password => 'an_even_bigger_secret',
verbose => true,
debug => true,
}
class { '::cinder::api':
keystone_password => 'a_big_secret',
identity_uri => 'http://127.0.0.1:35357/',
default_volume_type => 'BACKEND_1',
service_workers => 4,
}
class { '::cinder::quota': }
class { '::cinder::scheduler': }
class { '::cinder::scheduler::filter': }
class { '::cinder::volume': }
class { '::cinder::cron::db_purge': }
class { '::cinder::glance':
glance_api_servers => 'localhost:9292',
}
class { '::cinder::setup_test_volume':
size => '15G',
}
cinder::backend::iscsi { 'BACKEND_1':
iscsi_ip_address => '127.0.0.1',
}
class { '::cinder::backends':
enabled_backends => ['BACKEND_1'],
}
Cinder::Type {
os_password => 'a_big_secret',
os_tenant_name => 'services',
os_username => 'cinder',
os_auth_url => 'http://127.0.0.1:5000/v2.0',
}
cinder::type { 'BACKEND_1':
set_key => 'volume_backend_name',
set_value => 'BACKEND_1',
notify => Service['cinder-volume'],
require => Service['cinder-api'],
}
# Configure Tempest and the resources # Configure Tempest and the resources
$os_auth_options = '--os-username admin --os-password a_big_secret --os-tenant-name openstack --os-auth-url http://127.0.0.1:5000/v2.0' $os_auth_options = '--os-username admin --os-password a_big_secret --os-tenant-name openstack --os-auth-url http://127.0.0.1:5000/v2.0'
@ -324,7 +376,7 @@ class { '::tempest':
auth_version => 'v3', auth_version => 'v3',
image_name => 'cirros', image_name => 'cirros',
image_name_alt => 'cirros_alt', image_name_alt => 'cirros_alt',
cinder_available => false, cinder_available => true,
glance_available => true, glance_available => true,
horizon_available => false, horizon_available => false,
nova_available => true, nova_available => true,

View File

@ -84,5 +84,5 @@ fi
# TODO(emilien) later, we should use local image if present. That would be a next iteration. # TODO(emilien) later, we should use local image if present. That would be a next iteration.
wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img -P /tmp/openstack/tempest wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img -P /tmp/openstack/tempest
# run a scenario that validates Keystone, Nova, Glance and Neutron # run a scenario that validates Keystone, Nova, Glance, Neutron and Cinder
cd /tmp/openstack/tempest; tox -eall -- --concurrency=4 smoke cd /tmp/openstack/tempest; tox -eall -- --concurrency=4 smoke