diff --git a/Puppetfile b/Puppetfile index acc9b213e..df1c35a89 100644 --- a/Puppetfile +++ b/Puppetfile @@ -3,7 +3,7 @@ mod 'apache', :git => 'https://github.com/puppetlabs/puppetlabs-apache.git' mod 'ceilometer', - :commit => '1d78470e5023e2ca6adef47c904d14d046dd87d1', + :commit => '741e89ae5b59e6284d677dd1c3cdf4154902a378', :git => 'https://github.com/stackforge/puppet-ceilometer.git' mod 'certmonger', @@ -11,7 +11,7 @@ mod 'certmonger', :git => 'https://github.com/rcritten/puppet-certmonger.git' mod 'cinder', - :commit => 'b5dce39754ed6857d6dc87b3ae29ed38057a487e', + :commit => '1ee8a6cab39da6beebf7a0b39207f0002368196f', :git => 'https://github.com/stackforge/puppet-cinder.git' mod 'common', @@ -31,7 +31,7 @@ mod 'galera', :git => 'https://github.com/rohara/puppet-galera.git' mod 'glance', - :commit => '916a90ebdc3e9fafe956b12dcaa0e0ce3e7e3f04', + :commit => 'a243f89a52f7dd2dc16b36d1c9b79ec1616c6596', :git => 'https://github.com/stackforge/puppet-glance.git' mod 'gluster', @@ -43,11 +43,11 @@ mod 'haproxy', :git => 'https://github.com/puppetlabs/puppetlabs-haproxy.git' mod 'heat', - :commit => '45a35dc2ec5f01bd79189ada881d083e1a51413b', + :commit => 'b1e9e9bd48c3da15be69c0797fb05e7ce0f6698f', :git => 'https://github.com/stackforge/puppet-heat.git' mod 'horizon', - :commit => '351c711004ccd9815e9a0d153bc5452461f7852d', + :commit => '353c372d582167d5635b1b2ee9474cf6822db032', :git => 'https://github.com/stackforge/puppet-horizon.git' mod 'inifile', @@ -87,11 +87,11 @@ mod 'nagios', :git => 'https://github.com/gildub/puppet-nagios-openstack.git' mod 'neutron', - :commit => '663b4b16d22f78dbbb89c58170690a3c0a1e0ff2', + :commit => '67abde86d53969329bce37725627c2c661e49765', :git => 'https://github.com/stackforge/puppet-neutron.git' mod 'nova', - :commit => '261ae911fc5c325f6dd739a9b05f508a80a25034', + :commit => '181991927131206d4ea59a679e8108e36dc86c77', :git => 'https://github.com/stackforge/puppet-nova.git' mod 'nssdb', @@ -107,7 +107,7 @@ mod 'openstack', :git => 'https://github.com/stackforge/puppet-openstack.git' mod 'openstacklib', - :commit => '2fc2e5504de7c298263a1d63af92974a7779d5c9', + :commit => 'e64e9c2a44833b25b602138b53a3187db49eaef8', :git => 'https://github.com/stackforge/puppet-openstacklib.git' mod 'pacemaker', @@ -151,7 +151,7 @@ mod 'stdlib', :git => 'https://github.com/puppetlabs/puppetlabs-stdlib.git' mod 'swift', - :commit => '2193831dd787e9b24382c588dfa49917bcf47262', + :commit => '68a9e8eecba4a280ea1ec18fba67069a8c7dfce4', :git => 'https://github.com/stackforge/puppet-swift.git' mod 'sysctl', diff --git a/ceilometer/README.md b/ceilometer/README.md index afe09c5ac..1e8d72950 100644 --- a/ceilometer/README.md +++ b/ceilometer/README.md @@ -1,7 +1,7 @@ Ceilometer ========== -4.0.0 - 2014.1.0 - Icehouse +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -72,6 +72,37 @@ This is the ceilometer module. Release Notes ------------- +** 5.0.0 ** +* Stable Juno release +* Added package_ensure parameters to various classes to control package installation +* Added ceilometer::policy to control policy.json +* Updated validate_re expressions for Puppet 3.7 +* Bumped stdlib dependency to >=4.0.0 +* Added manage_service parameters to various classes to control whether the service was managed, as well as added enabled parameters where not already present +* Added parameters to control whether to configure keystone users +* Added the ability to override the keystone service name in ceilometer::keystone::auth +* Migrated the ceilometer::db::mysql class to use openstacklib::db::mysql and deprecated the mysql_module parameter +* Fixed ceilometer-notification package name for RHEL +* Removed deprecation notices for sectionless ceilometer_config types for Juno release +* Added ability to hide secrets from puppet logs + +** 4.2.0 ** + +* Fixed dependency on nova-common package +* Added new class for extended logging options +* Fixed ssl parameter requirements for kombu and rabbit +* Fixed mysql_grant call +* Fixed ceilometer-collecter service relationships when service is disabled + + +** 4.1.0 ** + +* Added RabbitMQ SSL Support. +* Fixed dependency cycle bug. +* Fixed agent_notification_service_name. +* Changed default mysql charset to UTF8. +* Pinned major gems. + ** 4.0.0 ** * Stable Icehouse release. @@ -80,7 +111,6 @@ Release Notes * Fixed region name configuration. * Fixed ensure packages bug. * Added support for puppetlabs-mysql 2.2 and greater. -* Fixed MySQL grant call. * Introduced ceilometer::config to handle additional custom options. ** 3.1.1 ** @@ -126,3 +156,4 @@ Contact ------- techs@enovance.com +Ceilometer diff --git a/cinder/README.md b/cinder/README.md index 05d67681d..34d3a79f7 100644 --- a/cinder/README.md +++ b/cinder/README.md @@ -1,7 +1,7 @@ cinder ======= -4.0.0 - 2014.1.0 - Icehouse +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -178,6 +178,41 @@ Contributors Release Notes ------------- +**5.0.0** + +* Stable Juno release +* Added class to manage policy.json +* Changed the default value of the san_thin_provision parameter for eqlx +* Added database tuning parameters +* Made keystone user creation optional when creating a service +* Added ability to hide secrets from logs +* Added parameters for netapp and and cinder-api workers +* Corrected the package name for cinder backup +* Added support for the EMC VNX direct driver +* Migrated the mysql backend to use openstacklib::db::mysql +* Added support for availability zones + +**4.2.0** + +* Added parameters to set cinder volume driver +* Added class for extended logging options +* Added option to specify endpoint protocol +* Fixed cinder type path issues +* Added option to specify cinder volume path +* Fixed targetcli package dependency on target service +* Fixed os version fact comparison for RedHat-based operating systems + for specifying service provider +* Added option to configure os_region_name in the cinder config + +**4.1.0** + +* Added Cinder v2 endpoint support. +* Added SSL support for Cinder API. +* Added RabbitMQ SSL support. +* Moved default_volume_type to cinder::api +* Removed warnings for existing Cinder volumes. +* Pinned major gems. + **4.0.0** * Stable Icehouse release. diff --git a/glance/README.md b/glance/README.md index b79a172b7..a4bf1ccad 100644 --- a/glance/README.md +++ b/glance/README.md @@ -1,7 +1,7 @@ glance ======= -4.0.0 - 2014.1.0 - Icehouse +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -133,6 +133,38 @@ Contributors Release Notes ------------- +**5.0.0** + +* Stable Juno release +* Added ceilometer::policy to control policy.json +* Fixed bug in glance_image type +* Added parameter os_region_name to glance::api +* Added support for vSphere datastore backend +* Updated the calls to the glance command-line utility +* Added parameter swift_store_large_object_size to glance::backend::swift +* Bumped stdlib dependency to >=4.0.0 +* Added parameter command_options to glance::cache::cleaner and glance::cache::pruner +* Added parameter package_ensure to glance::backend::rbd +* Added parameter manage_service to various classes +* Added parameters to control whether to configure users +* Migrated the glance::db::mysql class to use openstacklib::db::mysql and deprecated the mysql_module parameter +* Added parameter registery_client_protocol to glance::api +* Fixed ssl parameter requirements for kombu and rabbit + +**4.2.0** + +* Added ability to hide secret type parameters from logs + +**4.1.0** + +* Added multiple rabbit hosts support. +* Added image_cache_dir parameter. +* Deprecated old SQL parameters. +* Fixed the Glance add_image parser for new client. +* Fixed values in get_glance_image_attrs. +* Fixed 'could not find user glance' bug. +* Pinned major gems. + **4.0.0** * Stable Icehouse release. diff --git a/glance/manifests/api.pp b/glance/manifests/api.pp index b033103b0..0b9c21532 100644 --- a/glance/manifests/api.pp +++ b/glance/manifests/api.pp @@ -290,11 +290,11 @@ # known_stores config if $known_stores { glance_api_config { - 'DEFAULT/known_stores': value => join($known_stores, ','); + 'glance_store/stores': value => join($known_stores, ','); } } else { glance_api_config { - 'DEFAULT/known_stores': ensure => absent; + 'glance_store/stores': ensure => absent; } } diff --git a/glance/manifests/backend/cinder.pp b/glance/manifests/backend/cinder.pp index adb680096..75507d7f5 100644 --- a/glance/manifests/backend/cinder.pp +++ b/glance/manifests/backend/cinder.pp @@ -71,7 +71,7 @@ 'DEFAULT/cinder_api_insecure': value => $cinder_api_insecure; 'DEFAULT/cinder_catalog_info': value => $cinder_catalog_info; 'DEFAULT/cinder_http_retries': value => $cinder_http_retries; - 'DEFAULT/default_store': value => 'cinder'; + 'glance_store/default_store': value => 'cinder'; } glance_cache_config { diff --git a/glance/manifests/backend/file.pp b/glance/manifests/backend/file.pp index 9c27719ba..0eb2dcd2b 100644 --- a/glance/manifests/backend/file.pp +++ b/glance/manifests/backend/file.pp @@ -9,11 +9,11 @@ ) inherits glance::api { glance_api_config { - 'DEFAULT/default_store': value => 'file'; - 'DEFAULT/filesystem_store_datadir': value => $filesystem_store_datadir; + 'glance_store/default_store': value => 'file'; + 'glance_store/filesystem_store_datadir': value => $filesystem_store_datadir; } glance_cache_config { - 'DEFAULT/filesystem_store_datadir': value => $filesystem_store_datadir; + 'glance_store/filesystem_store_datadir': value => $filesystem_store_datadir; } } diff --git a/glance/manifests/backend/rbd.pp b/glance/manifests/backend/rbd.pp index 9ff56de7c..a19324f4d 100644 --- a/glance/manifests/backend/rbd.pp +++ b/glance/manifests/backend/rbd.pp @@ -34,11 +34,11 @@ } glance_api_config { - 'DEFAULT/default_store': value => 'rbd'; 'DEFAULT/rbd_store_ceph_conf': value => $rbd_store_ceph_conf; 'DEFAULT/rbd_store_user': value => $rbd_store_user; 'DEFAULT/rbd_store_pool': value => $rbd_store_pool; 'DEFAULT/rbd_store_chunk_size': value => $rbd_store_chunk_size; + 'glance_store/default_store': value => 'rbd'; } package { 'python-ceph': diff --git a/glance/manifests/backend/swift.pp b/glance/manifests/backend/swift.pp index 883125785..4ce897dc1 100644 --- a/glance/manifests/backend/swift.pp +++ b/glance/manifests/backend/swift.pp @@ -26,12 +26,12 @@ ) { glance_api_config { - 'DEFAULT/default_store': value => 'swift'; - 'DEFAULT/swift_store_user': value => $swift_store_user; - 'DEFAULT/swift_store_key': value => $swift_store_key; - 'DEFAULT/swift_store_auth_address': value => $swift_store_auth_address; - 'DEFAULT/swift_store_container': value => $swift_store_container; - 'DEFAULT/swift_store_auth_version': value => $swift_store_auth_version; + 'glance_store/default_store': value => 'swift'; + 'glance_store/swift_store_user': value => $swift_store_user; + 'glance_store/swift_store_key': value => $swift_store_key; + 'glance_store/swift_store_auth_address': value => $swift_store_auth_address; + 'DEFAULT/swift_store_container': value => $swift_store_container; + 'DEFAULT/swift_store_auth_version': value => $swift_store_auth_version; 'DEFAULT/swift_store_create_container_on_put': value => $swift_store_create_container_on_put; 'DEFAULT/swift_store_large_object_size': @@ -39,11 +39,11 @@ } glance_cache_config { - 'DEFAULT/swift_store_user': value => $swift_store_user; - 'DEFAULT/swift_store_key': value => $swift_store_key; - 'DEFAULT/swift_store_auth_address': value => $swift_store_auth_address; - 'DEFAULT/swift_store_container': value => $swift_store_container; - 'DEFAULT/swift_store_auth_version': value => $swift_store_auth_version; + 'glance_store/swift_store_user': value => $swift_store_user; + 'glance_store/swift_store_key': value => $swift_store_key; + 'glance_store/swift_store_auth_address': value => $swift_store_auth_address; + 'DEFAULT/swift_store_container': value => $swift_store_container; + 'DEFAULT/swift_store_auth_version': value => $swift_store_auth_version; 'DEFAULT/swift_store_create_container_on_put': value => $swift_store_create_container_on_put; 'DEFAULT/swift_store_large_object_size': diff --git a/glance/spec/classes/glance_api_spec.rb b/glance/spec/classes/glance_api_spec.rb index 7cbc9946a..aa937c3e1 100644 --- a/glance/spec/classes/glance_api_spec.rb +++ b/glance/spec/classes/glance_api_spec.rb @@ -324,7 +324,7 @@ default_params end - it { should_not contain_glance_api_config('DEFAULT/known_stores').with_value('false') } + it { should_not contain_glance_api_config('glance_store/stores').with_value('false') } end describe 'with known_stores override' do @@ -334,7 +334,7 @@ }) end - it { should contain_glance_api_config('DEFAULT/known_stores').with_value("glance.store.filesystem.Store,glance.store.http.Store") } + it { should contain_glance_api_config('glance_store/stores').with_value("glance.store.filesystem.Store,glance.store.http.Store") } end describe 'with deprecated sql parameters' do diff --git a/glance/spec/classes/glance_backend_cinder_spec.rb b/glance/spec/classes/glance_backend_cinder_spec.rb index 55c82d526..bc4b43c21 100644 --- a/glance/spec/classes/glance_backend_cinder_spec.rb +++ b/glance/spec/classes/glance_backend_cinder_spec.rb @@ -31,7 +31,7 @@ context 'when default parameters' do it 'configures glance-api.conf' do - should contain_glance_api_config('DEFAULT/default_store').with_value('cinder') + should contain_glance_api_config('glance_store/default_store').with_value('cinder') should contain_glance_api_config('DEFAULT/cinder_api_insecure').with_value(false) should contain_glance_api_config('DEFAULT/cinder_catalog_info').with_value('volume:cinder:publicURL') should contain_glance_api_config('DEFAULT/cinder_http_retries').with_value('3') @@ -58,7 +58,7 @@ } end it 'configures glance-api.conf' do - should contain_glance_api_config('DEFAULT/default_store').with_value('cinder') + should contain_glance_api_config('glance_store/default_store').with_value('cinder') should contain_glance_api_config('DEFAULT/cinder_api_insecure').with_value(true) should contain_glance_api_config('DEFAULT/cinder_ca_certificates_file').with_value('/etc/ssh/ca.crt') should contain_glance_api_config('DEFAULT/cinder_catalog_info').with_value('volume:cinder:internalURL') diff --git a/glance/spec/classes/glance_backend_file_spec.rb b/glance/spec/classes/glance_backend_file_spec.rb index fac7fcf46..5a3b5c4e0 100644 --- a/glance/spec/classes/glance_backend_file_spec.rb +++ b/glance/spec/classes/glance_backend_file_spec.rb @@ -10,12 +10,12 @@ end it 'configures glance-api.conf' do - should contain_glance_api_config('DEFAULT/default_store').with_value('file') - should contain_glance_api_config('DEFAULT/filesystem_store_datadir').with_value('/var/lib/glance/images/') + should contain_glance_api_config('glance_store/default_store').with_value('file') + should contain_glance_api_config('glance_store/filesystem_store_datadir').with_value('/var/lib/glance/images/') end it 'configures glance-cache.conf' do - should contain_glance_cache_config('DEFAULT/filesystem_store_datadir').with_value('/var/lib/glance/images/') + should contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/var/lib/glance/images/') end describe 'when overriding datadir' do @@ -24,11 +24,11 @@ end it 'configures glance-api.conf' do - should contain_glance_api_config('DEFAULT/filesystem_store_datadir').with_value('/tmp/') + should contain_glance_api_config('glance_store/filesystem_store_datadir').with_value('/tmp/') end it 'configures glance-cache.conf' do - should contain_glance_cache_config('DEFAULT/filesystem_store_datadir').with_value('/tmp/') + should contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/tmp/') end end end diff --git a/glance/spec/classes/glance_backend_rbd_spec.rb b/glance/spec/classes/glance_backend_rbd_spec.rb index f78b61e83..d831304cf 100644 --- a/glance/spec/classes/glance_backend_rbd_spec.rb +++ b/glance/spec/classes/glance_backend_rbd_spec.rb @@ -14,7 +14,7 @@ } end - it { should contain_glance_api_config('DEFAULT/default_store').with_value('rbd') } + it { should contain_glance_api_config('glance_store/default_store').with_value('rbd') } it { should contain_glance_api_config('DEFAULT/rbd_store_pool').with_value('images') } it { should contain_glance_api_config('DEFAULT/rbd_store_ceph_conf').with_value('/etc/ceph/ceph.conf') } it { should contain_glance_api_config('DEFAULT/rbd_store_chunk_size').with_value('8') } diff --git a/glance/spec/classes/glance_backend_swift_spec.rb b/glance/spec/classes/glance_backend_swift_spec.rb index 0c5569a90..ddd946c9b 100644 --- a/glance/spec/classes/glance_backend_swift_spec.rb +++ b/glance/spec/classes/glance_backend_swift_spec.rb @@ -21,22 +21,22 @@ describe 'when default parameters' do it 'configures glance-api.conf' do - should contain_glance_api_config('DEFAULT/default_store').with_value('swift') - should contain_glance_api_config('DEFAULT/swift_store_key').with_value('key') - should contain_glance_api_config('DEFAULT/swift_store_user').with_value('user') + should contain_glance_api_config('glance_store/default_store').with_value('swift') + should contain_glance_api_config('glance_store/swift_store_key').with_value('key') + should contain_glance_api_config('glance_store/swift_store_user').with_value('user') should contain_glance_api_config('DEFAULT/swift_store_auth_version').with_value('2') should contain_glance_api_config('DEFAULT/swift_store_large_object_size').with_value('5120') - should contain_glance_api_config('DEFAULT/swift_store_auth_address').with_value('127.0.0.1:5000/v2.0/') + should contain_glance_api_config('glance_store/swift_store_auth_address').with_value('127.0.0.1:5000/v2.0/') should contain_glance_api_config('DEFAULT/swift_store_container').with_value('glance') should contain_glance_api_config('DEFAULT/swift_store_create_container_on_put').with_value(false) end it 'configures glance-cache.conf' do - should contain_glance_cache_config('DEFAULT/swift_store_key').with_value('key') - should contain_glance_cache_config('DEFAULT/swift_store_user').with_value('user') + should contain_glance_cache_config('glance_store/swift_store_key').with_value('key') + should contain_glance_cache_config('glance_store/swift_store_user').with_value('user') should contain_glance_cache_config('DEFAULT/swift_store_auth_version').with_value('2') should contain_glance_cache_config('DEFAULT/swift_store_large_object_size').with_value('5120') - should contain_glance_cache_config('DEFAULT/swift_store_auth_address').with_value('127.0.0.1:5000/v2.0/') + should contain_glance_cache_config('glance_store/swift_store_auth_address').with_value('127.0.0.1:5000/v2.0/') should contain_glance_cache_config('DEFAULT/swift_store_container').with_value('glance') should contain_glance_cache_config('DEFAULT/swift_store_create_container_on_put').with_value(false) end @@ -60,7 +60,7 @@ should contain_glance_api_config('DEFAULT/swift_store_create_container_on_put').with_value(true) should contain_glance_api_config('DEFAULT/swift_store_auth_version').with_value('1') should contain_glance_api_config('DEFAULT/swift_store_large_object_size').with_value('100') - should contain_glance_api_config('DEFAULT/swift_store_auth_address').with_value('127.0.0.2:8080/v1.0/') + should contain_glance_api_config('glance_store/swift_store_auth_address').with_value('127.0.0.2:8080/v1.0/') end it 'configures glance-cache.conf' do @@ -68,7 +68,7 @@ should contain_glance_cache_config('DEFAULT/swift_store_create_container_on_put').with_value(true) should contain_glance_cache_config('DEFAULT/swift_store_auth_version').with_value('1') should contain_glance_cache_config('DEFAULT/swift_store_large_object_size').with_value('100') - should contain_glance_cache_config('DEFAULT/swift_store_auth_address').with_value('127.0.0.2:8080/v1.0/') + should contain_glance_cache_config('glance_store/swift_store_auth_address').with_value('127.0.0.2:8080/v1.0/') end end end diff --git a/heat/README.md b/heat/README.md index 5e2d02a62..6064ffed2 100644 --- a/heat/README.md +++ b/heat/README.md @@ -1,7 +1,7 @@ puppet-heat ============= -4.0.0 - 2014.1.0 - Icehouse +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -68,6 +68,29 @@ Contributors Release Notes ------------- +**5.0.0** + +* Stable Juno release +* Added heat::policy to control policy.json +* Deprecated the sql_connection parameter for database_connection parameter +* Adds parameters to configure deferred authentication method in heat::engine in accordance with new Juno defaults +* Bumped stdlib dependency to >=4.0.0 +* Added parameters to control whether to configure users +* Added manage_service parameters to various classes to control whether the service was managed, as well as added enabled parameters where not already present +* Added the ability to override the keystone service name in keystone::auth +* Migrated the heat::db::mysql class to use openstacklib::db::mysql and deprecated the mysql_module parameter + +**4.2.0** + +* Added ability to hide secret type parameters from logs +* Fixed database resource relationships +* Added class for extended logging options +* Fixed ssl parameter requirements when using kombu and rabbit + +**4.1.0** + +* Added SSL endpoint support. + **4.0.0** * Stable Icehouse release. diff --git a/heat/manifests/api-cfn.pp b/heat/manifests/api-cfn.pp deleted file mode 100644 index 9ba359aac..000000000 --- a/heat/manifests/api-cfn.pp +++ /dev/null @@ -1,69 +0,0 @@ -# == Class: heat::api-cfn -# -# WARNING: Deprecated class. Use heat::api_cfn instead ! -# Installs & configure the heat CloudFormation API service -# -# === Parameters -# [*enabled*] -# (Optional) Should the service be enabled. -# Defaults to 'true'. -# -# [*keystone_host*] -# -# [*keystone_port*] -# -# [*keystone_protocol*] -# -# [*keystone_user*] -# -# [*keystone_tenant*] -# -# [*keystone_password*] -# -# [*keystone_ec2_uri*] -# -# [*auth_uri*] -# -# [*bind_host*] -# -# [*bind_port*] -# -# [*verbose*] -# -# [*debug*] -# -# -class heat::api-cfn ( - $enabled = true, - $keystone_host = '127.0.0.1', - $keystone_port = '35357', - $keystone_protocol = 'http', - $keystone_user = 'heat', - $keystone_tenant = 'services', - $keystone_password = false, - $keystone_ec2_uri = 'http://127.0.0.1:5000/v2.0/ec2tokens', - $auth_uri = 'http://127.0.0.1:5000/v2.0', - $bind_host = '0.0.0.0', - $bind_port = '8000', - $verbose = false, - $debug = false, -) { - - warning('heat::api-cfn is deprecated. Use heat::api_cfn instead.') - - class { 'heat::api_cfn': - enabled => $enabled, - keystone_host => $keystone_host, - keystone_port => $keystone_port, - keystone_protocol => $keystone_protocol, - keystone_user => $keystone_user, - keystone_tenant => $keystone_tenant, - keystone_password => $keystone_password, - keystone_ec2_uri => $keystone_ec2_uri, - auth_uri => $auth_uri, - bind_host => $bind_host, - bind_port => $bind_port, - verbose => $verbose, - debug => $debug, - } -} diff --git a/heat/manifests/api-cloudwatch.pp b/heat/manifests/api-cloudwatch.pp deleted file mode 100644 index 224481133..000000000 --- a/heat/manifests/api-cloudwatch.pp +++ /dev/null @@ -1,69 +0,0 @@ -# == Class: heat::api-cloudwatch -# -# WARNING: Deprecated class. Use heat::api_cloudwatch instead ! -# Installs & configure the heat CloudWatch API service -# -# === Parameters -# [*enabled*] -# (Optional) Should the service be enabled. -# Defaults to 'true'. -# -# [*keystone_host*] -# -# [*keystone_port*] -# -# [*keystone_protocol*] -# -# [*keystone_user*] -# -# [*keystone_tenant*] -# -# [*keystone_password*] -# -# [*keystone_ec2_uri*] -# -# [*auth_uri*] -# -# [*bind_host*] -# -# [*bind_port*] -# -# [*verbose*] -# -# [*debug*] -# -# -class heat::api-cloudwatch ( - $enabled = true, - $keystone_host = '127.0.0.1', - $keystone_port = '35357', - $keystone_protocol = 'http', - $keystone_user = 'heat', - $keystone_tenant = 'services', - $keystone_password = false, - $keystone_ec2_uri = 'http://127.0.0.1:5000/v2.0/ec2tokens', - $auth_uri = 'http://127.0.0.1:5000/v2.0', - $bind_host = '0.0.0.0', - $bind_port = '8003', - $verbose = false, - $debug = false, -) { - - warning('heat::api-cloudwatch is deprecated. Use heat::api_cloudwatch instead.') - - class { 'heat::api_cloudwatch': - enabled => $enabled, - keystone_host => $keystone_host, - keystone_port => $keystone_port, - keystone_protocol => $keystone_protocol, - keystone_user => $keystone_user, - keystone_tenant => $keystone_tenant, - keystone_password => $keystone_password, - keystone_ec2_uri => $keystone_ec2_uri, - auth_uri => $auth_uri, - bind_host => $bind_host, - bind_port => $bind_port, - verbose => $verbose, - debug => $debug, - } -} diff --git a/horizon/manifests/wsgi/apache.pp b/horizon/manifests/wsgi/apache.pp index 935530090..1c51b13b7 100644 --- a/horizon/manifests/wsgi/apache.pp +++ b/horizon/manifests/wsgi/apache.pp @@ -142,8 +142,7 @@ require => [ File[$::horizon::params::logdir], Package['horizon'] ], } - $default_vhost_conf = { - ip => $bind_address, + $default_vhost_conf_no_ip = { servername => $servername, serveraliases => os_any2array($final_server_aliases), docroot => '/var/www/', @@ -170,6 +169,16 @@ redirectmatch_status => 'permanent', } + # Only add the 'ip' element to the $default_vhost_conf hash if it was explicitly + # specified in the instantiation of the class. This is because ip => undef gets + # changed to ip => '' via the Puppet function API when ensure_resource is called. + # See https://bugs.launchpad.net/puppet-horizon/+bug/1371345 + if $bind_address { + $default_vhost_conf = merge($default_vhost_conf_no_ip, { ip => $bind_address }) + } else { + $default_vhost_conf = $default_vhost_conf_no_ip + } + ensure_resource('apache::vhost', $vhost_conf_name, merge ($default_vhost_conf, $extra_params, { redirectmatch_regexp => "${redirect_match} ${redirect_url}", })) diff --git a/neutron/README.md b/neutron/README.md index 5b574af1f..7fedc8c15 100644 --- a/neutron/README.md +++ b/neutron/README.md @@ -1,7 +1,7 @@ neutron =================================== -4.0.0 - 2014.1.0 - Icehouse +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -123,6 +123,68 @@ The github [contributor graph](https://github.com/stackforge/puppet-neutron/grap Release Notes ------------- +**5.0.0** + +* Stable Juno release +* Added neutron::policy to control policy.json +* Added parameter allow_automatic_l3agent_failover to neutron::agents::l3 +* Added parameter metadata_memory_cache_ttl to neutron::agents::metadata +* Added l3_ext as a provider_network_type property for neutron_network type +* Changed user_group parameter in neutron::agents::lbaas to have different defaults depending on operating system +* Changed openswan package to libreswan for RHEL 7 for vpnaas +* Ensured neutron package was installed before nova_admin_tenant_id_setter is called +* Added api_extensions_path parameter to neutron class +* Added database tuning parameters +* Changed management of file lines in /etc/default/neutron-server only for Ubuntu +* Add parameters to enable DVR and HA support in neutron::agents::l3 for Juno +* Fixed meaning of manage_service parameter in neutron::agents::ovs +* Made keystone user creation optional when creating a service +* Fixed the enable_dhcp property of neutron_subnet +* Added the ability to override the keystone service name in neutron::keystone::auth +* Fixed bug in parsing allocation pools in neutron_subnet type +* Added relationship to refresh neutron-server when nova_admin_tenant_id_setter changes +* Migrated the neutron::db::mysql class to use openstacklib::db::mysql and deprecated the mysql_module parameter +* Fixed the relationship between the HA proxy package and the neutron-lbaas-agent package +* Added kombu_reconnect_delay parameter to neutron class +* Fixed plugin.ini error when cisco class is used +* Fixed relationship between vs_pridge types and the neutron-plugin-ovs service +* Added neutron::agents::n1kv_vem to deploy N1KV VEM +* Added SSL support for nova_admin_tenant_id_setter +* Fixed relationship between neutron-server package and neutron_plugin_ml2 types +* Stopped puppet from trying to manage the ovs cleanup service +* Deprecated the network_device_mtu parameter in neutron::agents::l3 and moved it to the neutron class +* Added vpnaas_agent_package parameter to neutron::services::fwaas to install the vpnaas agent package + +**4.3.0** + +* Added parameter to specify number of RPC workers to spawn +* Added ability to manage Neutron ML2 plugin +* Fixed ssl parameter requirements when using kombu and rabbit +* Added ability to hide secret neutron configs from logs and fixed password leaking +* Added neutron plugin config file specification in neutron-server config +* Fixed installation of ML2 plugin on Ubuntu +* Added support for Cisco ML2 Mech Driver +* Fixed quotas parameters in neutron config +* Added parameter to configure dhcp_agent_notification in neutron config +* Added class for linuxbridge support +* Fixed neutron-server restart +* Undeprecated enable_security_group parameter + +**4.2.0** + +* Added ml2/ovs support. +* Added multi-region support. +* Set default metadata backlog to 4096. +* Fixed neutron-server refresh bug. + +**4.1.0** + +* Added parameter to set veth MTU. +* Added RabbitMQ SSL support. +* Added support for '' as a valid value for gateway_ip. +* Fixed potential OVS resource duplication. +* Pinned major gems. + **4.0.0** * Stable Icehouse release. diff --git a/neutron/lib/puppet/type/neutron_network.rb b/neutron/lib/puppet/type/neutron_network.rb index d151e5c6c..f0d8bf560 100644 --- a/neutron/lib/puppet/type/neutron_network.rb +++ b/neutron/lib/puppet/type/neutron_network.rb @@ -40,7 +40,7 @@ newproperty(:provider_network_type) do desc 'The physical mechanism by which the virtual network is realized.' - newvalues(:flat, :vlan, :local, :gre) + newvalues(:flat, :vlan, :local, :gre, :l3_ext) end newproperty(:provider_physical_network) do diff --git a/nova/README.md b/nova/README.md index 987d7cb8e..777b1e16a 100644 --- a/nova/README.md +++ b/nova/README.md @@ -1,7 +1,7 @@ nova ==== -4.0.0 - 2014.1.0 - Icehouse +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -90,6 +90,58 @@ Contributors Release Notes ------------- +**5.0.0** + +* Stable Juno release +* Added tags to all nova packages +* Added parameter dhcp_domain to nova class +* Updated the [glance] and [neutron] section parameters for Juno +* Fixed potential duplicate declaration errors for sysctl::value in nova::network +* Fixed dependency cycle in nova::migration::libvirt +* Updated the libvirtd init script path for Debian +* Added parameters for nova service validation to nova::api +* Added nova::policy to control policy.json +* Fixed the rabbit_virtual_host default in nova::cells +* Bumped stdlib dependency to >=4.0.0 +* Added force_raw_images parameter to nova::compute class +* Replaced usage of the keyword type with the string 'type' since type is a reserved keyword in puppet 3.7 +* Added parameter ec2_workers to nova::api +* Fixed bug in usage of --vlan versus --vlan_start in nova_network provider +* Added parameter rabbit_ha_queues to nova class +* Added parameter pool to nova_floating type +* Added parameters to control whether to configure keystone users +* Added nova::cron::archive_deleted_rows class to create a crontab for archiving deleted database rows +* Changed the keystone_service to only be configured if the endpoint is to be configured +* Added parameter keystone_ec2_url to nova::api +* Added the ability to override the keystone service name in ceilometer::keystone::auth +* Removed dynamic scoping of File resources in nova class +* Add parameter workers to in nova::conductor and deprecate conductor_workers in nova::api +* Update nova quota parameters for Juno +* Migrated the ceilometer::db::mysql class to use openstacklib::db::mysql and deprecated the mysql_module parameter +* Removed deprecation notice for sectionless nova_config names +* Added parameter vnc_keymap in nova::compute +* Added parameter osapi_v3 to nova::api + +**4.2.0** + +* Added option to configure libvirt service name via class parameters +* Added support for multiple SSL APIs +* Added option to configure os_region_name in the nova config +* Corrected resource dependencies on the nova user +* Fixed os version fact comparison for RedHat-based operating systems + for specifying service provider +* Fixed ssl parameter requirements when using kombu and rabbit +* Added class for extended logging options + +**4.1.0** + +* Added API v3 endpoint support. +* Added configuration of rbd keyring name. +* Added support for run Nova SSL endpoints. +* Updated RabbitMQ dependency. +* Updated mysql charset to UTF8. +* Pinned major gems. + **4.0.0** * Stable Icehouse release. diff --git a/nova/manifests/api.pp b/nova/manifests/api.pp index d3c055665..fb8b77247 100644 --- a/nova/manifests/api.pp +++ b/nova/manifests/api.pp @@ -120,6 +120,26 @@ # (optional) Enable or not Nova API v3 # Defaults to false # +# [*validate*] +# (optional) Whether to validate the service is working after any service refreshes +# Defaults to false +# +# [*validation_options*] +# (optional) Service validation options +# Should be a hash of options defined in openstacklib::service_validation +# If empty, defaults values are taken from openstacklib function. +# Default command list nova flavors. +# Require validate set at True. +# Example: +# nova::api::validation_options: +# nova-api: +# command: check_nova.py +# path: /usr/bin:/bin:/usr/sbin:/sbin +# provider: shell +# tries: 5 +# try_sleep: 10 +# Defaults to {} +# class nova::api( $admin_password, $enabled = false, @@ -149,6 +169,8 @@ $ratelimits = undef, $ratelimits_factory = 'nova.api.openstack.compute.limits:RateLimitingMiddleware.factory', + $validate = false, + $validation_options = {}, # DEPRECATED PARAMETER $workers = undef, $conductor_workers = undef, @@ -209,22 +231,23 @@ if ($neutron_metadata_proxy_shared_secret){ nova_config { - 'DEFAULT/service_neutron_metadata_proxy': value => true; - 'DEFAULT/neutron_metadata_proxy_shared_secret': + 'neutron/service_metadata_proxy': value => true; + 'neutron/metadata_proxy_shared_secret': value => $neutron_metadata_proxy_shared_secret; } } else { nova_config { - 'DEFAULT/service_neutron_metadata_proxy': value => false; - 'DEFAULT/neutron_metadata_proxy_shared_secret': ensure => absent; + 'neutron/service_metadata_proxy': value => false; + 'neutron/metadata_proxy_shared_secret': ensure => absent; } } if $auth_uri { - nova_config { 'keystone_authtoken/auth_uri': value => $auth_uri; } + $auth_uri_real = $auth_uri } else { - nova_config { 'keystone_authtoken/auth_uri': value => "${auth_protocol}://${auth_host}:5000/"; } + $auth_uri_real = "${auth_protocol}://${auth_host}:5000/" } + nova_config { 'keystone_authtoken/auth_uri': value => $auth_uri_real; } if $auth_version { nova_config { 'keystone_authtoken/auth_version': value => $auth_version; } @@ -312,4 +335,14 @@ 'filter:authtoken/auth_admin_prefix': ensure => absent; } + if $validate { + $defaults = { + 'nova-api' => { + 'command' => "nova --os-auth-url ${auth_uri_real} --os-tenant-name ${admin_tenant_name} --os-username ${admin_user} --os-password ${admin_password} flavor-list", + } + } + $validation_options_hash = merge ($defaults, $validation_options) + create_resources('openstacklib::service_validation', $validation_options_hash, {'subscribe' => 'Service[nova-api]'}) + } + } diff --git a/nova/manifests/client.pp b/nova/manifests/client.pp index d9833d8de..35748c095 100644 --- a/nova/manifests/client.pp +++ b/nova/manifests/client.pp @@ -14,6 +14,7 @@ package { 'python-novaclient': ensure => $ensure, + tag => ['openstack', 'nova'], } } diff --git a/nova/manifests/compute/libvirt.pp b/nova/manifests/compute/libvirt.pp index c853c740a..c27bb4c68 100644 --- a/nova/manifests/compute/libvirt.pp +++ b/nova/manifests/compute/libvirt.pp @@ -110,6 +110,7 @@ ensure => present, before => Package['nova-compute'], require => Package['nova-common'], + tag => ['openstack', 'nova'], } } diff --git a/nova/manifests/compute/neutron.pp b/nova/manifests/compute/neutron.pp index 59623b00a..91ee91cfc 100644 --- a/nova/manifests/compute/neutron.pp +++ b/nova/manifests/compute/neutron.pp @@ -10,9 +10,14 @@ # (optional) The libvirt VIF driver to configure the VIFs. # Defaults to 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver'. # - +# [*force_snat_range*] +# (optional) Force SNAT rule to specified network for nova-network +# Default to 0.0.0.0/0 +# Due to architecture constraints in nova_config, it's not possible to setup +# more than one SNAT rule though initial parameter is MultiStrOpt class nova::compute::neutron ( - $libvirt_vif_driver = 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver' + $libvirt_vif_driver = 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver', + $force_snat_range = '0.0.0.0/0', ) { if $libvirt_vif_driver == 'nova.virt.libvirt.vif.LibvirtOpenVswitchDriver' { @@ -22,4 +27,21 @@ nova_config { 'libvirt/vif_driver': value => $libvirt_vif_driver; } + + if $libvirt_vif_driver == 'nova.virt.libvirt.vif.LibvirtGenericVIFDriver' and $force_snat_range { + # Validate ip and mask for force_snat_range + $force_snat_range_array = split($force_snat_range, '/') + if is_ip_address($force_snat_range_array[0]) and is_integer($force_snat_range_array[1]) { + nova_config { + 'DEFAULT/force_snat_range': value => $force_snat_range; + } + } else { + fail('force_snat_range should be IPv4 or IPv6 CIDR notation') + } + } else { + nova_config { + 'DEFAULT/force_snat_range': ensure => absent; + } + } + } diff --git a/nova/manifests/generic_service.pp b/nova/manifests/generic_service.pp index 2ead9bda5..3328ba5f7 100644 --- a/nova/manifests/generic_service.pp +++ b/nova/manifests/generic_service.pp @@ -37,6 +37,7 @@ ensure => $ensure_package, name => $package_name, notify => Service[$nova_title], + tag => ['openstack', 'nova'], } } } diff --git a/nova/manifests/init.pp b/nova/manifests/init.pp index c97a2e312..85f7b6129 100644 --- a/nova/manifests/init.pp +++ b/nova/manifests/init.pp @@ -473,13 +473,15 @@ package { 'python-nova': ensure => $ensure_package, - require => Package['python-greenlet'] + require => Package['python-greenlet'], + tag => ['openstack', 'nova'], } package { 'nova-common': ensure => $ensure_package, name => $::nova::params::common_package_name, - require => [Package['python-nova'], Anchor['nova-start']] + require => [Package['python-nova'], Anchor['nova-start']], + tag => ['openstack', 'nova'], } file { '/etc/nova/nova.conf': diff --git a/nova/manifests/network/neutron.pp b/nova/manifests/network/neutron.pp index 3e631b201..bf95e900b 100644 --- a/nova/manifests/network/neutron.pp +++ b/nova/manifests/network/neutron.pp @@ -107,29 +107,29 @@ ) { nova_config { - 'DEFAULT/neutron_auth_strategy': value => $neutron_auth_strategy; - 'DEFAULT/network_api_class': value => 'nova.network.neutronv2.api.API'; - 'DEFAULT/neutron_url': value => $neutron_url; - 'DEFAULT/neutron_url_timeout': value => $neutron_url_timeout; - 'DEFAULT/neutron_admin_tenant_name': value => $neutron_admin_tenant_name; - 'DEFAULT/neutron_default_tenant_id': value => $neutron_default_tenant_id; - 'DEFAULT/neutron_region_name': value => $neutron_region_name; - 'DEFAULT/neutron_admin_username': value => $neutron_admin_username; - 'DEFAULT/neutron_admin_password': value => $neutron_admin_password, secret => true; - 'DEFAULT/neutron_admin_auth_url': value => $neutron_admin_auth_url; - 'DEFAULT/neutron_ovs_bridge': value => $neutron_ovs_bridge; - 'DEFAULT/neutron_extension_sync_interval': value => $neutron_extension_sync_interval; - 'DEFAULT/security_group_api': value => $security_group_api; - 'DEFAULT/firewall_driver': value => $firewall_driver; - 'DEFAULT/vif_plugging_is_fatal': value => $vif_plugging_is_fatal; - 'DEFAULT/vif_plugging_timeout': value => $vif_plugging_timeout; - 'DEFAULT/dhcp_domain': value => $dhcp_domain; + 'DEFAULT/dhcp_domain': value => $dhcp_domain; + 'DEFAULT/firewall_driver': value => $firewall_driver; + 'DEFAULT/network_api_class': value => 'nova.network.neutronv2.api.API'; + 'DEFAULT/security_group_api': value => $security_group_api; + 'DEFAULT/vif_plugging_is_fatal': value => $vif_plugging_is_fatal; + 'DEFAULT/vif_plugging_timeout': value => $vif_plugging_timeout; + 'neutron/auth_strategy': value => $neutron_auth_strategy; + 'neutron/url': value => $neutron_url; + 'neutron/url_timeout': value => $neutron_url_timeout; + 'neutron/admin_tenant_name': value => $neutron_admin_tenant_name; + 'neutron/default_tenant_id': value => $neutron_default_tenant_id; + 'neutron/region_name': value => $neutron_region_name; + 'neutron/admin_username': value => $neutron_admin_username; + 'neutron/admin_password': value => $neutron_admin_password, secret => true; + 'neutron/admin_auth_url': value => $neutron_admin_auth_url; + 'neutron/ovs_bridge': value => $neutron_ovs_bridge; + 'neutron/extension_sync_interval': value => $neutron_extension_sync_interval; } if ! $neutron_ca_certificates_file { - nova_config { 'DEFAULT/neutron_ca_certificates_file': ensure => absent } + nova_config { 'neutron/ca_certificates_file': ensure => absent } } else { - nova_config { 'DEFAULT/neutron_ca_certificates_file': value => $neutron_ca_certificates_file } + nova_config { 'neutron/ca_certificates_file': value => $neutron_ca_certificates_file } } } diff --git a/nova/spec/classes/nova_api_spec.rb b/nova/spec/classes/nova_api_spec.rb index 54f937ee6..532ad95e8 100644 --- a/nova/spec/classes/nova_api_spec.rb +++ b/nova/spec/classes/nova_api_spec.rb @@ -28,8 +28,10 @@ should contain_package('nova-api').with( :name => platform_params[:nova_api_package], :ensure => 'present', - :notify => 'Service[nova-api]' + :notify => 'Service[nova-api]', + :tag => ['openstack', 'nova'] ) + should_not contain_exec('validate_nova_api') end it 'configures keystone_authtoken middleware' do @@ -68,8 +70,8 @@ end it 'unconfigures neutron_metadata proxy' do - should contain_nova_config('DEFAULT/service_neutron_metadata_proxy').with(:value => false) - should contain_nova_config('DEFAULT/neutron_metadata_proxy_shared_secret').with(:ensure => 'absent') + should contain_nova_config('neutron/service_metadata_proxy').with(:value => false) + should contain_nova_config('neutron/metadata_proxy_shared_secret').with(:ensure => 'absent') end end @@ -114,7 +116,8 @@ it 'installs nova-api package and service' do should contain_package('nova-api').with( :name => platform_params[:nova_api_package], - :ensure => '2012.1-2' + :ensure => '2012.1-2', + :tag => ['openstack', 'nova'] ) should contain_service('nova-api').with( :name => platform_params[:nova_api_service], @@ -155,8 +158,8 @@ should contain_nova_config('DEFAULT/use_forwarded_for').with('value' => false) should contain_nova_config('DEFAULT/osapi_compute_workers').with('value' => '1') should contain_nova_config('DEFAULT/metadata_workers').with('value' => '2') - should contain_nova_config('DEFAULT/service_neutron_metadata_proxy').with('value' => true) - should contain_nova_config('DEFAULT/neutron_metadata_proxy_shared_secret').with('value' => 'secrete') + should contain_nova_config('neutron/service_metadata_proxy').with('value' => true) + should contain_nova_config('neutron/metadata_proxy_shared_secret').with('value' => 'secrete') should contain_nova_config('DEFAULT/keystone_ec2_url').with('value' => 'https://example.com:5000/v2.0/ec2tokens') end @@ -182,6 +185,45 @@ end end + context 'while validating the service with default command' do + before do + params.merge!({ + :validate => true, + }) + end + it { should contain_exec('execute nova-api validation').with( + :path => '/usr/bin:/bin:/usr/sbin:/sbin', + :provider => 'shell', + :tries => '10', + :try_sleep => '2', + :command => 'nova --os-auth-url http://127.0.0.1:5000/ --os-tenant-name services --os-username nova --os-password passw0rd flavor-list', + )} + + it { should contain_anchor('create nova-api anchor').with( + :require => 'Exec[execute nova-api validation]', + )} + end + + context 'while validating the service with custom command' do + before do + params.merge!({ + :validate => true, + :validation_options => { 'nova-api' => { 'command' => 'my-script' } } + }) + end + it { should contain_exec('execute nova-api validation').with( + :path => '/usr/bin:/bin:/usr/sbin:/sbin', + :provider => 'shell', + :tries => '10', + :try_sleep => '2', + :command => 'my-script', + )} + + it { should contain_anchor('create nova-api anchor').with( + :require => 'Exec[execute nova-api validation]', + )} + end + context 'while not managing service state' do before do params.merge!({ diff --git a/nova/spec/classes/nova_cells_spec.rb b/nova/spec/classes/nova_cells_spec.rb index 626264af5..45328650f 100644 --- a/nova/spec/classes/nova_cells_spec.rb +++ b/nova/spec/classes/nova_cells_spec.rb @@ -60,7 +60,8 @@ it 'installs nova-cells package' do should contain_package('nova-cells').with( :ensure => 'present', - :name => platform_params[:cells_package_name] + :name => platform_params[:cells_package_name], + :tag => ['openstack', 'nova'] ) end diff --git a/nova/spec/classes/nova_client_spec.rb b/nova/spec/classes/nova_client_spec.rb index 2057e2c01..4caae33aa 100644 --- a/nova/spec/classes/nova_client_spec.rb +++ b/nova/spec/classes/nova_client_spec.rb @@ -3,7 +3,12 @@ describe 'nova::client' do context 'with default parameters' do - it { should contain_package('python-novaclient').with_ensure('present') } + it { + should contain_package('python-novaclient').with( + :ensure => 'present', + :tag => ['openstack', 'nova'] + ) + } end context 'with ensure parameter provided' do diff --git a/nova/spec/classes/nova_compute_libvirt_spec.rb b/nova/spec/classes/nova_compute_libvirt_spec.rb index bdf7362d7..2ceb3983e 100644 --- a/nova/spec/classes/nova_compute_libvirt_spec.rb +++ b/nova/spec/classes/nova_compute_libvirt_spec.rb @@ -16,7 +16,8 @@ it { should contain_package('nova-compute-kvm').with( :ensure => 'present', - :before => 'Package[nova-compute]' + :before => 'Package[nova-compute]', + :tag => ['openstack', 'nova'] ) } it { should contain_package('libvirt').with( diff --git a/nova/spec/classes/nova_compute_neutron_spec.rb b/nova/spec/classes/nova_compute_neutron_spec.rb index b67c9fc4b..030968fa8 100644 --- a/nova/spec/classes/nova_compute_neutron_spec.rb +++ b/nova/spec/classes/nova_compute_neutron_spec.rb @@ -1,13 +1,17 @@ require 'spec_helper' describe 'nova::compute::neutron' do - it { should contain_nova_config('libvirt/vif_driver').with_value('nova.virt.libvirt.vif.LibvirtGenericVIFDriver')} + context 'with default parameters' do + it { should contain_nova_config('libvirt/vif_driver').with_value('nova.virt.libvirt.vif.LibvirtGenericVIFDriver')} + it { should contain_nova_config('DEFAULT/force_snat_range').with(:value => '0.0.0.0/0') } + end context 'when overriding params' do let :params do {:libvirt_vif_driver => 'foo' } end it { should contain_nova_config('libvirt/vif_driver').with_value('foo')} + it { should contain_nova_config('DEFAULT/force_snat_range').with_ensure(:absent) } end context 'when overriding with a removed libvirt_vif_driver param' do @@ -19,4 +23,36 @@ end end + context 'with force_snat_range parameter set to false' do + let :params do + { :force_snat_range => false, } + end + it { should contain_nova_config('DEFAULT/force_snat_range').with_ensure('absent') } + end + + context 'with force_snat_range parameter set to 10.0.0.0/24' do + let :params do + { :force_snat_range => '10.0.0.0/24', } + end + + it { should contain_nova_config('DEFAULT/force_snat_range').with_value('10.0.0.0/24') } + end + + context 'with force_snat_range parameter set to fe80::/64' do + let :params do + { :force_snat_range => 'fe80::/64', } + end + + it { should contain_nova_config('DEFAULT/force_snat_range').with_value('fe80::/64') } + end + + context 'with force_snat_range parameter set ip without mask' do + let :params do + { :force_snat_range => '10.0.0.0', } + end + + it { expect { should contain_nova_config('DEFAULT/force_snat_range') }.to \ + raise_error(Puppet::Error, /force_snat_range should be IPv4 or IPv6/) } + end + end diff --git a/nova/spec/classes/nova_compute_spec.rb b/nova/spec/classes/nova_compute_spec.rb index c1fc79d57..253f65506 100644 --- a/nova/spec/classes/nova_compute_spec.rb +++ b/nova/spec/classes/nova_compute_spec.rb @@ -18,7 +18,8 @@ :enable => false }) should contain_package('nova-compute').with({ - :name => platform_params[:nova_compute_package] + :name => platform_params[:nova_compute_package], + :tag => ['openstack', 'nova'] }) end @@ -55,7 +56,8 @@ }) should contain_package('nova-compute').with({ :name => platform_params[:nova_compute_package], - :ensure => '2012.1-2' + :ensure => '2012.1-2', + :tag => ['openstack', 'nova'] }) end diff --git a/nova/spec/classes/nova_init_spec.rb b/nova/spec/classes/nova_init_spec.rb index bc7ea192b..dad359bc5 100644 --- a/nova/spec/classes/nova_init_spec.rb +++ b/nova/spec/classes/nova_init_spec.rb @@ -18,7 +18,8 @@ ) should contain_package('nova-common').with( :name => platform_params[:nova_common_package], - :ensure => 'present' + :ensure => 'present', + :tag => ['openstack', 'nova'] ) end diff --git a/nova/spec/classes/nova_network_neutron_spec.rb b/nova/spec/classes/nova_network_neutron_spec.rb index af12aaf2e..e5fcd9dfd 100644 --- a/nova/spec/classes/nova_network_neutron_spec.rb +++ b/nova/spec/classes/nova_network_neutron_spec.rb @@ -28,23 +28,23 @@ context 'with required parameters' do it 'configures neutron endpoint in nova.conf' do - should contain_nova_config('DEFAULT/neutron_admin_password').with_value(params[:neutron_admin_password]).with_secret(true) + should contain_nova_config('neutron/admin_password').with_value(params[:neutron_admin_password]).with_secret(true) should contain_nova_config('DEFAULT/network_api_class').with_value('nova.network.neutronv2.api.API') - should contain_nova_config('DEFAULT/neutron_auth_strategy').with_value(default_params[:neutron_auth_strategy]) - should contain_nova_config('DEFAULT/neutron_url').with_value(default_params[:neutron_url]) - should contain_nova_config('DEFAULT/neutron_url_timeout').with_value(default_params[:neutron_url_timeout]) - should contain_nova_config('DEFAULT/neutron_admin_tenant_name').with_value(default_params[:neutron_admin_tenant_name]) - should contain_nova_config('DEFAULT/neutron_default_tenant_id').with_value(default_params[:neutron_default_tenant_id]) - should contain_nova_config('DEFAULT/neutron_region_name').with_value(default_params[:neutron_region_name]) - should contain_nova_config('DEFAULT/neutron_admin_username').with_value(default_params[:neutron_admin_username]) - should contain_nova_config('DEFAULT/neutron_admin_auth_url').with_value(default_params[:neutron_admin_auth_url]) - should contain_nova_config('DEFAULT/neutron_extension_sync_interval').with_value(default_params[:neutron_extension_sync_interval]) should contain_nova_config('DEFAULT/dhcp_domain').with_value(default_params[:dhcp_domain]) + should contain_nova_config('neutron/auth_strategy').with_value(default_params[:neutron_auth_strategy]) + should contain_nova_config('neutron/url').with_value(default_params[:neutron_url]) + should contain_nova_config('neutron/url_timeout').with_value(default_params[:neutron_url_timeout]) + should contain_nova_config('neutron/admin_tenant_name').with_value(default_params[:neutron_admin_tenant_name]) + should contain_nova_config('neutron/default_tenant_id').with_value(default_params[:neutron_default_tenant_id]) + should contain_nova_config('neutron/region_name').with_value(default_params[:neutron_region_name]) + should contain_nova_config('neutron/admin_username').with_value(default_params[:neutron_admin_username]) + should contain_nova_config('neutron/admin_auth_url').with_value(default_params[:neutron_admin_auth_url]) + should contain_nova_config('neutron/extension_sync_interval').with_value(default_params[:neutron_extension_sync_interval]) end it 'configures Nova to use Neutron Bridge Security Groups and Firewall' do should contain_nova_config('DEFAULT/firewall_driver').with_value(default_params[:firewall_driver]) should contain_nova_config('DEFAULT/security_group_api').with_value(default_params[:security_group_api]) - should contain_nova_config('DEFAULT/neutron_ovs_bridge').with_value(default_params[:neutron_ovs_bridge]) + should contain_nova_config('neutron/ovs_bridge').with_value(default_params[:neutron_ovs_bridge]) end it 'configures neutron vif plugging events in nova.conf' do should contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(default_params[:vif_plugging_is_fatal]) @@ -73,23 +73,23 @@ end it 'configures neutron endpoint in nova.conf' do - should contain_nova_config('DEFAULT/neutron_auth_strategy').with_value(default_params[:neutron_auth_strategy]) - should contain_nova_config('DEFAULT/neutron_admin_password').with_value(params[:neutron_admin_password]).with_secret(true) + should contain_nova_config('neutron/auth_strategy').with_value(default_params[:neutron_auth_strategy]) + should contain_nova_config('neutron/admin_password').with_value(params[:neutron_admin_password]).with_secret(true) should contain_nova_config('DEFAULT/network_api_class').with_value('nova.network.neutronv2.api.API') - should contain_nova_config('DEFAULT/neutron_url').with_value(params[:neutron_url]) - should contain_nova_config('DEFAULT/neutron_url_timeout').with_value(params[:neutron_url_timeout]) - should contain_nova_config('DEFAULT/neutron_admin_tenant_name').with_value(params[:neutron_admin_tenant_name]) - should contain_nova_config('DEFAULT/neutron_default_tenant_id').with_value(params[:neutron_default_tenant_id]) - should contain_nova_config('DEFAULT/neutron_region_name').with_value(params[:neutron_region_name]) - should contain_nova_config('DEFAULT/neutron_admin_username').with_value(params[:neutron_admin_username]) - should contain_nova_config('DEFAULT/neutron_admin_auth_url').with_value(params[:neutron_admin_auth_url]) - should contain_nova_config('DEFAULT/neutron_extension_sync_interval').with_value(params[:neutron_extension_sync_interval]) should contain_nova_config('DEFAULT/dhcp_domain').with_value(params[:dhcp_domain]) + should contain_nova_config('neutron/url').with_value(params[:neutron_url]) + should contain_nova_config('neutron/url_timeout').with_value(params[:neutron_url_timeout]) + should contain_nova_config('neutron/admin_tenant_name').with_value(params[:neutron_admin_tenant_name]) + should contain_nova_config('neutron/default_tenant_id').with_value(params[:neutron_default_tenant_id]) + should contain_nova_config('neutron/region_name').with_value(params[:neutron_region_name]) + should contain_nova_config('neutron/admin_username').with_value(params[:neutron_admin_username]) + should contain_nova_config('neutron/admin_auth_url').with_value(params[:neutron_admin_auth_url]) + should contain_nova_config('neutron/extension_sync_interval').with_value(params[:neutron_extension_sync_interval]) end it 'configures Nova to use Neutron Security Groups and Firewall' do should contain_nova_config('DEFAULT/firewall_driver').with_value(params[:firewall_driver]) should contain_nova_config('DEFAULT/security_group_api').with_value(params[:security_group_api]) - should contain_nova_config('DEFAULT/neutron_ovs_bridge').with_value(params[:neutron_ovs_bridge]) + should contain_nova_config('neutron/ovs_bridge').with_value(params[:neutron_ovs_bridge]) end it 'configures neutron vif plugging events in nova.conf' do should contain_nova_config('DEFAULT/vif_plugging_is_fatal').with_value(params[:vif_plugging_is_fatal]) diff --git a/nova/spec/shared_examples.rb b/nova/spec/shared_examples.rb index 52f56c3a8..b7b16517e 100644 --- a/nova/spec/shared_examples.rb +++ b/nova/spec/shared_examples.rb @@ -11,7 +11,8 @@ should contain_package(service[:name]).with({ :name => service[:package_name], :ensure => 'present', - :notify => "Service[#{service[:name]}]" + :notify => "Service[#{service[:name]}]", + :tag => ['openstack', 'nova'] }) should contain_service(service[:name]).with({ :name => service[:service_name], diff --git a/openstacklib/metadata.json b/openstacklib/metadata.json index b82842ce3..6395246a0 100644 --- a/openstacklib/metadata.json +++ b/openstacklib/metadata.json @@ -34,6 +34,6 @@ { "name": "aimonb/aviator", "version_requirement": ">=0.4.2 <1.0.0" }, { "name": "puppetlabs/mysql", "version_requirement": ">=2.2.0 <3.0.0" }, { "name": "puppetlabs/stdlib", "version_requirement": ">=4.0.0 <5.0.0" }, - { "name": "puppetlabs/rabbitmq", "version_requirement": ">=4.0.0 <5.0.0" } + { "name": "puppetlabs/rabbitmq", "version_requirement": ">=2.0.2 <4.0.0" } ] } diff --git a/swift/.fixtures.yml b/swift/.fixtures.yml index 7963576f8..c4af4646b 100644 --- a/swift/.fixtures.yml +++ b/swift/.fixtures.yml @@ -1,9 +1,7 @@ fixtures: repositories: "apt": "git://github.com/puppetlabs/puppetlabs-apt.git" - "concat": - repo: "git://github.com/puppetlabs/puppetlabs-concat.git" - ref: '1.0.0' + "concat": "git://github.com/puppetlabs/puppetlabs-concat.git" "inifile": "git://github.com/puppetlabs/puppetlabs-inifile" "keystone": "git://github.com/stackforge/puppet-keystone.git" "memcached": "git://github.com/saz/puppet-memcached.git" diff --git a/swift/README.md b/swift/README.md index d09d50c7e..46ca59e42 100644 --- a/swift/README.md +++ b/swift/README.md @@ -1,7 +1,7 @@ swift ======= -4.0.0 - 2013.1.0 - Icehouse (Swift 1.13.1) +5.0.0 - 2014.2.0 - Juno #### Table of Contents @@ -250,6 +250,24 @@ Contributors Release Notes ------------- +**5.0.0** + +* Stable Juno release +* Updated s3token.conf template for Juno +* Added parameter log_name to swift::proxy and swift::storage::server +* Bumped stdlib dependency to >=4.0.0 + +**4.1.0** + +* Added swift-ring-builder multi-region support. +* Added swift::proxy::crossdomain class. +* Added support for RHEL 7. +* Fixed Swift quota filter names. +* Fixed config dependency bugs. +* Fixed resource conflict when ringserver and storage are on same node. +* Fixed selinux bugs. +* Pinned major gems. + **4.0.0** * Stable Icehouse release.