Post

Reloader

Reloader

Reloader

Cluster utility that automatically rolls a Deployment/StatefulSet when a ConfigMap or Secret it references changes. Without it, editing a mounted ConfigMap or Secret doesn’t restart the pods consuming it — they keep running with the old values until something else triggers a restart.

Deployment

Installed from the upstream manifest directly (not Helm) as reloader-reloader in the default namespace:

1
kubectl apply -f https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml

KUBERNETES_NAMESPACE is left unset in the upstream manifest, so Reloader watches ConfigMaps and Secrets across all namespaces — this requires the ClusterRole/ ClusterRoleBinding the same manifest creates.

Usage

Add this annotation to a Deployment or StatefulSet’s pod template to auto-roll it whenever any ConfigMap or Secret it references changes:

1
2
3
metadata:
  annotations:
    reloader.stakater.com/auto: "true"

To watch only specific ConfigMaps/Secrets instead of everything the pod references, use configmap.reloader.stakater.com/reload: "name1,name2" or secret.reloader.stakater.com/reload: "name1,name2" instead.

Who’s opted in

Currently annotated for auto-reload: cloudflared-deployment, dbeaver, drawio, gatus, git-ollama-tools, homeassistant, homepage, kafka, kafka-ui, mailpit, n8n, open-webui, pgadmin, portainer (all in default), and tailscale (in the tailscale namespace).

This post is licensed under CC BY 4.0 by the author.