Test redis (sentinel) cache backend

oslo.cache 3.7.0 introduced new options to use redis or redis sentinel
as backend. To test the functionality to configure this backend, switch
the cache backend in scenario001(Redis) and scenario002(Sentinel).

The switch is made only in CentOS because Caracal (or master) packages
are not available for Ubuntu, but may be later made in Ubuntu as well
once UCA Caracal is released.

Change-Id: Ieb681f5bbbf28e1963ab346c17e07265769da4e6
This commit is contained in:
Takashi Kajinami 2024-04-02 23:36:36 +09:00
parent f1ba88dd4e
commit 646eeea9d5
12 changed files with 72 additions and 12 deletions

View File

@ -77,11 +77,13 @@ scenario](#all-in-one).
| taas | | | | X | | | | taas | | | | X | | |
| bgpvpn-api | | | | X | | | | bgpvpn-api | | | | X | | |
| bgp-dr | | | | X | | | | bgp-dr | | | | X | | |
| memcached | X | X | X | X | X | X |
| redis | X | X | X | X | X | | | redis | X | X | X | X | X | |
| l2gw | | | | X | | | | l2gw | | | | X | | |
| octavia | | | | X | X | | | octavia | | | | X | X | |
| om rpc | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit | | om rpc | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit |
| om notify | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit | | om notify | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit |
| oslo.cache | redis | sentinel | memcache | memcache | memcache | memcache |
When the Jenkins slave is created, the *run_tests.sh* script will be executed. When the Jenkins slave is created, the *run_tests.sh* script will be executed.
This script will execute *install_modules.sh* that prepare /etc/puppet/modules This script will execute *install_modules.sh* that prepare /etc/puppet/modules

View File

@ -23,9 +23,11 @@ if $facts['os']['name'] == 'Ubuntu' {
case $facts['os']['family'] { case $facts['os']['family'] {
'Debian': { 'Debian': {
$ipv6 = false $ipv6 = false
$cache_backend = 'memcached'
} }
'RedHat': { 'RedHat': {
$ipv6 = true $ipv6 = true
$cache_backend = 'redis'
} }
default: { default: {
fail("Unsupported osfamily (${facts['os']['family']})") fail("Unsupported osfamily (${facts['os']['family']})")
@ -41,6 +43,7 @@ include openstack_integration
class { 'openstack_integration::config': class { 'openstack_integration::config':
ssl => $ssl, ssl => $ssl,
ipv6 => $ipv6, ipv6 => $ipv6,
cache_backend => $cache_backend,
} }
if $ssl { if $ssl {
include openstack_integration::cacert include openstack_integration::cacert

View File

@ -23,9 +23,11 @@ if $facts['os']['name'] == 'Ubuntu' {
case $facts['os']['family'] { case $facts['os']['family'] {
'Debian': { 'Debian': {
$ipv6 = false $ipv6 = false
$cache_backend = 'memcached'
} }
'RedHat': { 'RedHat': {
$ipv6 = true $ipv6 = false
$cache_backend = 'redis_sentinel'
} }
default: { default: {
fail("Unsupported osfamily (${facts['os']['family']})") fail("Unsupported osfamily (${facts['os']['family']})")
@ -36,6 +38,7 @@ include openstack_integration
class { 'openstack_integration::config': class { 'openstack_integration::config':
ssl => $ssl, ssl => $ssl,
ipv6 => $ipv6, ipv6 => $ipv6,
cache_backend => $cache_backend,
} }
if $ssl { if $ssl {
include openstack_integration::cacert include openstack_integration::cacert

View File

@ -30,7 +30,13 @@ class openstack_integration::ceilometer (
debug => true, debug => true,
} }
class { 'ceilometer::cache': class { 'ceilometer::cache':
backend => $::openstack_integration::config::cache_driver,
enabled => true,
memcache_servers => $::openstack_integration::config::memcached_servers, memcache_servers => $::openstack_integration::config::memcached_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'ceilometer': class { 'ceilometer':
telemetry_secret => 'secrete', telemetry_secret => 'secrete',

View File

@ -16,11 +16,16 @@
# (optional) The oslo.messaging backend to configure for notify. # (optional) The oslo.messaging backend to configure for notify.
# Defaults to 'rabbit'. # Defaults to 'rabbit'.
# #
# [*cache_backend*]
# (optional) The oslo.cache backend
# Defaults to 'memcached'.
#
class openstack_integration::config ( class openstack_integration::config (
$ssl = false, $ssl = false,
$ipv6 = false, $ipv6 = false,
$rpc_backend = 'rabbit', $rpc_backend = 'rabbit',
$notify_backend = 'rabbit', $notify_backend = 'rabbit',
$cache_backend = 'memcached',
) { ) {
include openstack_integration::params include openstack_integration::params
@ -71,6 +76,19 @@ class openstack_integration::config (
$keystone_auth_uri = "${base_url}:5000" $keystone_auth_uri = "${base_url}:5000"
$keystone_admin_uri = "${base_url}:5000" $keystone_admin_uri = "${base_url}:5000"
$redis_server = "${ip_for_url}:6379"
$redis_sentinel_server = "${ip_for_url}:26379"
$cache_driver = $cache_backend ? {
'redis' => 'dogpile.cache.redis',
'redis_sentinel' => 'dogpile.cache.redis_sentinel',
default => 'dogpile.cache.pymemcache'
}
$cache_tls_enabled = $cache_backend ? {
'redis' => $ssl,
'redis_sentinel' => $ssl,
default => false,
}
$tooz_url = os_url({ $tooz_url = os_url({
'scheme' => 'redis', 'scheme' => 'redis',
'password' => 'a_big_secret', 'password' => 'a_big_secret',

View File

@ -47,9 +47,13 @@ class openstack_integration::heat (
debug => true, debug => true,
} }
class { 'heat::cache': class { 'heat::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'heat::db': class { 'heat::db':
database_connection => os_database_connection({ database_connection => os_database_connection({

View File

@ -63,9 +63,13 @@ class openstack_integration::keystone (
debug => true, debug => true,
} }
class { 'keystone::cache': class { 'keystone::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'keystone': class { 'keystone':
enabled => true, enabled => true,

View File

@ -260,9 +260,13 @@ class openstack_integration::neutron (
} }
class { 'neutron::cache': class { 'neutron::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'neutron::db': class { 'neutron::db':
database_connection => os_database_connection({ database_connection => os_database_connection({

View File

@ -163,9 +163,13 @@ class openstack_integration::nova (
service_name => 'httpd', service_name => 'httpd',
} }
class { 'nova::cache': class { 'nova::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'nova::db::sync': class { 'nova::db::sync':
extra_params => '--debug', extra_params => '--debug',

View File

@ -20,9 +20,13 @@ class openstack_integration::trove {
debug => true, debug => true,
} }
class { 'trove::cache': class { 'trove::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'trove::db': class { 'trove::db':
database_connection => os_database_connection({ database_connection => os_database_connection({

View File

@ -22,9 +22,13 @@ class openstack_integration::watcher {
host => $::openstack_integration::config::host, host => $::openstack_integration::config::host,
} }
class { 'watcher::cache': class { 'watcher::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'watcher::db': class { 'watcher::db':
database_connection => os_database_connection({ database_connection => os_database_connection({

View File

@ -35,9 +35,13 @@ class openstack_integration::zaqar {
password => 'a_big_secret' password => 'a_big_secret'
} }
class { 'zaqar::cache': class { 'zaqar::cache':
backend => 'dogpile.cache.pymemcache', backend => $::openstack_integration::config::cache_driver,
enabled => true, enabled => true,
memcache_servers => $::openstack_integration::config::memcache_servers, memcache_servers => $::openstack_integration::config::memcache_servers,
redis_server => $::openstack_integration::config::redis_server,
redis_password => 'a_big_secret',
redis_sentinels => $::openstack_integration::config::redis_sentinel_server,
tls_enabled => $::openstack_integration::config::cache_tls_enabled,
} }
class { 'zaqar::management::sqlalchemy': class { 'zaqar::management::sqlalchemy':
uri => os_database_connection({ uri => os_database_connection({