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
This commit is contained in:
Alex Schultz 2016-06-30 11:48:41 -06:00
parent 69aece333b
commit df416f53d2
38 changed files with 135 additions and 155 deletions

View File

@ -78,11 +78,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, ironic-api]
refresh_on: [nova_config, nova_paste_api_ini]

View File

@ -13,8 +13,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)),

View File

@ -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(

View File

@ -32,10 +32,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')),

View File

@ -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: /glance/

View File

@ -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])
@ -136,21 +135,22 @@ 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':
enabled => true,
manage_service => true,
package_ensure => 'present',
keystone_user => $aodh_user_name,
keystone_password => $aodh_user_password,
keystone_tenant => $tenant,
keystone_auth_uri => $keystone_auth_uri,
keystone_auth_url => $keystone_auth_url,
host => $aodh_api_bind_host,
port => $aodh_api_bind_port,
enabled => true,
manage_service => true,
package_ensure => 'present',
keystone_user => $aodh_user_name,
keystone_password => $aodh_user_password,
keystone_tenant => $tenant,
keystone_auth_uri => $keystone_auth_uri,
keystone_auth_url => $keystone_auth_url,
host => $aodh_api_bind_host,
port => $aodh_api_bind_port,
memcached_servers => $memcached_servers,
}
$haproxy_stats_url = "http://${management_vip}:10000/;csv"

View File

@ -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')
#as $ssl default value in ceilometer::wsgi::apache is true and
#we use SSL at HAproxy, but not the API host we should set 'false'
#value for $ssl.
@ -195,6 +197,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,
service_name => 'httpd',
api_workers => $service_workers,

View File

@ -28,6 +28,7 @@ class openstack_tasks::glance::glance {
$ironic_hash = hiera_hash('ironic', {})
$primary_controller = hiera('primary_controller')
$kombu_compression = hiera('kombu_compression', $::os_service_default)
$memcached_servers = hiera('memcached_servers')
$override_configuration = hiera_hash('configuration', {})
@ -175,6 +176,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
@ -220,6 +222,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 {
@ -255,6 +258,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':

View File

@ -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')
@ -123,7 +123,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), ',')
}
#------------------------------
@ -239,6 +239,7 @@ class openstack_tasks::heat::heat {
database_max_retries => $max_retries,
kombu_compression => $kombu_compression,
memcached_servers => $memcached_servers
}
# Engine

View File

@ -26,6 +26,8 @@ class openstack_tasks::ironic::ironic {
$amqp_durable_queues = pick($ironic_hash['amqp_durable_queues'], false)
$kombu_compression = hiera('kombu_compression', $::os_service_default)
$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')
@ -98,5 +100,6 @@ class openstack_tasks::ironic::ironic {
admin_password => $ironic_user_password,
neutron_url => "${neutron_protocol}://${neutron_endpoint}:9696",
public_endpoint => "${public_protocol}://${public_address}:6385",
memcached_servers => $memcached_servers,
}
}

View File

