# @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']}", } }