|
1 | | -#  Reloader |
| 1 | +<p align="center"> |
| 2 | + <img src="assets/web/reloader.jpg" alt="Reloader" width="40%"/> |
| 3 | +</p> |
2 | 4 |
|
3 | 5 | [](https://goreportcard.com/report/github.com/stakater/reloader) |
4 | 6 | [](https://godoc.org/github.com/stakater/reloader) |
|
9 | 11 | [](LICENSE) |
10 | 12 | [](https://stakater.com/?utm_source=Reloader&utm_medium=github) |
11 | 13 |
|
12 | | -## Problem |
| 14 | +## 🔁 What is Reloader? |
13 | 15 |
|
14 | | -We would like to watch if some change happens in `ConfigMap` and/or `Secret`; then perform a rolling upgrade on relevant `DeploymentConfig`, `Deployment`, `Daemonset`, `Statefulset` and `Rollout` |
| 16 | +Reloader is a Kubernetes controller that automatically triggers rollouts of workloads (like Deployments, StatefulSets, and more) whenever referenced `Secrets` or `ConfigMaps` are updated. |
15 | 17 |
|
16 | | -## Solution |
| 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. |
17 | 19 |
|
18 | | -Reloader can watch changes in `ConfigMap` and `Secret` and do rolling upgrades on Pods with their associated `DeploymentConfigs`, `Deployments`, `Daemonsets` `Statefulsets` and `Rollouts`. |
| 20 | +Reloader bridges that gap by ensuring your workloads stay in sync with configuration changes — automatically and safely. |
| 21 | + |
| 22 | +## 🚀 Why Reloader? |
| 23 | + |
| 24 | +- ✅ **Zero manual restarts**: No need to manually rollout workloads after config/secret changes. |
| 25 | +- 🔒 **Secure by design**: Ensure your apps always use the most up-to-date credentials or tokens. |
| 26 | +- 🛠️ **Flexible**: Works with all major workload types — Deployment, StatefulSet, Daemonset, ArgoRollout, and more. |
| 27 | +- ⚡ **Fast feedback loop**: Ideal for CI/CD pipelines where secrets/configs change frequently. |
| 28 | +- 🔄 **Out-of-the-box integration**: Just label your workloads and let Reloader do the rest. |
| 29 | + |
| 30 | +## 🔧 How It Works |
| 31 | + |
| 32 | +```mermaid |
| 33 | +flowchart LR |
| 34 | + ExternalSecret -->|Creates| Secret |
| 35 | + SealedSecret -->|Creates| Secret |
| 36 | + Secret -->|Watched by| Reloader |
| 37 | + Configmap -->|Watched by| Reloader |
| 38 | +
|
| 39 | + Reloader -->|Triggers Rollout| Deployment |
| 40 | + Reloader -->|Triggers Rollout| DeploymentConfig |
| 41 | + Reloader -->|Triggers Rollout| Daemonset |
| 42 | + Reloader -->|Triggers Rollout| Statefulset |
| 43 | + Reloader -->|Triggers Rollout| ArgoRollout |
| 44 | + Reloader -->|Triggers Job| CronJob |
| 45 | +``` |
| 46 | + |
| 47 | +- Sources like `ExternalSecret` or `SealedSecret` create or manage your Kubernetes Secrets. |
| 48 | +- `Secrets` and `ConfigMaps` are watched by Reloader. |
| 49 | +- When changes are detected, Reloader automatically triggers a rollout of the associated workloads, ensuring your app always runs with the latest configuration. |
19 | 50 |
|
20 | 51 | ## Enterprise Version |
21 | 52 |
|
|
0 commit comments