
Restart workloads when their Secrets & ConfigMaps change — without breaking your Argo CD sync windows.
Secret or ConfigMap it
consumes changes. Environment variables are read once, at Pod start. Mounted
files do update on the node, but only take effect if the process re-reads them.
The Pod keeps serving its old config — no error, no signal.Under GitOps this hurts twice. Argo CD happily syncs the new Secret,
reports Synced, and moves on — the workload stays stale while the
dashboard is green. So somebody runs kubectl rollout restart, by hand or
from a pipeline. That restart is an undeclared change, and it ignores the
freeze windows on your AppProject, because sync windows only ever
constrained Argo CD's own syncs.
KICK closes the gap from inside the GitOps model. It detects the change,
confirms the running rollout is older than it, and reads spec.syncWindows
straight off the owning AppProject — no sidecar, no plugin, no window
definitions copied into a second place. A restart KICK triggers is subject to
the same freeze as a sync. All it writes is the standard
kubectl.kubernetes.io/restartedAt annotation: no hashes, no environment
variables, no KICK-owned fields on your workloads.
flowchart LR
A[Secret / ConfigMap<br/>changes] --> B[Observe<br/>fingerprint]
B --> C[KickRequest<br/>per workload]
C --> D{Schedule<br/>window}
D -->|closed| W[Wait]
D -->|open| G{GitOps gate<br/>if enabled}
G -->|blocked| W
G -->|allowed| E{Rollout<br/>stale?}
E -->|no| S[Skip]
E -->|yes| R[Restart<br/>restartedAt]
When the restart happens
- Inside your Argo CD sync windows
- Read from the owning
AppProject. A closed window blocks the restart withOutsideScheduleand re-checks when it opens. - Once Argo CD is settled
- Waits for the owning
Applicationto finish its operation and reportSynced. - When Flux is done
- Waits for the owning
KustomizationorHelmReleaseto beReadyand not reconciling. - Inside a window you define
- Cron
Allow/Denywindows in the time zone you specify, for clusters with no GitOps tool. - Right away
- The default. No GitOps tool, no schedule, no configuration.
I want to...
Get started
Install with Helm, or from source.
See it work
A Secret change restarting a Deployment on Kind.
Understand the concepts
Dependency discovery, freshness, gating.
Follow a guide
Argo CD, External Secrets, troubleshooting.
Reference the API
KickPolicy, KickRequest, metrics, events.
Run it in production
RBAC, security, scalability, upgrades.
Read the theory
The formal operator model.
Hack on KICK
Debugging, the timeline UI, workflow.
Review the decisions
Architecture decision records.
Using an AI agent?
Point it at one URL instead of crawling the site.