476c8115c5
Replace deprecated dalen-puppetdbquery module with native puppetdb_query function using PQL syntax to resolve URI.escape compatibility issues. This is required to migrated to Puppet 8 (and kubernetes). Changes: - Remove dalen-puppetdbquery dependency from Puppetfile - Replace query_nodes() calls with puppetdb_query() using PQL syntax - Update 27 function calls across 18 Puppet manifests - Maintain equivalent functionality with improved compatibility Reviewed-on: #457
65 lines
2.2 KiB
Puppet
65 lines
2.2 KiB
Puppet
class redisha::redis (
|
|
Boolean $manage_repo = $redisha::manage_repo,
|
|
Boolean $redisha_members_lookup = $redisha::redisha_members_lookup,
|
|
Optional[String] $redisha_members_role = $redisha::redisha_members_role,
|
|
Array $redisha_servers = $redisha::redisha_servers,
|
|
Stdlib::Host $redis_host = $redisha::params::redis_host,
|
|
Stdlib::Port $redis_port = $redisha::params::redis_port,
|
|
Optional[String] $requirepass = $redisha::params::requirepass,
|
|
Optional[String] $dnf_module_stream = $redisha::params::dnf_module_stream,
|
|
Integer[1] $databases = $redisha::params::databases,
|
|
Optional[Variant[String, Sensitive[String], Deferred]] $masterauth = $redisha::params::masterauth,
|
|
) inherits redisha::params {
|
|
|
|
# if lookup is enabled
|
|
if $redisha_members_lookup {
|
|
|
|
# check that the role is also set
|
|
unless !($redisha_members_role == undef) {
|
|
fail("redisha_members_role must be provided for ${title} when redisha_members_lookup is True")
|
|
}
|
|
|
|
# if it is, find hosts, sort them so they dont cause changes every run
|
|
$servers_array = sort(puppetdb_query(
|
|
"facts[certname] {
|
|
name = 'enc_role' and value = '${redisha_members_role}' and
|
|
certname in facts[certname] { name = 'region' and value = '${facts['region']}' }
|
|
}"
|
|
).map |$fact| { $fact['certname'] })
|
|
|
|
# else use provided array from params
|
|
}else{
|
|
$servers_array = $redisha_servers
|
|
}
|
|
|
|
|
|
if length($servers_array) >= 3 {
|
|
|
|
# check if this is the master_node
|
|
if $servers_array[0] == $::facts['networking']['fqdn'] {
|
|
class { 'redis':
|
|
bind => $redis_host,
|
|
port => $redis_port,
|
|
databases => $databases,
|
|
requirepass => $requirepass,
|
|
masterauth => $masterauth,
|
|
dnf_module_stream => $dnf_module_stream,
|
|
ulimit_managed => false,
|
|
}
|
|
}else{
|
|
class { 'redis':
|
|
bind => $redis_host,
|
|
port => $redis_port,
|
|
databases => $databases,
|
|
requirepass => $requirepass,
|
|
masterauth => $masterauth,
|
|
dnf_module_stream => $dnf_module_stream,
|
|
ulimit_managed => false,
|
|
replicaof => "${servers_array[0]} ${redis_port}",
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|