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
+41-5Lines changed: 41 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@
13
13
14
14
## 🔁 What is Reloader?
15
15
16
-
Reloader is a Kubernetes controller that automatically triggers rollouts of workloads (like Deployments, StatefulSets, and more) whenever referenced `Secrets` or `ConfigMaps` are updated.
16
+
Reloader is a Kubernetes controller that automatically triggers rollouts of workloads (like Deployments, StatefulSets, and more) whenever referenced `Secrets`, `ConfigMaps` or **optionally CSI-mounted secrets** are updated.
17
17
18
18
In a traditional Kubernetes setup, updating a `Secret` or `ConfigMap` does not automatically restart or redeploy your workloads. This can lead to stale configurations running in production, especially when dealing with dynamic values like credentials, feature flags, or environment configs.
19
19
@@ -169,9 +169,11 @@ metadata:
169
169
170
170
This instructs Reloader to skip all reload logic for that resource across all workloads.
By default, Reloader uses the **rollout** strategy — it updates the pod template to trigger a new rollout. This works well in most cases, but it can cause problems if you're using GitOps tools like ArgoCD, which detect this as configuration drift.
174
+
Note: This is only applicable when using [Argo Rollouts](https://argoproj.github.io/argo-rollouts/). It is ignored for standard Kubernetes Deployments, StatefulSets, or DaemonSets. To use this feature, Argo Rollouts support must be enabled in Reloader (for example via --is-argo-rollouts=true).
175
+
176
+
By default, Reloader triggers the Argo Rollout controller to perform a standard rollout by updating the pod template. This works well in most cases, however, because this modifies the workload spec, GitOps tools like ArgoCD will detect this as "Configuration Drift" and mark your application as OutOfSync.
175
177
176
178
To avoid that, you can switch to the **restart** strategy, which simply restarts the pod without changing the pod template.
177
179
@@ -189,8 +191,10 @@ metadata:
189
191
✅ Use `restart` if:
190
192
191
193
1. You're using GitOps and want to avoid drift
192
-
1. You want a quick restart without changing the workload spec
193
-
1. Your platform restricts metadata changes
194
+
2. You want a quick restart without changing the workload spec
195
+
3. Your platform restricts metadata changes
196
+
197
+
This setting affects Argo Rollouts behavior, not Argo CD sync settings.
@@ -239,6 +243,38 @@ This feature allows you to pause rollouts for a deployment for a specified durat
239
243
1. ✅ Your deployment references multiple ConfigMaps or Secrets that may be updated at the same time.
240
244
1. ✅ You want to minimize unnecessary rollouts and reduce downtime caused by back-to-back configuration changes.
241
245
246
+
### 8. 🔐 CSI Secret Provider Support
247
+
248
+
Reloader supports the [Secrets Store CSI Driver](https://secrets-store-csi-driver.sigs.k8s.io/), which allows mounting secrets from external secret stores (like AWS Secrets Manager, Azure Key Vault, HashiCorp Vault) directly into pods.
249
+
Unlike Kubernetes Secret objects, CSI-mounted secrets do not always trigger native Kubernetes update events. Reloader solves this by watching CSI status resources and restarting affected workloads when mounted secret versions change.
250
+
251
+
#### How it works
252
+
253
+
When secret rotation is enabled, the Secrets Store CSI Driver updates a Kubernetes resource called: `SecretProviderClassPodStatus`
254
+
255
+
This resource reflects the currently mounted secret versions for a pod.
256
+
Reloader watches these updates and triggers a rollout when a change is detected.
257
+
258
+
#### Prerequisites
259
+
260
+
- Secrets Store CSI Driver must be installed in your cluster
261
+
- Secret rotation enabled in the CSI driver.
262
+
- Enable CSI integration in Reloader: `--enable-csi-integration=true`
0 commit comments