get-kubernetes-labels.sh.in 737 B

123456789101112131415161718
  1. #!/usr/bin/env bash
  2. # Checks if netdata is running in a kubernetes pod and fetches that pod's labels
  3. if [ -n "${KUBERNETES_SERVICE_HOST}" ] && [ -n "${KUBERNETES_PORT_443_TCP_PORT}" ] && [ -n "${MY_POD_NAMESPACE}" ] && [ -n "${MY_POD_NAME}" ]; then
  4. if command -v jq >/dev/null 2>&1; then
  5. KUBE_TOKEN="$(</var/run/secrets/kubernetes.io/serviceaccount/token)"
  6. URL="https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/$MY_POD_NAMESPACE/pods/$MY_POD_NAME"
  7. curl -sSk -H "Authorization: Bearer $KUBE_TOKEN" "$URL" |
  8. jq -r '.metadata.labels' | grep ':' | tr -d '," '
  9. exit 0
  10. else
  11. echo "jq command not available. Please install jq to get host labels for kubernetes pods."
  12. exit 1
  13. fi
  14. else
  15. exit 0
  16. fi