apiVersion: v1 kind: ConfigMap metadata: name: alertmanager-init namespace: monitoring data: find-pods.sh: | #!/bin/sh # Install curl and jq for JSON parsing apk add curl jq # Find the template hash echo Finding template hash... TEMPLATE_HASH=$(echo $HOSTNAME | cut -d- -f2) # Query kubernetes API for all matching pods echo Querying Kubernetes API for pods... PODS=$(curl \ -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \ https://kubernetes.default/api/v1/namespaces/monitoring/pods\?labelSelector=pod-template-hash=$TEMPLATE_HASH\&pretty=false -sk -o /tmp/peers.json) echo Finding Alertmanager IPs... AM_IPS=$(jq '.items[].status.podIP' /tmp/peers.json -r) echo Generating CLI flags for Alertmanager... PEER_ARGS=$(echo $AM_IPS | awk -v RS=' ' -v ORS=' ' '{ print "--cluster.peer="$1":9094" }') echo Writing CLI flags to /tmp/peers... echo $PEER_ARGS > /tmp/peers