-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.md.gotmpl
30 lines (23 loc) · 1.87 KB
/
README.md.gotmpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{{ template "chart.header" . }}
{{ template "chart.description" . }}
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
## Additional Information
This chart provide the ability to perform Canary deployments using Argo Rollouts with the configmaps revisions.
![](argocd.png)
## It works on 5 concepts:
1. A Rollout object is in use instaed of a deployment.
2. A `checksum/config` annotation is added to the Rollout to trigger a rollout based on a configmap change for [for more information click here](https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments).
3. The configmap name ends with a hashed suffix.
4. On every deploy a [configmap-attacher](https://github.com/liorfranko/configmap-attacher) Job runs and attach the configmaps to the ReplicaSet's, using [ownerRefrence](https://kubernetes.io/docs/concepts/overview/working-with-objects/owners-dependents/).
5. To overcome the mounting problem of configmaps with different names, the configmaps are mounted on the pods to `/etc/kubernetes/configmaps`, that can be modified by changing the `configmapsMountPath`.
## Behaviour:
1. Every change in the configmaps values triggers the creation of new configmaps, while the old configmaps aren't deleted.
2. The new configmap are attached to the new ReplicaSet.
3. The old configmaps are deleted with the old ReplicaSets by K8S garbege collector.
## Prerequisites
* You must have [Argo Rollouts](https://argoproj.github.io/argo-rollouts/installation/#installation) controller deployed.
* You must deploy this chart with [ArgoCD](https://argo-cd.readthedocs.io/en/stable/operator-manual/installation/#installation).
* You must provide the required permissions for the configmap-attacher Job.
{{ template "chart.requirementsSection" . }}
{{ template "chart.valuesSection" . }}
{{ template "helm-docs.versionFooter" . }}