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 df416f53d2)
This commit is contained in:
Sergey Abramov 2016-11-09 12:43:30 +03:00 committed by Vladimir Kozhukalov
parent eb9d3be713
commit 6d5911a30b
39 changed files with 136 additions and 166 deletions

View File

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

View File

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

View File

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

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

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

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: /(primary-)?rabbitmq/

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])
@ -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"

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')
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,

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', '')
$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':

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')
@ -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

View File

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

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', {})
@ -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,
}

View File

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

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', '')
$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,

View File

@ -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': }

View File

@ -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}"

View File

@ -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' |> {

View File

@ -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':

View File

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

View File

@ -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'] {

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,
@ -225,4 +222,4 @@ class openstack_tasks::swift::parts::proxy (
anchor { 'openstack_tasks_proxy_end' :}
}
}
}

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

View File

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

View File

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

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'
@ -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)

View File

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

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

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

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

View File

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

View File

@ -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')

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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