Skip to content

Commit d430f7d

Browse files
committed
add operational gotchas to readme
1 parent 7306b97 commit d430f7d

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@ The CI pipeline keeps versions in sync automatically:
121121

122122
For local testing the kind script (`devbox run test`) builds the image and loads it directly into the cluster, so no registry push is required.
123123

124+
## Operational gotchas
125+
126+
- **Node termination grace vs schedule**: The CronJob only reacts on its schedule (default 1 minute). Ensure your node termination grace period (e.g., Karpenter’s default 2 minutes) comfortably exceeds `schedule interval + controller runtime`, otherwise the node may terminate before the rollout finishes.
127+
- **Rolling update strategy required**: Deployments must use the standard rolling update strategy so that a new pod starts before the old pod is deleted. StatefulSets or Deployments using `Recreate` will still experience downtime.
128+
- **Single replica + PDB**: Remember to pair single-replica workloads with a `PodDisruptionBudget` (`minAvailable: 1` / `maxUnavailable: 0`). Without it, Kubernetes can evict the pod immediately even if the controller is running.
129+
- **Annotation opt-in**: Only pods whose template contains the configured annotation (default `evict-with-rollout: "true"`) are handled. Forgetting the annotation means eviction proceeds as usual.
130+
- **RBAC scope**: The included ClusterRole grants read access to nodes/pods and patch access to deployments. Tighten or namespace-scope it if your environment requires stricter permissions.
131+
132+
Missing something? [Open an issue](https://github.com/HivemindTechnologies/evict-to-rollout/issues/new) with details so we can cover your use-case.
133+
124134
## References
125135

126136
Related issues:

0 commit comments

Comments
 (0)