Argus is a lightweight Kubernetes operator that automates rolling updates for your applications. It monitors referenced ConfigMaps and Secrets, triggering a native rollout whenever their data changes so your pods are always in sync with their configuration.
Note
Currently supports Deployments, StatefulSets, and DaemonSets.
- Smart Hashing: Only restarts pods if the data actually changes (ignores metadata updates).
- Zero-Downtime: Leverages native Kubernetes Deployment controllers for safe rollouts.
- Opt-in Only: Only touches workloads you've explicitly annotated.
- Lightweight: Written in Go with minimal overhead.
Add this annotation on the workload’s metadata.annotations:
argus.io/rollout-on-update: "true"Workloads without that annotation are ignored.
The namespace must exist, or create it with Helm:
helm install argus ./charts/argus-operator \
-n argus-system \
--create-namespaceOptional: image.registry, image.pullSecrets for private registries.
See charts/argus-operator/values.yaml for the full list of options.
Uninstall
helm uninstall argus -n argus-systemdocker build -t argus-operator:dev .go test ./...
go build -o bin/manager ./cmd/managerRun locally against a cluster (e.g. ~/.kube/config):
./bin/managerSee LICENSE.