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
|