#
# postgresql server role
#
-class roles::postgresql::server {
- include postgres::backup_source
-
+# @param manage_clusters_hba manage clusters' pg_hba.conf using postgres::cluster. Eventually should should be true for every host and we can drop the param
+# @param backups Do backups of the database clusters on this host
+class roles::postgresql::server(
+ Variant[Boolean,Array[Integer]] $manage_clusters_hba = false,
+ Boolean $backups = true,
+) {
$clusters = $facts['postgresql_clusters']
$clusters.each |$cluster| {
- # Do not backup clusters that are replication targets,
- # like the dak mirror or snapshot secondaries
$version = $cluster['version']
$cluster_name = $cluster['cluster']
$port = $cluster['port']
- if ! $cluster['status']['recovery'] {
- postgres::backup_cluster { "${::hostname}-${version}-${cluster_name}":
- pg_version => $version,
- pg_cluster => $cluster_name,
- pg_port => $port,
- }
- }
- }
- postgres::backup_server::register_backup_clienthost { "backup-clienthost-${::fqdn}}":
+ if $manage_clusters_hba =~ Boolean {
+ $hba = $manage_clusters_hba
+ } else {
+ $hba = $port in $manage_clusters_hba
+ }
+ postgres::cluster { "${version}::${cluster_name}":
+ pg_version => $version,
+ pg_cluster => $cluster_name,
+ pg_port => $port,
+ manage_hba => $hba,
+ backups => $backups,
+ }
}
}