puppet-prod/modules/stalwart/manifests/clustering.pp
Ben Vincent fca9fffa95 feat: create stalwart module
- add stalwart module
- add psql database on the shared patroni instance
- add ceph-rgw credentials to eyaml
- ensure psql pass and s3 access key are converted to sensitive
2025-11-02 22:25:14 +11:00

26 lines
834 B
Puppet

# @summary Manages Stalwart Mail Server clustering configuration
#
# @api private
class stalwart::clustering {
assert_private()
# Use cluster member data calculated in main class
$cluster_members = $stalwart::sorted_cluster_members
$effective_node_id = $stalwart::effective_node_id
# Remove self from cluster members list
$other_cluster_members = $cluster_members.filter |$member| { $member != $facts['networking']['fqdn'] }
# Calculate cluster size for role distribution
$cluster_size = length($cluster_members)
# Store cluster information for use in templates
$cluster_info = {
'members' => $cluster_members,
'other_nodes' => $other_cluster_members,
'size' => $cluster_size,
'node_id' => $effective_node_id,
'datacenter' => "${facts['country']}-${facts['region']}",
}
}