Switch to Kubernetes strategy with hostname mode for StatefulSet

Based on libcluster documentation, StatefulSets should use the standard
Kubernetes strategy with mode: :hostname, not the DNS strategy.

This properly discovers pods using their stable hostnames and filters
out the current node from connection attempts.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Graham McIntire 2025-07-25 12:35:27 -05:00
parent 904b555ca2
commit 93397badbd
No known key found for this signature in database

View file

@ -141,15 +141,16 @@ if config_env() == :prod do
# Configure libcluster topology based on environment
if cluster_enabled do
# Use Kubernetes DNS strategy for StatefulSet
# Use Kubernetes strategy with hostname mode for StatefulSet
config :libcluster,
topologies: [
k8s: [
strategy: Cluster.Strategy.Kubernetes.DNS,
strategy: Cluster.Strategy.Kubernetes,
config: [
service: "aprs-headless",
application_name: "aprsme",
namespace: "aprs",
mode: :hostname,
kubernetes_node_basename: "aprsme",
kubernetes_selector: "app=aprs",
kubernetes_namespace: "aprs",
polling_interval: 5_000
]
]