From 6d5911a30bfd950d0e55de7212850948cfc67dc2 Mon Sep 17 00:00:00 2001 From: Sergey Abramov Date: Wed, 9 Nov 2016 12:43:30 +0300 Subject: [PATCH] Use memcache for keystone_authtoken This change updates where we calculate the memcache server information to the globals hiera data and updates all the openstack services to use the heira memcached_servers key for consistency. Additionally all api services have been updated to configure the memcached servers for the keystone_authtoken middleware configuration to improve the responsiveness of the service. Change-Id: Id1034e22d79c3ea6b25575d9bcf8e8750a02365d Closes-Bug: #1597512 (cherry picked from commit df416f53d2dcb21c700802f5c2602d19f6d6c70c) --- deployment/puppet/openstack_tasks/Puppetfile | 18 ++++----- .../examples/ironic/tasks.yaml | 4 +- .../examples/keystone/tasks.yaml | 3 +- .../examples/openstack-controller/tasks.yaml | 2 +- .../openstack_tasks/examples/roles/tasks.yaml | 5 +-- .../openstack_tasks/examples/swift/tasks.yaml | 4 +- .../openstack_tasks/manifests/aodh/aodh.pp | 7 ++-- .../manifests/ceilometer/controller.pp | 3 ++ .../manifests/glance/glance.pp | 4 ++ .../openstack_tasks/manifests/heat/heat.pp | 5 ++- .../manifests/ironic/ironic.pp | 3 ++ .../manifests/ironic/ironic_compute.pp | 6 +-- .../manifests/keystone/keystone.pp | 3 +- .../manifests/murano/murano.pp | 8 ++++ .../openstack_cinder/openstack_cinder.pp | 2 + .../openstack_controller.pp | 5 +-- .../openstack_network/server_config.pp | 2 + .../manifests/roles/compute.pp | 15 +++----- .../manifests/roles/ironic_conductor.pp | 2 + .../manifests/sahara/sahara.pp | 4 +- .../manifests/swift/parts/proxy.pp | 9 ++--- .../manifests/swift/proxy_storage.pp | 5 +-- .../manifests/globals/globals.pp | 2 + .../osnailyfacter/templates/globals_yaml.erb | 2 + tests/noop/spec/hosts/aodh/aodh_spec.rb | 7 +--- .../spec/hosts/ceilometer/controller_spec.rb | 3 ++ tests/noop/spec/hosts/glance/glance_spec.rb | 5 +++ tests/noop/spec/hosts/heat/heat_spec.rb | 11 +++--- .../spec/hosts/ironic/ironic-compute_spec.rb | 24 +----------- tests/noop/spec/hosts/ironic/ironic_spec.rb | 2 + .../noop/spec/hosts/keystone/keystone_spec.rb | 23 ++--------- tests/noop/spec/hosts/murano/murano_spec.rb | 3 ++ .../openstack-cinder/openstack-cinder_spec.rb | 3 ++ .../openstack-controller_spec.rb | 21 +--------- .../openstack-network/server-config_spec.rb | 20 ++++++++-- tests/noop/spec/hosts/roles/compute_spec.rb | 38 ++++--------------- .../spec/hosts/roles/ironic-conductor_spec.rb | 2 + tests/noop/spec/hosts/sahara/sahara_spec.rb | 4 +- .../spec/hosts/swift/proxy_storage_spec.rb | 13 ++++--- 39 files changed, 136 insertions(+), 166 deletions(-) diff --git a/deployment/puppet/openstack_tasks/Puppetfile b/deployment/puppet/openstack_tasks/Puppetfile index f4bf4f0970..7deb093708 100644 --- a/deployment/puppet/openstack_tasks/Puppetfile +++ b/deployment/puppet/openstack_tasks/Puppetfile @@ -24,17 +24,17 @@ # Pull in puppet-aodh mod 'aodh', :git => 'https://github.com/fuel-infra/puppet-aodh.git', - :ref => '8.2.0' + :ref => 'daa97a02f8d936cbbe4d8c00d24015c7f0b4cd8c' # Pull in puppet-ceilometer mod 'ceilometer', :git => 'https://github.com/fuel-infra/puppet-ceilometer.git', - :ref => '8.2.0' + :ref => '1bcac4e50abad3381046accf80986eb5aed453d1' # Pull in openstack-cinder mod 'cinder', :git => 'https://github.com/fuel-infra/openstack-cinder.git', - :ref => '8.2.0' + :ref => '72ef0ce90cfc828a9f0202a2c9970a15417ec4b5' # Pull in puppet-glance mod 'glance', @@ -44,7 +44,7 @@ mod 'glance', # Pull in puppet-heat mod 'heat', :git => 'https://github.com/fuel-infra/puppet-heat.git', - :ref => '2c5dc330287e0d9300bc4917ed4058fa9a1fb6c4' + :ref => '0cb78122a2583517687d23ef1916f2ad96f75bef' # Pull in puppet-horizon mod 'horizon', @@ -54,7 +54,7 @@ mod 'horizon', # Pull in puppet-ironic mod 'ironic', :git => 'https://github.com/fuel-infra/puppet-ironic.git', - :ref => '8.2.0' + :ref => '754badddd4f00a223f73616476105287497253f4' # Pull in puppet-keystone mod 'keystone', @@ -68,13 +68,13 @@ mod 'openstacklib', # Pull in puppet-neutron mod 'neutron', - :git => 'https://github.com/fuel-infra/puppet-neutron.git', - :ref => '94e33962c51ea36f84e9d536b38f760f1edc98ce' + :git => 'https://github.com/kozhukalov/puppet-neutron.git', + :ref => 'b702d2165bea2097ec4a1b93a2af0d4aa3c92c43' # Pull in puppet-nova mod 'nova', :git => 'https://github.com/fuel-infra/puppet-nova.git', - :ref => '8.2.0' + :ref => '68edbded93de36c6607b20223ef24bc19955168c' # Pull in puppet-murano mod 'murano', @@ -84,7 +84,7 @@ mod 'murano', # Pull in puppet-sahara mod 'sahara', :git => 'https://github.com/fuel-infra/puppet-sahara.git', - :ref => '8.2.0' + :ref => 'd3e0933af77de7dbfe8302840eb04bb9d31b7f97' # Pull in puppet-swift mod 'swift', diff --git a/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml b/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml index fd50f2f013..3062bb9399 100644 --- a/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/ironic/tasks.yaml @@ -81,11 +81,11 @@ $.get('amqp_hosts'), $.rabbit, $.get('nova_report_interval', '60'), $.get('nova_service_down_time', '180'), $.quantum_settings, - $.get('memcached_addresses'), + $.get('memcached_servers'), $.network_metadata.nodes.values().where( ('controller' in $.node_roles) or ('primary-controller' in $.node_roles)), - $.get('memcache_server_port'), $.get('use_ssl')) + $.get('use_ssl')) required_for: [deploy_end] requires: [primary-openstack-controller, openstack-controller, openstack-network-end, ironic-api] refresh_on: [nova_config, nova_paste_api_ini] diff --git a/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml b/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml index f6abf75b0a..79f54a02fa 100644 --- a/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/keystone/tasks.yaml @@ -21,8 +21,7 @@ $.quantum_settings.keystone, $.get('default_log_levels'), ('primary-controller' in $.roles), $.get('kombu_compression'), $.get('region'), $.public_ssl, $.get('use_ssl'), - $.get('memcache_server_port'), $.get('memcached_addresses'), - $.get('memcache_roles'), + $.get('memcached_servers'), $.network_metadata.nodes.values().where( ('controller' in $.node_roles) or ('primary-controller' in $.node_roles)), diff --git a/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml b/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml index 88115283e9..bf8879ab1e 100644 --- a/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/openstack-controller/tasks.yaml @@ -14,7 +14,7 @@ $.get('nova_service_down_time', '180'), $.rabbit, $.get('use_ssl'), $.get('kombu_compression'), $.get('glance_endpoint'), $.get('glance_api_servers'), $.get('region', 'RegionOne'), $.ironic, - $.get('memcached_addresses'), $.get('memcache_server_port'), + $.get('memcached_servers'), $.get('openstack_controller'), $.get('external_lb'), $.quantum_settings, $.get('database_vip'), $.nova_quota, $.use_vcenter, $.libvirt_type, $.network_metadata.nodes.values().where( diff --git a/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml b/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml index 3ede24b16e..0de63a2fdf 100644 --- a/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/roles/tasks.yaml @@ -46,10 +46,7 @@ $.get('block_device_allocate_retries', 300), $.get('block_device_allocate_retries_interval', 3), $.get('queue_provider', 'rabbit'), $.quantum_settings, - $.get('memcached_addresses', ''), $.get('memcache_roles', ''), - $.network_metadata.nodes.values().where( - $.network_roles.get('mgmt/memcache') != null), - $.get('memcache_server_port'), + $.get('memcached_servers', ''), $.network_metadata.nodes.values().where( $.node_roles.any($.matches('controller'))).network_roles.select( $.get('mgmt/messaging')), diff --git a/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml b/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml index 30373e949c..42c15c0e4d 100644 --- a/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml +++ b/deployment/puppet/openstack_tasks/examples/swift/tasks.yaml @@ -11,7 +11,7 @@ (changedAny($.network_scheme, $.network_metadata, $.swift, $.get('swift_master_role', 'primary-controller'), $.get('swift_object_roles'), ('primary-controller' in $.roles), - $.get('swift_proxy_roles'), $.get('memcached_addresses'), + $.get('swift_proxy_roles'), $.get('memcached_servers'), $.network_metadata.nodes.values().where( ('controller' in $.node_roles) or ('primary-controller' in $.node_roles)), @@ -21,7 +21,7 @@ $.network_metadata.nodes.values().where( $.node_roles.any($.matches('controller'))).network_roles.select( $.get('mgmt/messaging')), $.get('amqp_hosts'), - $.get('memcache_server_port'), $.ceilometer.enabled, $.mp, + $.ceilometer.enabled, $.mp, $.get('swift_partition'), $.get('deploy_swift_storage'))) cross-depends: - name: /(primary-)?rabbitmq/ diff --git a/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp b/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp index 1cfd733c74..11fec25f7c 100644 --- a/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp +++ b/deployment/puppet/openstack_tasks/manifests/aodh/aodh.pp @@ -77,8 +77,7 @@ class openstack_tasks::aodh::aodh { $ssl_hash = hiera_hash('use_ssl', {}) $public_cert = get_ssl_property($ssl_hash, $public_ssl_hash, 'keystone', 'public', 'path', ['']) - $memcache_address = get_network_role_property('mgmt/memcache', 'ipaddr') - $memcache_servers = "${memcache_address}:11211" + $memcached_servers = hiera('memcached_servers') $internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http') $internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$management_vip]) @@ -137,8 +136,7 @@ class openstack_tasks::aodh::aodh { # keystone aodh_config { - 'keystone_authtoken/memcache_servers': value => $memcache_servers; - 'keystone_authtoken/signing_dir' : value => '/tmp/keystone-signing-aodh'; + 'keystone_authtoken/signing_dir': value => '/tmp/keystone-signing-aodh'; } class { '::aodh::api': @@ -152,6 +150,7 @@ class openstack_tasks::aodh::aodh { keystone_identity_uri => $keystone_identity_uri, host => $aodh_api_bind_host, port => $aodh_api_bind_port, + memcached_servers => $memcached_servers, } $haproxy_stats_url = "http://${management_vip}:10000/;csv" diff --git a/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp b/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp index eea161f61c..6ac51d998f 100644 --- a/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp +++ b/deployment/puppet/openstack_tasks/manifests/ceilometer/controller.pp @@ -46,6 +46,8 @@ class openstack_tasks::ceilometer::controller { $keystone_identity_uri = "${internal_auth_protocol}://${internal_auth_endpoint}:35357/" $keystone_auth_uri = "${internal_auth_protocol}://${internal_auth_endpoint}:5000/" + $memcached_servers = hiera('memcached_servers') + prepare_network_config(hiera_hash('network_scheme', {})) $api_bind_address = get_network_role_property('ceilometer/api', 'ipaddr') @@ -175,6 +177,7 @@ class openstack_tasks::ceilometer::controller { keystone_user => $ceilometer_hash['user'], keystone_password => $ceilometer_hash['user_password'], keystone_tenant => $ceilometer_hash['tenant'], + memcached_servers => $memcached_servers, host => $api_bind_address, port => '8777', api_workers => $service_workers, diff --git a/deployment/puppet/openstack_tasks/manifests/glance/glance.pp b/deployment/puppet/openstack_tasks/manifests/glance/glance.pp index a2d2ade3c1..f87a6412c1 100644 --- a/deployment/puppet/openstack_tasks/manifests/glance/glance.pp +++ b/deployment/puppet/openstack_tasks/manifests/glance/glance.pp @@ -28,6 +28,7 @@ class openstack_tasks::glance::glance { $ironic_hash = hiera_hash('ironic', {}) $primary_controller = hiera('primary_controller') $kombu_compression = hiera('kombu_compression', '') + $memcached_servers = hiera('memcached_servers') # This block is present for compatibility with the old # override data format. This is only needed if overrides @@ -177,6 +178,7 @@ class openstack_tasks::glance::glance { token_cache_time => '-1', image_cache_stall_time => '86400', image_cache_max_size => $glance_image_cache_max_size, + memcached_servers => $memcached_servers, } # TODO (dmburmistrov): remove this workaround after puppet-glance @@ -222,6 +224,7 @@ class openstack_tasks::glance::glance { auth_region => $region, signing_dir => '/tmp/keystone-signing-glance', token_cache_time => '-1', + memcached_servers => $memcached_servers, } glance_api_config { @@ -260,6 +263,7 @@ class openstack_tasks::glance::glance { sync_db => $primary_controller, signing_dir => '/tmp/keystone-signing-glance', os_region_name => $region, + memcached_servers => $memcached_servers, } class { '::glance::notify::rabbitmq': diff --git a/deployment/puppet/openstack_tasks/manifests/heat/heat.pp b/deployment/puppet/openstack_tasks/manifests/heat/heat.pp index 7ba8f51b4c..39312a0d10 100644 --- a/deployment/puppet/openstack_tasks/manifests/heat/heat.pp +++ b/deployment/puppet/openstack_tasks/manifests/heat/heat.pp @@ -48,7 +48,7 @@ class openstack_tasks::heat::heat { $syslog_log_facility = hiera('syslog_log_facility_heat') $deployment_mode = hiera('deployment_mode') $bind_host = get_network_role_property('heat/api', 'ipaddr') - $memcache_address = get_network_role_property('mgmt/memcache', 'ipaddr') + $memcached_servers = hiera('memcached_servers') $keystone_user = pick($heat_hash['user'], 'heat') $keystone_tenant = pick($heat_hash['tenant'], 'services') $region = hiera('region', 'RegionOne') @@ -125,7 +125,7 @@ class openstack_tasks::heat::heat { heat_config { 'cache/enabled': value => true; 'cache/backend': value => 'oslo_cache.memcache_pool'; - 'cache/memcache_servers': value => "${memcache_address}:11211"; + 'cache/memcache_servers': value => join(any2array($memcached_servers), ',') } #------------------------------ @@ -241,6 +241,7 @@ class openstack_tasks::heat::heat { database_max_retries => $max_retries, rabbit_heartbeat_timeout_threshold => $::os_service_default, + memcached_servers => $memcached_servers } # Engine diff --git a/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp b/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp index 753efc72bb..3bf4b6feae 100644 --- a/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp +++ b/deployment/puppet/openstack_tasks/manifests/ironic/ironic.pp @@ -27,6 +27,8 @@ class openstack_tasks::ironic::ironic { $amqp_durable_queues = pick($ironic_hash['amqp_durable_queues'], false) $kombu_compression = hiera('kombu_compression', '') + $memcached_servers = hiera('memcached_servers') + $db_type = 'mysql' $db_host = pick($ironic_hash['db_host'], $database_vip) $db_user = pick($ironic_hash['db_user'], 'ironic') @@ -93,6 +95,7 @@ class openstack_tasks::ironic::ironic { admin_password => $ironic_user_password, neutron_url => "http://${neutron_endpoint}:9696", public_endpoint => "${public_protocol}://${public_address}:6385", + memcached_servers => $memcached_servers, } # TODO (iberezovskiy): remove this workaround in N when ironic module diff --git a/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp b/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp index e510994624..52433d112a 100644 --- a/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/ironic/ironic_compute.pp @@ -56,9 +56,7 @@ class openstack_tasks::ironic::ironic_compute { 'extra' => $extra_params }) - $memcached_servers = hiera('memcached_addresses') - $memcached_port = hiera('memcache_server_port', '11211') - $memcached_addresses = suffix($memcached_servers, ":${memcached_port}") + $memcached_servers = hiera('memcached_servers') $notify_on_state_change = 'vm_and_task_state' $ssl_hash = hiera_hash('use_ssl', {}) @@ -118,7 +116,7 @@ class openstack_tasks::ironic::ironic_compute { report_interval => $nova_report_interval, service_down_time => $nova_service_down_time, notify_on_state_change => $notify_on_state_change, - memcached_servers => $memcached_addresses, + memcached_servers => $memcached_servers, rabbit_heartbeat_timeout_threshold => $::os_service_default, os_region_name => $region_name, } diff --git a/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp b/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp index 71b68f2afa..4c1be2e696 100644 --- a/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp +++ b/deployment/puppet/openstack_tasks/manifests/keystone/keystone.pp @@ -82,9 +82,8 @@ class openstack_tasks::keystone::keystone { $local_address_for_bind = get_network_role_property('keystone/api', 'ipaddr') - $memcache_server_port = hiera('memcache_server_port', '11211') $memcache_pool_maxsize = '100' - $memcache_servers = suffix(hiera('memcached_addresses'), inline_template(':<%= @memcache_server_port %>')) + $memcache_servers = hiera('memcached_servers') $cache_backend = 'keystone.cache.memcache_pool' $token_caching = false $token_driver = 'keystone.token.persistence.backends.memcache_pool.Token' diff --git a/deployment/puppet/openstack_tasks/manifests/murano/murano.pp b/deployment/puppet/openstack_tasks/manifests/murano/murano.pp index 8cd55af578..ac50f60592 100644 --- a/deployment/puppet/openstack_tasks/manifests/murano/murano.pp +++ b/deployment/puppet/openstack_tasks/manifests/murano/murano.pp @@ -28,6 +28,7 @@ class openstack_tasks::murano::murano { $ssl_hash = hiera_hash('use_ssl', {}) $primary_controller = hiera('primary_controller') $kombu_compression = hiera('kombu_compression', '') + $memcached_servers = hiera('memcached_servers') $public_auth_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'keystone', 'public', 'protocol', 'http') $public_auth_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'keystone', 'public', 'hostname', [$public_ip]) @@ -154,8 +155,15 @@ class openstack_tasks::murano::murano { service_port => $api_bind_port, external_network => $external_network, use_trusts => true, + # TODO(aschultz): https://review.openstack.org/336261 + #memcached_servers => $memcached_servers, } + # TODO(aschultz): remove this and switch to the murano param + ensure_resource('murano_config', 'keystone_authtoken/memcached_servers', { + value => join(any2array($memcached_servers), ',') + }) + class { '::murano::api': host => $api_bind_host, port => $api_bind_port, diff --git a/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp b/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp index 0419140a1d..6fe5fcb838 100644 --- a/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp +++ b/deployment/puppet/openstack_tasks/manifests/openstack_cinder/openstack_cinder.pp @@ -23,6 +23,7 @@ class openstack_tasks::openstack_cinder::openstack_cinder { $primary_controller = hiera('primary_controller') $proxy_port = hiera('proxy_port', '8080') $kombu_compression = hiera('kombu_compression', '') + $memcached_servers = hiera('memcached_servers') $default_volume_type = pick($cinder_hash['default_volume_type'], $::os_service_default) $db_type = 'mysql' $db_host = pick($cinder_hash['db_host'], hiera('database_vip')) @@ -182,6 +183,7 @@ class openstack_tasks::openstack_cinder::openstack_cinder { nova_catalog_info => 'compute:nova:internalURL', sync_db => $primary_controller, default_volume_type => $default_volume_type, + memcached_servers => $memcached_servers, } class { 'cinder::scheduler': } diff --git a/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp b/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp index 88f95d6672..66fbb77226 100644 --- a/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp +++ b/deployment/puppet/openstack_tasks/manifests/openstack_controller/openstack_controller.pp @@ -57,8 +57,6 @@ class openstack_tasks::openstack_controller::openstack_controller { $ironic_hash = hiera_hash('ironic', {}) - $memcached_server = hiera('memcached_addresses') - $memcached_port = hiera('memcache_server_port', '11211') $openstack_controller_hash = hiera_hash('openstack_controller', {}) $external_lb = hiera('external_lb', false) @@ -152,11 +150,12 @@ class openstack_tasks::openstack_controller::openstack_controller { } } - $memcached_addresses = suffix($memcached_server, inline_template(":<%= @memcached_port %>")) + $memcached_servers = hiera('memcached_servers') # LP1621541 In order to increase nova performance after failover, # we need to point nova to local memcached instance for keystone tokens, # in future we can consider moving memcached under HAproxy + $memcached_port = hiera('memcache_server_port', '11211') $memcached_address = get_network_role_property('mgmt/memcache', 'ipaddr') $memcached_authtoken_server = "${memcached_address}:${memcached_port}" diff --git a/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp b/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp index 20d1055220..a1110cff56 100644 --- a/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp +++ b/deployment/puppet/openstack_tasks/manifests/openstack_network/server_config.pp @@ -53,6 +53,7 @@ class openstack_tasks::openstack_network::server_config { $project_name = pick($neutron_config['keystone']['admin_tenant'], 'services') $region_name = hiera('region', 'RegionOne') $auth_endpoint_type = 'internalURL' + $memcached_servers = hiera('memcached_servers') $ssl_hash = hiera_hash('use_ssl', {}) @@ -220,6 +221,7 @@ class openstack_tasks::openstack_network::server_config { qos_notification_drivers => $qos_notification_drivers, enabled => true, manage_service => true, + memcached_servers => $memcached_servers, } Exec<| title == 'neutron-db-sync' |> { diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp index 4113be35c0..820efeea35 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp @@ -95,10 +95,7 @@ class openstack_tasks::roles::compute { ##CALCULATED PARAMETERS - # TODO(xarses): Wait Nova compute uses memcache? - $cache_server_ip = hiera('memcached_addresses') - $cache_server_port = hiera('memcache_server_port', '11211') - $memcached_addresses = suffix($cache_server_ip, inline_template(':<%= @cache_server_port %>')) + $memcached_servers = hiera('memcached_servers') # TODO(xarses): We need to validate this is needed if ($storage_hash['volumes_lvm']) { @@ -297,7 +294,7 @@ class openstack_tasks::roles::compute { service_down_time => $nova_service_down_time, notify_on_state_change => $notify_on_state_change, notification_driver => $ceilometer_hash['notification_driver'], - memcached_servers => $memcached_addresses, + memcached_servers => $memcached_servers, cinder_catalog_info => pick($nova_hash_real['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'), rabbit_heartbeat_timeout_threshold => $::os_service_default, os_region_name => $region_name, @@ -323,10 +320,10 @@ class openstack_tasks::roles::compute { }) } - nova_config { - 'cache/enabled': value => $nova_cache; - 'cache/backend': value => 'oslo_cache.memcache_pool'; - 'cache/memcache_servers': value => join(any2array($memcached_addresses), ','); + class { '::nova::cache': + enabled => $nova_cache, + backend => 'oslo_cache.memcache_pool', + memcache_servers => $memcached_servers, } class { '::nova::availability_zone': diff --git a/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp b/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp index 84a4d36bfc..12e2c63f4a 100644 --- a/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp +++ b/deployment/puppet/openstack_tasks/manifests/roles/ironic_conductor.pp @@ -31,6 +31,7 @@ class openstack_tasks::roles::ironic_conductor { $ironic_user = pick($ironic_hash['auth_name'],'ironic') $ironic_user_password = pick($ironic_hash['user_password'],'ironic') $ironic_swift_tempurl_key = pick($ironic_hash['swift_tempurl_key'],'ironic') + $memcached_servers = hiera('memcached_servers') $db_type = 'mysql' $db_host = pick($ironic_hash['db_host'], $database_vip) @@ -101,6 +102,7 @@ class openstack_tasks::roles::ironic_conductor { 'keystone_authtoken/admin_tenant_name': value => $ironic_tenant; 'keystone_authtoken/admin_user': value => $ironic_user; 'keystone_authtoken/admin_password': value => $ironic_user_password, secret => true; + 'keystone_authtoken/memcached_servers': value => join(any2array($memcached_servers), ','); 'glance/swift_temp_url_key': value => $ironic_swift_tempurl_key; 'glance/swift_endpoint_url': value => "http://${baremetal_vip}:8080"; 'glance/temp_url_endpoint_type': value => $temp_url_endpoint_type; diff --git a/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp b/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp index f6d50c6f0e..54c8f45a97 100644 --- a/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp +++ b/deployment/puppet/openstack_tasks/manifests/sahara/sahara.pp @@ -34,6 +34,7 @@ class openstack_tasks::sahara::sahara { $admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip]) $admin_identity_uri = "${admin_identity_protocol}://${admin_identity_address}:35357" $kombu_compression = hiera('kombu_compression', '') + $memcached_servers = hiera('memcached_servers') ################################################################# @@ -112,7 +113,8 @@ class openstack_tasks::sahara::sahara { rabbit_password => $rabbit_hash['password'], rabbit_ha_queues => $rabbit_ha_queues, rabbit_port => $amqp_port, - rabbit_hosts => split($amqp_hosts, ',') + rabbit_hosts => split($amqp_hosts, ','), + memcached_servers => $memcached_servers, } if $public_ssl_hash['services'] { diff --git a/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp b/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp index eb06244094..78ce934dc2 100644 --- a/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp +++ b/deployment/puppet/openstack_tasks/manifests/swift/parts/proxy.pp @@ -36,8 +36,7 @@ class openstack_tasks::swift::parts::proxy ( $ratelimit_rate_buffer_seconds = 5, $ratelimit_account_ratelimit = 0, $package_ensure = 'present', - $swift_proxies_cache = ['127.0.0.1'], - $cache_server_port = '11211', + $memcached_servers = '127.0.0.1:11211', $primary_proxy = false, $swift_devices = undef, $master_swift_proxy_ip = undef, @@ -123,9 +122,7 @@ class openstack_tasks::swift::parts::proxy ( '::swift::proxy::slo', '::swift::proxy::container_sync']: } - $cache_addresses = join(suffix($swift_proxies_cache, ":${cache_server_port}"), ',') - - class { '::swift::proxy::cache': memcache_servers => split($cache_addresses, ',') } + class { '::swift::proxy::cache': memcache_servers => $memcached_servers } class { '::swift::proxy::ratelimit': clock_accuracy => $ratelimit_clock_accuracy, @@ -225,4 +222,4 @@ class openstack_tasks::swift::parts::proxy ( anchor { 'openstack_tasks_proxy_end' :} } -} \ No newline at end of file +} diff --git a/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp b/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp index 021621de93..77510a251c 100644 --- a/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp +++ b/deployment/puppet/openstack_tasks/manifests/swift/proxy_storage.pp @@ -11,7 +11,7 @@ class openstack_tasks::swift::proxy_storage { $swift_nodes = hiera_hash('swift_nodes', {}) $swift_operator_roles = pick($swift_hash['swift_operator_roles'], ['admin', 'SwiftOperator', '_member_']) $swift_proxies_addr_list = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('swift_proxies', {}), 'swift/api')) - $memcaches_addr_list = hiera('memcached_addresses') + $memcached_servers = hiera('memcached_servers') $is_primary_swift_proxy = hiera('is_primary_swift_proxy', false) $proxy_port = hiera('proxy_port', '8080') $storage_hash = hiera_hash('storage') @@ -78,8 +78,7 @@ class openstack_tasks::swift::proxy_storage { class { 'openstack_tasks::swift::parts::proxy': swift_user_password => $swift_hash['user_password'], swift_operator_roles => $swift_operator_roles, - swift_proxies_cache => $memcaches_addr_list, - cache_server_port => hiera('memcache_server_port', '11211'), + memcached_servers => $memcached_servers, ring_part_power => $ring_part_power, ring_replicas => $ring_replicas, primary_proxy => $is_primary_swift_proxy, diff --git a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp index dd306314e4..11f09138e0 100644 --- a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp +++ b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp @@ -504,6 +504,8 @@ class osnailyfacter::globals::globals { $memcache_nodes = get_nodes_hash_by_roles($network_metadata, $memcache_roles) $memcached_addresses = ipsort(values(get_node_to_ipaddr_map_by_network_role($memcache_nodes, 'mgmt/memcache'))) } + $memcached_port = hiera('memcache_server_port', '11211') + $memcached_servers = suffix($memcached_addresses, ":${memcached_port}") $cinder_backends = { 'volumes_ceph' => $storage_hash['volumes_ceph'] ? { true => 'RBD-backend', default => false }, diff --git a/deployment/puppet/osnailyfacter/templates/globals_yaml.erb b/deployment/puppet/osnailyfacter/templates/globals_yaml.erb index 2f78943109..e46d170140 100644 --- a/deployment/puppet/osnailyfacter/templates/globals_yaml.erb +++ b/deployment/puppet/osnailyfacter/templates/globals_yaml.erb @@ -120,6 +120,8 @@ <% globals.store "public_vrouter_vip", @public_vrouter_vip -%> <% globals.store "memcache_roles", @memcache_roles -%> <% globals.store "memcached_addresses", @memcached_addresses -%> +<% globals.store "memcached_port", @memcached_port -%> +<% globals.store "memcached_servers", @memcached_servers -%> <% globals.store "swift_master_role", @swift_master_role -%> <% globals.store "swift_nodes", @swift_nodes -%> <% globals.store "swift_proxies", @swift_proxies -%> diff --git a/tests/noop/spec/hosts/aodh/aodh_spec.rb b/tests/noop/spec/hosts/aodh/aodh_spec.rb index 1aa64276a9..01cd28de0b 100644 --- a/tests/noop/spec/hosts/aodh/aodh_spec.rb +++ b/tests/noop/spec/hosts/aodh/aodh_spec.rb @@ -15,10 +15,7 @@ describe manifest do Noop.puppet_function 'prepare_network_config', network_scheme end - let(:memcache_address) do - prepare - Noop.puppet_function 'get_network_role_property', 'mgmt/memcache', 'ipaddr' - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:aodh_api_bind_host) do Noop.puppet_function 'get_network_role_property', 'aodh/api', 'ipaddr' @@ -84,7 +81,7 @@ describe manifest do it 'should configure "keystone_authtoken/" section' do - should contain_aodh_config('keystone_authtoken/memcache_servers').with(:value => "#{memcache_address}:11211") + should contain_aodh_config('keystone_authtoken/memcached_servers').with(:value => memcached_servers.join(',')) should contain_aodh_config('keystone_authtoken/signing_dir').with(:value => keystone_signing_dir) should contain_aodh_config('keystone_authtoken/identity_uri').with(:value => keystone_identity_uri) should contain_aodh_config('keystone_authtoken/auth_uri').with(:value => keystone_auth_uri) diff --git a/tests/noop/spec/hosts/ceilometer/controller_spec.rb b/tests/noop/spec/hosts/ceilometer/controller_spec.rb index 9225a863db..1f60ebd2f4 100644 --- a/tests/noop/spec/hosts/ceilometer/controller_spec.rb +++ b/tests/noop/spec/hosts/ceilometer/controller_spec.rb @@ -51,6 +51,8 @@ describe manifest do keystone_auth_uri = "#{internal_auth_protocol}://#{internal_auth_endpoint}:5000/" kombu_compression = Noop.hiera 'kombu_compression', '' + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + # Ceilometer if ceilometer_hash['enabled'] it 'should properly build connection string' do @@ -152,6 +154,7 @@ describe manifest do 'keystone_user' => ceilometer_hash['user'], 'keystone_password' => ceilometer_hash['user_password'], 'keystone_tenant' => ceilometer_hash['tenant'], + 'memcached_servers' => memcached_servers, 'host' => bind_address, ) end diff --git a/tests/noop/spec/hosts/glance/glance_spec.rb b/tests/noop/spec/hosts/glance/glance_spec.rb index 00924b63e6..22aeff1cd7 100644 --- a/tests/noop/spec/hosts/glance/glance_spec.rb +++ b/tests/noop/spec/hosts/glance/glance_spec.rb @@ -66,6 +66,8 @@ describe manifest do let(:identity_uri) { "#{admin_auth_protocol}://#{admin_auth_address}:35357/" } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + it 'should select right protocols and addresses for auth' do should contain_class('glance::api').with( 'auth_uri' => auth_uri, @@ -117,6 +119,7 @@ describe manifest do should contain_glance_api_config('keystone_authtoken/username').with_value(glance_config.fetch('user', 'glance')) should contain_glance_api_config('keystone_authtoken/password').with_value(glance_config.fetch('user_password')) should contain_glance_api_config('keystone_authtoken/project_name').with_value(glance_config.fetch('project_name', 'services')) + should contain_glance_api_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end it 'should configure glance glare config' do @@ -128,6 +131,7 @@ describe manifest do should contain_glance_glare_config('glance_store/os_region_name').with_value(region) should contain_glance_glare_config('keystone_authtoken/signing_dir').with_value('/tmp/keystone-signing-glance') should contain_glance_glare_config('keystone_authtoken/token_cache_time').with_value('-1') + should contain_glance_glare_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end if $glance_backend == 'rbd' @@ -156,6 +160,7 @@ describe manifest do should contain_glance_registry_config('database/max_retries').with_value(max_retries) should contain_glance_registry_config('glance_store/os_region_name').with_value(region) should contain_glance_registry_config('keystone_authtoken/signing_dir').with_value('/tmp/keystone-signing-glance') + should contain_glance_registry_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end if use_syslog diff --git a/tests/noop/spec/hosts/heat/heat_spec.rb b/tests/noop/spec/hosts/heat/heat_spec.rb index 5a8d6f5455..6f0107eb8e 100644 --- a/tests/noop/spec/hosts/heat/heat_spec.rb +++ b/tests/noop/spec/hosts/heat/heat_spec.rb @@ -24,10 +24,7 @@ describe manifest do Noop.puppet_function 'prepare_network_config', network_scheme end - let(:memcache_address) do - prepare - Noop.puppet_function 'get_network_role_property', 'mgmt/memcache', 'ipaddr' - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:heat_ha_engine) do Noop.hiera 'heat_ha_engine', true @@ -120,6 +117,10 @@ describe manifest do ) end + it 'should configure memcache for keystone authtoken' do + should contain_heat_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) + end + it 'should set empty trusts_delegated_roles for heat engine' do should contain_class('heat::engine').with( 'trusts_delegated_roles' => [], @@ -138,7 +139,7 @@ describe manifest do it 'should configure caching for validation process' do should contain_heat_config('cache/enabled').with_value('true') should contain_heat_config('cache/backend').with_value('oslo_cache.memcache_pool') - should contain_heat_config('cache/memcache_servers').with_value("#{memcache_address}:11211") + should contain_heat_config('cache/memcache_servers').with_value(memcached_servers.join(',')) end it 'should configure urls for metadata, cloudwatch and waitcondition servers' do diff --git a/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb b/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb index c86181c9d3..a0cbe1b528 100644 --- a/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb +++ b/tests/noop/spec/hosts/ironic/ironic-compute_spec.rb @@ -21,11 +21,6 @@ describe manifest do ironic_user_password = Noop.hiera_structure 'ironic/user_password' ironic_enabled = Noop.hiera_structure 'ironic/enabled' - network_metadata = Noop.hiera 'network_metadata' - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' - database_vip = Noop.hiera('database_vip') nova_db_password = Noop.hiera_structure 'nova/db_password', 'nova' nova_db_user = Noop.hiera_structure 'nova/db_user', 'nova' @@ -39,22 +34,7 @@ describe manifest do nova_notification_driver = [] end - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end - + let(:memcached_servers) { Noop.hiera 'memcached_servers' } public_ssl_hash = Noop.hiera_hash('public_ssl') let(:ssl_hash) { Noop.hiera_hash 'use_ssl', {} } let(:admin_auth_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'keystone', 'admin','protocol','http' } @@ -87,7 +67,7 @@ describe manifest do it 'nova config should contain right memcached servers list' do should contain_nova_config('keystone_authtoken/memcached_servers').with( - 'value' => memcache_servers, + 'value' => memcached_servers.join(','), ) end diff --git a/tests/noop/spec/hosts/ironic/ironic_spec.rb b/tests/noop/spec/hosts/ironic/ironic_spec.rb index a2b021a850..e7c76e71ba 100644 --- a/tests/noop/spec/hosts/ironic/ironic_spec.rb +++ b/tests/noop/spec/hosts/ironic/ironic_spec.rb @@ -43,6 +43,7 @@ if ironic_enabled end let(:public_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,public_ssl_hash,'ironic','admin','protocol','http' } let(:public_address) { Noop.puppet_function 'get_ssl_property',ssl_hash,public_ssl_hash,'ironic','admin','hostname', public_vip } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } it 'should configure default_log_levels' do should contain_ironic_config('DEFAULT/default_log_levels').with_value(default_log_levels.sort.join(',')) @@ -66,6 +67,7 @@ if ironic_enabled 'admin_tenant_name' => admin_tenant, 'admin_user' => admin_user, 'admin_password' => admin_password, + 'memcached_servers' => memcached_servers, 'public_endpoint' => "#{public_protocol}://#{public_address}:6385" ) end diff --git a/tests/noop/spec/hosts/keystone/keystone_spec.rb b/tests/noop/spec/hosts/keystone/keystone_spec.rb index 31e6325e1d..6cda0fe9bd 100644 --- a/tests/noop/spec/hosts/keystone/keystone_spec.rb +++ b/tests/noop/spec/hosts/keystone/keystone_spec.rb @@ -20,25 +20,8 @@ describe manifest do keystone_hash = Noop.hiera_structure 'keystone' workers_max = Noop.hiera 'workers_max' network_metadata = Noop.hiera 'network_metadata' - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:configuration_override) do Noop.hiera_structure 'configuration' @@ -184,8 +167,8 @@ describe manifest do should contain_keystone_config('token/caching').with(:value => 'false') should contain_keystone_config('cache/enabled').with(:value => 'true') should contain_keystone_config('cache/backend').with(:value => 'keystone.cache.memcache_pool') - should contain_keystone_config('memcache/servers').with(:value => memcache_servers) - should contain_keystone_config('cache/memcache_servers').with(:value => memcache_servers) + should contain_keystone_config('memcache/servers').with(:value => memcached_servers.join(',')) + should contain_keystone_config('cache/memcache_servers').with(:value => memcached_servers.join(',')) should contain_keystone_config('cache/memcache_dead_retry').with(:value => '60') should contain_keystone_config('cache/memcache_socket_timeout').with(:value => '1') should contain_keystone_config('cache/memcache_pool_maxsize').with(:value => '1000') diff --git a/tests/noop/spec/hosts/murano/murano_spec.rb b/tests/noop/spec/hosts/murano/murano_spec.rb index 377080b3a5..129fa19c6c 100644 --- a/tests/noop/spec/hosts/murano/murano_spec.rb +++ b/tests/noop/spec/hosts/murano/murano_spec.rb @@ -57,6 +57,8 @@ describe manifest do let(:db_host) { Noop.hiera_structure('murano/db_host', service_endpoint) } let(:db_password) { Noop.hiera_structure('murano/db_password') } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + let(:predefined_networks) { Noop.hiera_structure('neutron_config/predefined_networks') } let(:default_repository_url) { 'http://storage.apps.openstack.org' } @@ -191,6 +193,7 @@ describe manifest do 'service_port' => api_bind_port, 'external_network' => external_network, ) + should contain_murano_config('keystone_authtoken/memcached_servers').with_value(memcached_servers.join(',')) end it 'should configure default_log_levels' do diff --git a/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb b/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb index fa8587c030..461bc59932 100644 --- a/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb +++ b/tests/noop/spec/hosts/openstack-cinder/openstack-cinder_spec.rb @@ -62,6 +62,8 @@ describe manifest do let(:glance_endpoint) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'glance','internal','hostname', glance_endpoint_default} let(:glance_api_servers) { Noop.hiera 'glance_api_servers', "#{glance_protocol}://#{glance_endpoint}:9292" } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + it 'should configure default_log_levels' do should contain_cinder_config('DEFAULT/default_log_levels').with_value(default_log_levels.sort.join(',')) end @@ -216,6 +218,7 @@ describe manifest do 'bind_host' => bind_host, 'identity_uri' => identity_uri, 'keymgr_encryption_auth_url' => "#{identity_uri}/v3", + 'memcached_servers' => memcached_servers, ) } it { is_expected.to contain_class('cinder::glance').with( diff --git a/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb b/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb index a356c19aa5..043f4003a7 100644 --- a/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb +++ b/tests/noop/spec/hosts/openstack-controller/openstack-controller_spec.rb @@ -22,24 +22,8 @@ describe manifest do workers_max = Noop.hiera 'workers_max' network_metadata = Noop.hiera_hash('network_metadata') - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:memcached_port) { Noop.hiera 'memcached_server_port', '11211' } let(:memcached_address) { Noop.puppet_function 'get_network_role_property', 'mgmt/memcache', 'ipaddr' } @@ -190,7 +174,7 @@ describe manifest do it 'nova config should contain right memcached servers list' do should contain_nova_config('keystone_authtoken/memcached_servers').with( - 'value' => memcached_authtoken_server, + 'value' => memcached_authtoken_server, ) end @@ -503,4 +487,3 @@ describe manifest do test_ubuntu_and_centos manifest end - diff --git a/tests/noop/spec/hosts/openstack-network/server-config_spec.rb b/tests/noop/spec/hosts/openstack-network/server-config_spec.rb index 2b71af62fd..932ff7439c 100644 --- a/tests/noop/spec/hosts/openstack-network/server-config_spec.rb +++ b/tests/noop/spec/hosts/openstack-network/server-config_spec.rb @@ -15,7 +15,14 @@ describe manifest do end shared_examples 'catalog' do - if (Noop.hiera('use_neutron') == true and Noop.hiera('role') =~ /neutron/) + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + + it 'should configure memcache servers' do + should contain_class('neutron::server').with( + 'memcached_servers' => memcached_servers, + ) + end + if (Noop.hiera('use_neutron') == true and Noop.hiera('role') =~ /controller/) let(:network_scheme) do Noop.hiera_hash('network_scheme', {}) end @@ -176,9 +183,14 @@ describe manifest do end end - it { should contain_class('neutron::server').with('manage_service' => 'true')} - it { should contain_class('neutron::server').with('enabled' => 'true')} - it { should contain_class('neutron::server').with('agent_down_time' => neutron_config['neutron_agent_down_time'])} + it 'configures neutron::server' do + should contain_class('neutron::server').with( + 'manage_service' => 'true', + 'enabled' => 'true', + 'agent_down_time' => neutron_config['neutron_agent_down_time'], + ) + + end it 'dvr' do should contain_class('neutron::server').with('router_distributed' => dvr) diff --git a/tests/noop/spec/hosts/roles/compute_spec.rb b/tests/noop/spec/hosts/roles/compute_spec.rb index da17e424dc..a7db66c598 100644 --- a/tests/noop/spec/hosts/roles/compute_spec.rb +++ b/tests/noop/spec/hosts/roles/compute_spec.rb @@ -15,10 +15,6 @@ describe manifest do shared_examples 'catalog' do - network_metadata = Noop.hiera 'network_metadata' - memcache_roles = Noop.hiera 'memcache_roles' - memcache_addresses = Noop.hiera 'memcached_addresses', false - memcache_server_port = Noop.hiera 'memcache_server_port', '11211' kombu_compression = Noop.hiera 'kombu_compression', '' ironic_enabled = Noop.hiera_structure 'ironic/enabled' @@ -30,21 +26,7 @@ describe manifest do }) } - let(:memcache_nodes) do - Noop.puppet_function 'get_nodes_hash_by_roles', network_metadata, memcache_roles - end - - let(:memcache_address_map) do - Noop.puppet_function 'get_node_to_ipaddr_map_by_network_role', memcache_nodes, 'mgmt/memcache' - end - - let (:memcache_servers) do - if not memcache_addresses - memcache_address_map.values.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - else - memcache_addresses.map { |server| "#{server}:#{memcache_server_port}" }.join(",") - end - end + let (:memcached_servers) { Noop.hiera 'memcached_servers' } let(:nova_hash) do Noop.hiera_structure 'nova' @@ -346,8 +328,8 @@ describe manifest do ) end it 'nova config should contain right memcached servers list' do - should contain_nova_config('keystone_authtoken/memcached_servers').with( - 'value' => memcache_servers, + should contain_class('nova').with( + :memcached_servers => memcached_servers ) end @@ -360,14 +342,10 @@ describe manifest do end it 'should configure nova cache correctly' do - should contain_nova_config('cache/enabled').with( - :value => use_cache - ) - should contain_nova_config('cache/backend').with( - :value => 'oslo_cache.memcache_pool' - ) - should contain_nova_config('cache/memcache_servers').with( - :value => memcache_servers + should contain_class('nova::cache').with( + :enabled => use_cache, + :backend => 'oslo_cache.memcache_pool', + :memcache_servers => memcached_servers, ) end @@ -539,5 +517,3 @@ describe manifest do test_ubuntu_and_centos manifest end - - diff --git a/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb b/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb index 903317a18a..8ec73fb73a 100644 --- a/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb +++ b/tests/noop/spec/hosts/roles/ironic-conductor_spec.rb @@ -17,6 +17,7 @@ describe manifest do ironic_db_user = Noop.hiera_structure 'ironic/db_user', 'ironic' ironic_db_name = Noop.hiera_structure 'ironic/db_name', 'ironic' + let(:memcached_servers) { Noop.hiera 'memcached_servers' } if ironic_enabled it 'should ensure that ironic-fa-deploy is installed' do should contain_package('ironic-fa-deploy').with('ensure' => 'present') @@ -55,6 +56,7 @@ describe manifest do should contain_ironic_config('pxe/tftp_root').with('value' => '/var/lib/ironic/tftpboot') should contain_ironic_config('neutron/url').with('value' => neutron_url) should contain_ironic_config('keystone_authtoken/admin_user').with('value' => ironic_user) + should contain_ironic_config('keystone_authtoken/memcached_servers').with('value' => memcached_servers.join(',')) should contain_ironic_config('glance/temp_url_endpoint_type').with('value' => temp_url_endpoint_type) end diff --git a/tests/noop/spec/hosts/sahara/sahara_spec.rb b/tests/noop/spec/hosts/sahara/sahara_spec.rb index 2d15c2366c..be4b81b659 100644 --- a/tests/noop/spec/hosts/sahara/sahara_spec.rb +++ b/tests/noop/spec/hosts/sahara/sahara_spec.rb @@ -25,6 +25,7 @@ describe manifest do let(:service_endpoint) { Noop.hiera('service_endpoint') } let(:public_vip) { Noop.hiera('public_vip') } let(:internal_net) { Noop.hiera_structure('neutron_config/default_private_net', 'admin_internal_net') } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } let(:network_scheme) do Noop.hiera_hash 'network_scheme' @@ -139,7 +140,8 @@ describe manifest do 'rabbit_port' => amqp_port, 'rabbit_hosts' => amqp_hosts.split(","), 'host' => bind_address, - 'port' => '8386' + 'port' => '8386', + 'memcached_servers' => memcached_servers, ) end diff --git a/tests/noop/spec/hosts/swift/proxy_storage_spec.rb b/tests/noop/spec/hosts/swift/proxy_storage_spec.rb index 1a37c3825f..b2c016de90 100644 --- a/tests/noop/spec/hosts/swift/proxy_storage_spec.rb +++ b/tests/noop/spec/hosts/swift/proxy_storage_spec.rb @@ -11,12 +11,9 @@ describe manifest do storage_hash = Noop.hiera_hash 'storage' swift_hash = Noop.hiera_hash 'swift' network_scheme = Noop.hiera_hash 'network_scheme' - network_metadata = Noop.hiera_hash 'network_metadata' - memcached_nodes = Noop.puppet_function('get_nodes_hash_by_roles', network_metadata, ['primary-controller', 'controller']) - memcached_addresses = Noop.hiera 'memcached_addresses' - memcached_port = Noop.hiera 'memcache_server_port', '11211' - memcached_servers = memcached_addresses.map{ |n| n = n + ':' + memcached_port } + let(:memcached_servers) { Noop.hiera 'memcached_servers' } + management_vip = Noop.hiera('management_vip') swift_operator_roles = storage_hash.fetch('swift_operator_roles', ['admin', 'SwiftOperator', '_member_']) @@ -174,6 +171,12 @@ describe manifest do ) end + it 'should contain memcached params' do + should contain_class('openstack_tasks::swift::parts::proxy').with( + :memcached_servers => memcached_servers + ) + end + it 'should configure health check service correctly' do if !bind_to_one should_not contain_class('openstack_tasks::swift:::parts::status').with(