From cc98e2f639453fa398753ac9d143b4257407bf5b Mon Sep 17 00:00:00 2001 From: juvdiaz Date: Mon, 29 Jun 2026 18:37:12 -0600 Subject: [PATCH] Fix Grafana dashboard restart workload detection --- scripts/grafana-dashboards | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/scripts/grafana-dashboards b/scripts/grafana-dashboards index 23d219d..1a01262 100755 --- a/scripts/grafana-dashboards +++ b/scripts/grafana-dashboards @@ -23,6 +23,7 @@ apply_dashboards() { local file local base local name + local grafana_workload="" if ! command -v kubectl >/dev/null 2>&1; then echo "kubectl is required." >&2 @@ -46,7 +47,25 @@ apply_dashboards() { done < <(list_dashboards) echo "Restarting Grafana so the sidecar reloads dashboards..." - kubectl --kubeconfig "$KUBECONFIG_PATH" -n "$NAMESPACE" rollout restart deployment/prometheus-stack-grafana + if kubectl --kubeconfig "$KUBECONFIG_PATH" -n "$NAMESPACE" get deployment prometheus-stack-grafana >/dev/null 2>&1; then + grafana_workload="deployment/prometheus-stack-grafana" + elif kubectl --kubeconfig "$KUBECONFIG_PATH" -n "$NAMESPACE" get statefulset prometheus-stack-grafana >/dev/null 2>&1; then + grafana_workload="statefulset/prometheus-stack-grafana" + else + grafana_workload="$( + kubectl --kubeconfig "$KUBECONFIG_PATH" -n "$NAMESPACE" get deployment,statefulset \ + -l app.kubernetes.io/name=grafana \ + -o name 2>/dev/null | head -n 1 + )" + fi + + if [ -z "$grafana_workload" ]; then + echo "Grafana workload was not found in namespace ${NAMESPACE}; dashboards were applied but Grafana was not restarted." >&2 + echo "Check with: kubectl -n ${NAMESPACE} get deploy,sts | grep grafana" >&2 + return 1 + fi + + kubectl --kubeconfig "$KUBECONFIG_PATH" -n "$NAMESPACE" rollout restart "$grafana_workload" } case "${1:-list}" in