aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/namespaces/monitoring/alerts/alertmanager/initscript.yaml
blob: 26e08b969e644928d0c1961ae30eb76d6a524da3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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