Files
puppet-prod/modules/redisha/manifests/sentinel.pp
T
unkinben ae256b7c0b
ci/woodpecker/pr/erb-validate Pipeline was successful
ci/woodpecker/pr/ruby-validate Pipeline was successful
ci/woodpecker/pr/puppet-lint Pipeline was successful
ci/woodpecker/pr/yamllint Pipeline was successful
ci/woodpecker/pr/bolt-validate Pipeline was successful
ci/woodpecker/pr/epp-validate Pipeline was successful
ci/woodpecker/pr/puppet-validate Pipeline was successful
ci/woodpecker/pr/ruby-check Pipeline was successful
fix: replace puppetdbquery with native PQL queries
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
2026-03-21 22:16:06 +11:00

55 lines
2.3 KiB
Puppet

class redisha::sentinel (
Boolean $redisha_members_lookup = $redisha::redisha_members_lookup,
Optional[String] $redisha_members_role = $redisha::redisha_members_role,
Array $redisha_servers = $redisha::redisha_servers,
Stdlib::Port $redis_port = $redisha::params::redis_port,
Optional[String] $requirepass = $redisha::params::requirepass,
String[1] $master_name = $redisha::params::master_name,
Optional[Variant[String, Sensitive[String]]] $auth_pass = $redisha::params::auth_pass,
Integer[1] $quorum = $redisha::params::quorum,
Enum['yes', 'no'] $sentinel_resolve_hostnames = $redisha::params::sentinel_resolve_hostnames,
Enum['yes', 'no'] $sentinel_announce_hostnames = $redisha::params::sentinel_announce_hostnames,
Stdlib::Host $sentinel_announce_ip = $redisha::params::sentinel_announce_ip,
Array[Stdlib::IP::Address] $sentinel_bind = $redisha::params::sentinel_bind,
Stdlib::Port $sentinel_port = $redisha::params::sentinel_port,
) 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 {
class { 'redis::sentinel':
master_name => $master_name,
redis_host => $servers_array[0],
redis_port => $redis_port,
requirepass => $requirepass,
auth_pass => $auth_pass,
quorum => $quorum,
sentinel_resolve_hostnames => $sentinel_resolve_hostnames,
sentinel_announce_ip => $sentinel_announce_ip,
sentinel_announce_hostnames => $sentinel_announce_hostnames,
sentinel_port => $sentinel_port,
sentinel_bind => $sentinel_bind,
}
}
}