Merge "Use redis sentinel for taskflow backend"

This commit is contained in:
Zuul 2024-07-29 15:42:20 +00:00 committed by Gerrit Code Review
commit 1fbc23840a
3 changed files with 33 additions and 9 deletions

View File

@ -84,7 +84,8 @@ scenario](#all-in-one).
| om rpc | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit |
| om notify | rabbit | rabbit | rabbit | rabbit | rabbit | rabbit |
| oslo.cache | redis | sentinel | memcache | memcache | memcache | memcache |
| tooz | redis | sentinel | redis | redis | redis | (redis) |
| tooz | redis | sentinel | redis | redis | redis | |
| jobboard | | | | redis | sentinel | |
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

View File

@ -25,11 +25,13 @@ case $facts['os']['family'] {
$ipv6 = false
$modular_libvirt = false
$ovn_metadata_agent_enabled = true
$jobboard_backend = 'redis'
}
'RedHat': {
$ipv6 = true
$modular_libvirt = true
$ovn_metadata_agent_enabled = false
$jobboard_backend = 'redis_sentinel'
}
default: {
fail("Unsupported osfamily (${facts['os']['family']})")
@ -66,7 +68,8 @@ class { 'openstack_integration::nova':
libvirt_guests_enabled => true,
}
class { 'openstack_integration::octavia':
provider_driver => 'ovn'
provider_driver => 'ovn',
jobboard_backend => $jobboard_backend,
}
class { 'openstack_integration::horizon':

View File

@ -8,9 +8,14 @@
# (optional) Provider driver used in Octavia.
# Defaults to 'amphora'.
#
# [*jobboard_backend*]
# (optional) Jobboard backend.
# Defaults to 'redis'.
#
class openstack_integration::octavia (
$notification_topics = $facts['os_service_default'],
$provider_driver = 'amphora',
$jobboard_backend = 'redis',
) {
include openstack_integration::config
@ -161,9 +166,18 @@ class openstack_integration::octavia (
heartbeat_key => 'abcdefghijkl',
}
$jobboard_redis_sentinel = $jobboard_backend ? {
'redis_sentinel' => 'mymaster',
default => undef
}
$jobboard_backend_port = $jobboard_backend ? {
'redis_sentinel' => 26379,
default => 6379,
}
class { 'octavia::task_flow':
max_workers => 2,
persistence_connection => os_database_connection({
max_workers => 2,
persistence_connection => os_database_connection({
'dialect' => 'mysql+pymysql',
'host' => $::openstack_integration::config::ip_for_url,
'username' => 'octavia',
@ -172,14 +186,20 @@ class openstack_integration::octavia (
'charset' => 'utf8',
'extra' => $::openstack_integration::config::db_extra,
}),
jobboard_enabled => true,
jobboard_backend_hosts => $::openstack_integration::config::host,
jobboard_backend_port => 6379,
jobboard_backend_password => 'a_big_secret',
jobboard_redis_backend_ssl_options => {
jobboard_enabled => true,
jobboard_backend_hosts => $::openstack_integration::config::host,
jobboard_backend_port => $jobboard_backend_port,
jobboard_backend_password => 'a_big_secret',
jobboard_redis_sentinel => $jobboard_redis_sentinel,
jobboard_redis_sentinel_password => 'a_big_secret',
jobboard_redis_backend_ssl_options => {
'ssl' => $::openstack_integration::config::ssl
},
jobboard_redis_sentinel_ssl_options => {
'ssl' => $::openstack_integration::config::ssl
}
}
class { 'octavia::worker':
workers => 2,
}