You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+45-2Lines changed: 45 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,7 +55,50 @@ export DRY_RUN=true
55
55
./evict_to_rollout.sh
56
56
```
57
57
58
-
### 3. Deploy as CronJob
58
+
##Deployment Options
59
59
60
-
See `cronjob.yaml` for the full manifest including RBAC permissions.
60
+
### Helm (recommended)
61
+
62
+
This repository ships a Helm chart (`chart/evict-to-rollout`) so you can tweak the schedule, annotation selector, and naming without forking the manifest.
|`serviceAccount.create`| Whether to create a dedicated SA |`true`|
82
+
|`rbac.create`| Whether to install ClusterRole + binding |`true`|
83
+
84
+
See `chart/evict-to-rollout/values.yaml` for the full list.
85
+
86
+
## Development & Testing
87
+
88
+
This repo ships a `devbox.json` so everyone (including CI) uses the same versions of `helm`, `kubectl`, `kind`, and `jq`.
89
+
90
+
```bash
91
+
# Start a dev shell with all tools:
92
+
devbox shell
93
+
94
+
# Lint the chart:
95
+
devbox run lint
96
+
97
+
# Run the end-to-end test (requires Docker since it spins up kind):
98
+
devbox run test
99
+
```
100
+
101
+
The test script (`scripts/test-kind.sh`) creates a 3-node kind cluster, installs the Helm chart, deploys a sample annotated app, cordons a node, runs the controller job manually, and asserts that the deployment was restarted and rescheduled onto a different node.
102
+
103
+
GitHub Actions mirrors the same flow via `.github/workflows/ci.yaml`, so every PR runs `helm lint` plus the integration test automatically.
0 commit comments