@ -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', {})
@ -115,7 +113,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,
}
class { '::nova::compute':

View File

@ -87,9 +87,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'

View File

@ -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', $::os_service_default)
$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])
@ -145,8 +146,16 @@ class openstack_tasks::murano::murano {
external_network => $external_network,
use_trusts => true,
kombu_compression => $kombu_compression,
# 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,

View File

@ -22,6 +22,7 @@ class openstack_tasks::openstack_cinder::openstack_cinder {
$primary_controller = hiera('primary_controller')
$proxy_port = hiera('proxy_port', '8080')
$kombu_compression = hiera('kombu_compression', $::os_service_default)
$memcached_servers = hiera('memcached_servers')
$db_type = 'mysql'
$db_host = pick($cinder_hash['db_host'], hiera('database_vip'))
@ -180,6 +181,7 @@ class openstack_tasks::openstack_cinder::openstack_cinder {
nova_catalog_admin_info => 'compute:nova:adminURL',
nova_catalog_info => 'compute:nova:internalURL',
sync_db => $primary_controller,
memcached_servers => $memcached_servers,
}
class { 'cinder::scheduler': }

View File

@ -69,8 +69,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)
@ -164,7 +162,7 @@ class openstack_tasks::openstack_controller::openstack_controller {
}
}
$memcached_addresses = suffix($memcached_server, inline_template(":<%= @memcached_port %>"))
$memcached_servers = hiera('memcached_servers')
$rpc_backend = 'nova.openstack.common.rpc.impl_kombu'
$amqp_hosts = hiera('amqp_hosts','')
@ -200,7 +198,7 @@ class openstack_tasks::openstack_controller::openstack_controller {
notify_api_faults => pick($nova_hash['notify_api_faults'], false),
notification_driver => $ceilometer_hash['notification_driver'],
notify_on_state_change => $notify_on_state_change,
memcached_servers => $memcached_addresses,
memcached_servers => $memcached_servers,
cinder_catalog_info => pick($nova_hash['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'),
database_max_pool_size => $max_pool_size,
database_max_retries => $max_retries,
@ -219,7 +217,7 @@ class openstack_tasks::openstack_controller::openstack_controller {
class { '::nova::cache':
enabled => true,
backend => 'oslo_cache.memcache_pool',
memcache_servers => $memcached_addresses,
memcache_servers => $memcached_servers,
}
} else {
ensure_packages($pymemcache_package_name)

View File

@ -62,6 +62,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', {})
@ -229,6 +230,7 @@ class openstack_tasks::openstack_network::server_config {
qos_notification_drivers => $qos_notification_drivers,
enabled => true,
manage_service => true,
memcached_servers => $memcached_servers,
}
include ::neutron::params

View File

@ -80,10 +80,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']) {
@ -279,7 +276,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'),
kombu_compression => $kombu_compression,
block_device_allocate_retries => $block_device_allocate_retries,
@ -289,7 +286,7 @@ class openstack_tasks::roles::compute {
class { '::nova::cache':
enabled => $nova_cache,
backend => 'oslo_cache.memcache_pool',
memcache_servers => $memcached_addresses,
memcache_servers => $memcached_servers,
}
class { '::nova::availability_zone':

View File

@ -29,6 +29,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')
$ssl_hash = hiera('use_ssl', {})
$neutron_endpoint_default = hiera('neutron_endpoint', $management_vip)
@ -106,6 +107,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;

View File

@ -33,6 +33,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', $::os_service_default)
$memcached_servers = hiera('memcached_servers')
#################################################################
@ -113,6 +114,7 @@ class openstack_tasks::sahara::sahara {
rabbit_port => $amqp_port,
rabbit_hosts => split($amqp_hosts, ','),
kombu_compression => $kombu_compression,
memcached_servers => $memcached_servers,
}
if $public_ssl_hash['services'] {

View File

@ -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,

View File

@ -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')
@ -79,8 +79,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,

View File

@ -487,6 +487,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 },

View File

@ -115,6 +115,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 -%>

View File

@ -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'
@ -82,7 +79,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/auth_url').with(:value => keystone_auth_url)
should contain_aodh_config('keystone_authtoken/auth_uri').with(:value => keystone_auth_uri)

View File

@ -56,6 +56,7 @@ describe manifest do
ssl = 'false'
let(:memcached_servers) { Noop.hiera 'memcached_servers' }
let (:api_bind_address) do
api_bind_address = Noop.puppet_function('get_network_role_property', 'ceilometer/api', 'ipaddr')
end
@ -91,6 +92,7 @@ describe manifest do
'keystone_user' => ceilometer_user,
'keystone_password' => ceilometer_user_password,
'keystone_tenant' => ceilometer_tenant,
'memcached_servers' => memcached_servers,
'host' => api_bind_address,
'service_name' => 'httpd',
)

View File

@ -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,
@ -116,6 +118,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
@ -127,6 +130,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'
@ -155,6 +159,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

View File

@ -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
@ -122,6 +119,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' => [],
@ -140,7 +141,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

View File

@ -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,21 +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' }
let(:ssl_hash) { Noop.hiera_hash 'use_ssl', {} }
let(:admin_auth_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'keystone', 'admin','protocol','http' }
@ -84,7 +65,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

View File

@ -46,6 +46,7 @@ if ironic_enabled
let(:neutron_protocol) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'neutron','internal','protocol','http' }
let(:neutron_address) { Noop.puppet_function 'get_ssl_property',ssl_hash,{},'neutron','internal','hostname', neutron_endpoint_default }
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(','))
@ -69,6 +70,7 @@ if ironic_enabled
'admin_tenant_name' => admin_tenant,
'admin_user' => admin_user,
'admin_password' => admin_password,
'memcached_servers' => memcached_servers,
'neutron_url' => "#{neutron_protocol}://#{neutron_address}:9696",
'public_endpoint' => "#{public_protocol}://#{public_address}:6385"
)

View File

@ -19,26 +19,8 @@ describe manifest do
# TODO All this stuff should be moved to shared examples controller* tests.
keystone_hash = Noop.hiera_structure 'keystone'
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(:configuration_override) do
Noop.hiera_structure 'configuration'
@ -179,8 +161,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')

View File

@ -58,6 +58,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

View File

@ -61,6 +61,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
@ -212,6 +214,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(

View File

@ -34,25 +34,9 @@ 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'
use_cache = Noop.hiera_structure 'nova/use_cache', true
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' }
primary_controller = Noop.hiera 'primary_controller'
service_endpoint = Noop.hiera 'service_endpoint'
@ -192,7 +176,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
@ -228,6 +212,7 @@ describe manifest do
:database_max_retries => max_retries,
:database_max_overflow => max_overflow,
:notify_on_state_change => 'vm_and_task_state',
:memcached_servers => memcached_servers,
)
end
@ -240,7 +225,7 @@ describe manifest do
'value' => true,
)
should contain_nova_config('cache/memcache_servers').with(
'value' => memcache_servers,
'value' => memcached_servers.join(','),
)
end
end

View File

@ -15,6 +15,15 @@ describe manifest do
end
shared_examples 'catalog' do
let(:memcached_servers) { Noop.hiera 'memcached_servers' }
it 'should configure memcache servers' do
should contain_class('neutron::server').with(
'memcached_servers' => memcached_servers,
)
end
# TODO(aschultz): this entire test needs to be cleaned up, LP#1598296
if Noop.hiera('role') =~ /controller/
let(:network_scheme) do
Noop.hiera_hash('network_scheme', {})
@ -192,9 +201,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)

View File

@ -15,11 +15,7 @@ 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'
let(:facts) {
@ -29,21 +25,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'
@ -345,8 +327,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
@ -354,7 +336,7 @@ describe manifest do
should contain_class('nova::cache').with(
:enabled => use_cache,
:backend => 'oslo_cache.memcache_pool',
:memcache_servers => memcache_servers.split(','),
:memcache_servers => memcached_servers,
)
end

View File

@ -17,6 +17,8 @@ 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')
@ -70,6 +72,7 @@ describe manifest do
should contain_ironic_config('keystone_authtoken/auth_uri').with('value' => internal_auth_uri)
should contain_ironic_config('keystone_authtoken/identity_uri').with('value' => admin_identity_uri)
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

View File

@ -24,6 +24,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'
@ -138,7 +139,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

View File

@ -11,12 +11,8 @@ 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 +170,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(