diff --git a/Puppetfile b/Puppetfile index 2934ad1..50bdcb5 100644 --- a/Puppetfile +++ b/Puppetfile @@ -53,7 +53,6 @@ mod 'saz-ssh', '13.1.0' mod 'saz-limits', '5.0.0' mod 'ghoneycutt-timezone', '4.0.0' mod 'ghoneycutt-puppet', '3.3.0' -mod 'dalen-puppetdbquery', '3.0.1' mod 'markt-galera', '3.1.0' mod 'kogitoapp-minio', '1.1.4' mod 'broadinstitute-certs', '3.0.1' diff --git a/modules/incus/manifests/cluster.pp b/modules/incus/manifests/cluster.pp index 80c76b5..6146dd4 100644 --- a/modules/incus/manifests/cluster.pp +++ b/modules/incus/manifests/cluster.pp @@ -22,7 +22,9 @@ class incus::cluster ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${members_role}' and region='${facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/modules/redisha/manifests/redis.pp b/modules/redisha/manifests/redis.pp index cf375e4..7a1122c 100644 --- a/modules/redisha/manifests/redis.pp +++ b/modules/redisha/manifests/redis.pp @@ -20,7 +20,9 @@ class redisha::redis ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${redisha_members_role}' and region='${facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${redisha_members_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/modules/redisha/manifests/sentinel.pp b/modules/redisha/manifests/sentinel.pp index 9ef4d42..e04254d 100644 --- a/modules/redisha/manifests/sentinel.pp +++ b/modules/redisha/manifests/sentinel.pp @@ -23,7 +23,9 @@ class redisha::sentinel ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${redisha_members_role}' and region='${facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${redisha_members_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/modules/stalwart/manifests/init.pp b/modules/stalwart/manifests/init.pp index 093e960..01db028 100644 --- a/modules/stalwart/manifests/init.pp +++ b/modules/stalwart/manifests/init.pp @@ -167,7 +167,13 @@ class stalwart ( # Query cluster members for validation $cluster_query = "enc_role='${cluster_role}' and country='${facts['country']}' and region='${facts['region']}'" - $cluster_members_raw = query_nodes($cluster_query, 'networking.fqdn') + $cluster_members_raw = puppetdb_query( + "inventory[networking.fqdn] { + facts.enc_role = '${cluster_role}' and + facts.country = '${facts['country']}' and + facts.region = '${facts['region']}' + }" + ).map |$node| { $node['networking.fqdn'] } $cluster_members = $cluster_members_raw ? { undef => [], default => $cluster_members_raw, @@ -180,7 +186,13 @@ class stalwart ( # Query HAProxy nodes for proxy trusted networks $haproxy_query = "enc_role='${haproxy_role}' and country='${facts['country']}' and region='${facts['region']}'" - $haproxy_members_raw = query_nodes($haproxy_query, 'networking.ip') + $haproxy_members_raw = puppetdb_query( + "inventory[networking.ip] { + facts.enc_role = '${haproxy_role}' and + facts.country = '${facts['country']}' and + facts.region = '${facts['region']}' + }" + ).map |$node| { $node['networking.ip'] } $haproxy_ips = $haproxy_members_raw ? { undef => [], default => sort($haproxy_members_raw), diff --git a/site/profiles/manifests/consul/client.pp b/site/profiles/manifests/consul/client.pp index f79496f..4d9697a 100644 --- a/site/profiles/manifests/consul/client.pp +++ b/site/profiles/manifests/consul/client.pp @@ -28,7 +28,9 @@ class profiles::consul::client ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${members_role}' and region='${::facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${::facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/site/profiles/manifests/consul/server.pp b/site/profiles/manifests/consul/server.pp index c2107a4..4f38398 100644 --- a/site/profiles/manifests/consul/server.pp +++ b/site/profiles/manifests/consul/server.pp @@ -65,12 +65,16 @@ class profiles::consul::server ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${members_role}' and region='${::facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${::facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) if $join_remote_regions { # get all nodes in the members_role for each other region $region_to_servers = $remote_regions.reduce({}) |$memo, $region| { - $servers = sort(query_nodes("enc_role='${members_role}' and region='${region}'", 'networking.fqdn')) + $servers = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${region}' }" + ).map |$node| { $node['networking.fqdn'] }) $memo + { $region => $servers } } diff --git a/site/profiles/manifests/dns/base.pp b/site/profiles/manifests/dns/base.pp index ee2fff0..e0c49dc 100644 --- a/site/profiles/manifests/dns/base.pp +++ b/site/profiles/manifests/dns/base.pp @@ -18,9 +18,15 @@ class profiles::dns::base ( $nameserver_array = $ns_role ? { undef => $nameservers, default => $use_ns ? { - 'all' => query_nodes("enc_role='${ns_role}'", 'networking.ip'), - 'region' => query_nodes("enc_role='${ns_role}' and region=${facts['region']}", 'networking.ip'), - 'country' => query_nodes("enc_role='${ns_role}' and country=${facts['country']}", 'networking.ip'), + 'all' => puppetdb_query( + "inventory[networking.ip] { facts.enc_role = '${ns_role}' }" + ).map |$node| { $node['networking.ip'] }, + 'region' => puppetdb_query( + "inventory[networking.ip] { facts.enc_role = '${ns_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.ip'] }, + 'country' => puppetdb_query( + "inventory[networking.ip] { facts.enc_role = '${ns_role}' and facts.country = '${facts['country']}' }" + ).map |$node| { $node['networking.ip'] }, } } diff --git a/site/profiles/manifests/dns/master.pp b/site/profiles/manifests/dns/master.pp index 73c23b6..234d73a 100644 --- a/site/profiles/manifests/dns/master.pp +++ b/site/profiles/manifests/dns/master.pp @@ -20,9 +20,15 @@ class profiles::dns::master ( $nameservers_array = $ns_role ? { undef => [$facts['networking']['fqdn']], default => $use_ns ? { - 'all' => sort(query_nodes("enc_role='${ns_role}'", 'networking.fqdn')), - 'region' => sort(query_nodes("enc_role='${ns_role}' and region=${facts['region']}", 'networking.fqdn')), - 'country' => sort(query_nodes("enc_role='${ns_role}' and country=${facts['country']}", 'networking.fqdn')), + 'all' => sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${ns_role}' }" + ).map |$node| { $node['networking.fqdn'] }), + 'region' => sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${ns_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }), + 'country' => sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${ns_role}' and facts.country = '${facts['country']}' }" + ).map |$node| { $node['networking.fqdn'] }), } } @@ -32,7 +38,7 @@ class profiles::dns::master ( $facts['networking']['fqdn'] => $facts['networking']['ip'] }, default => $nameservers_array.reduce({}) |$acc, $fqdn| { - $result = query_nodes("networking.fqdn='${fqdn}'", 'networking.ip') + $result = puppetdb_query("inventory[networking.ip] { networking.fqdn = '${fqdn}' }").map |$node| { $node['networking.ip'] } $ip = $result[0] $acc + { "${fqdn}." => $ip } } diff --git a/site/profiles/manifests/etcd/node.pp b/site/profiles/manifests/etcd/node.pp index 0a13f60..26d5216 100644 --- a/site/profiles/manifests/etcd/node.pp +++ b/site/profiles/manifests/etcd/node.pp @@ -18,7 +18,9 @@ class profiles::etcd::node ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${members_role}' and region='${facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ @@ -31,7 +33,7 @@ class profiles::etcd::node ( $initial_cluster = $servers_array.map |$fqdn| { # lookup the ip address for the current fqdn - $ip = query_nodes("networking.fqdn='${fqdn}'", 'networking.ip')[0] + $ip = puppetdb_query("inventory[networking.ip] { networking.fqdn = '${fqdn}' }").map |$node| { $node['networking.ip'] }[0] # construct the string for this server "${fqdn}=https://${ip}:${peer_port}" diff --git a/site/profiles/manifests/haproxy/dns.pp b/site/profiles/manifests/haproxy/dns.pp index 721f5f7..63c98ed 100644 --- a/site/profiles/manifests/haproxy/dns.pp +++ b/site/profiles/manifests/haproxy/dns.pp @@ -30,13 +30,14 @@ class profiles::haproxy::dns ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes( - "enc_role='${facts['enc_role']}' and - country='${facts['country']}' and - region='${facts['region']}' and - environment='${facts['environment']}'", - 'networking.fqdn' - )) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { + facts.enc_role = '${facts['enc_role']}' and + facts.country = '${facts['country']}' and + facts.region = '${facts['region']}' and + facts.environment = '${facts['environment']}' + }" + ).map |$node| { $node['networking.fqdn'] }) # give enough time for a few hosts to be provisioned if length($servers_array) >= 3 { diff --git a/site/profiles/manifests/minio/server.pp b/site/profiles/manifests/minio/server.pp index 3fdec43..d689da3 100644 --- a/site/profiles/manifests/minio/server.pp +++ b/site/profiles/manifests/minio/server.pp @@ -98,8 +98,12 @@ class profiles::minio::server ( } # if it is, find hosts, sort them so they dont cause changes every run - #$servers_array = sort(query_nodes("enc_role='${minio_members_role}'", 'networking.fqdn')) - $servers_array = sort(query_nodes("enc_role='${minio_members_role}' and minio_region='${minio_region}'", 'networking.fqdn')) + #$servers_array = sort(puppetdb_query( + # "inventory[networking.fqdn] { facts.enc_role = '${minio_members_role}' }" + #).map |$node| { $node['networking.fqdn'] }) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${minio_members_role}' and facts.minio_region = '${minio_region}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/site/profiles/manifests/ntp/client.pp b/site/profiles/manifests/ntp/client.pp index 516ad20..0595b47 100644 --- a/site/profiles/manifests/ntp/client.pp +++ b/site/profiles/manifests/ntp/client.pp @@ -26,9 +26,15 @@ class profiles::ntp::client ( $ntpserver_array = $ntp_role ? { undef => $peers, default => $use_ntp ? { - 'all' => query_nodes("enc_role='${ntp_role}'", 'networking.fqdn'), - 'region' => query_nodes("enc_role='${ntp_role}' and region=${facts['region']}", 'networking.fqdn'), - 'country' => query_nodes("enc_role='${ntp_role}' and country=${facts['country']}", 'networking.fqdn'), + 'all' => puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${ntp_role}' }" + ).map |$node| { $node['networking.fqdn'] }, + 'region' => puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${ntp_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }, + 'country' => puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${ntp_role}' and facts.country = '${facts['country']}' }" + ).map |$node| { $node['networking.fqdn'] }, } } diff --git a/site/profiles/manifests/proxmox/clusterinit.pp b/site/profiles/manifests/proxmox/clusterinit.pp index 65189b3..aeb45c2 100644 --- a/site/profiles/manifests/proxmox/clusterinit.pp +++ b/site/profiles/manifests/proxmox/clusterinit.pp @@ -24,10 +24,13 @@ class profiles::proxmox::clusterinit { } } - $servers_array = sort(query_nodes( - "enc_role='${membersrole}' and country='${facts['country']}' and region='${facts['region']}'", - 'networking.fqdn' - )) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { + facts.enc_role = '${membersrole}' and + facts.country = '${facts['country']}' and + facts.region = '${facts['region']}' + }" + ).map |$node| { $node['networking.fqdn'] }) if ! $profiles::proxmox::params::pve_clusterinit_master { if !empty($servers_array) { diff --git a/site/profiles/manifests/proxmox/clusterjoin.pp b/site/profiles/manifests/proxmox/clusterjoin.pp index 7ab3ea5..697eed3 100644 --- a/site/profiles/manifests/proxmox/clusterjoin.pp +++ b/site/profiles/manifests/proxmox/clusterjoin.pp @@ -11,13 +11,14 @@ class profiles::proxmox::clusterjoin { $root_password = $profiles::proxmox::params::root_password # query puppetdb for list of cluster members - $members_array = sort(query_nodes( - "enc_role='${membersrole}' and \ - country='${facts['country']}' and \ - region='${facts['region']}' and \ - pve_cluster.cluster_name='${clustername}'", - 'networking.fqdn' - )) + $members_array = sort(puppetdb_query( + "inventory[networking.fqdn] { + facts.enc_role = '${membersrole}' and + facts.country = '${facts['country']}' and + facts.region = '${facts['region']}' and + facts.pve_cluster.cluster_name = '${clustername}' + }" + ).map |$node| { $node['networking.fqdn'] }) # check if the pve kernerl is running if $facts['kernelrelease'] == $profiles::proxmox::params::pve_kernel_release { diff --git a/site/profiles/manifests/sql/galera_member.pp b/site/profiles/manifests/sql/galera_member.pp index 843e2a3..ea82f2b 100644 --- a/site/profiles/manifests/sql/galera_member.pp +++ b/site/profiles/manifests/sql/galera_member.pp @@ -48,7 +48,9 @@ class profiles::sql::galera_member ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${galera_members_role}' and region='${facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${galera_members_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/site/profiles/manifests/sql/postgresdb.pp b/site/profiles/manifests/sql/postgresdb.pp index f06b2ed..0c8ca4b 100644 --- a/site/profiles/manifests/sql/postgresdb.pp +++ b/site/profiles/manifests/sql/postgresdb.pp @@ -18,7 +18,9 @@ class profiles::sql::postgresdb ( } # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${members_role}' and region='${facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{ diff --git a/site/profiles/manifests/vault/server.pp b/site/profiles/manifests/vault/server.pp index 1e3a7cd..ec69bef 100644 --- a/site/profiles/manifests/vault/server.pp +++ b/site/profiles/manifests/vault/server.pp @@ -29,7 +29,9 @@ class profiles::vault::server ( if $members_lookup and $members_role != undef { # if it is, find hosts, sort them so they dont cause changes every run - $servers_array = sort(query_nodes("enc_role='${members_role}' and region='${::facts['region']}'", 'networking.fqdn')) + $servers_array = sort(puppetdb_query( + "inventory[networking.fqdn] { facts.enc_role = '${members_role}' and facts.region = '${::facts['region']}' }" + ).map |$node| { $node['networking.fqdn'] }) # else use provided array from params }else{