Helm Chart with Canary deployment using Argo Rollouts and revisioned configmaps.
This chart provide the ability to perform Canary deployments using Argo Rollouts with the configmaps revisions.
- A Rollout object is in use instaed of a deployment.
- A
checksum/config
annotation is added to the Rollout to trigger a rollout based on a configmap change for for more information click here. - The configmap name ends with a hashed suffix.
- On every deploy a configmap-attacher Job runs and attach the configmaps to the ReplicaSet's, using ownerRefrence.
- 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 theconfigmapsMountPath
.
- Every change in the configmaps values triggers the creation of new configmaps, while the old configmaps aren't deleted.
- The new configmap are attached to the new ReplicaSet.
- The old configmaps are deleted with the old ReplicaSets by K8S garbege collector.
- You must have Argo Rollouts controller deployed.
- You must deploy this chart with ArgoCD.
- You must provide the required permissions for the configmap-attacher Job.
Key | Type | Default | Description |
---|---|---|---|
appName | string | "test-service" |
Application name which will be used by all resources created via base chart. |
configmapAttacher | object | {"repository":"quay.io/liorfranko/configmap-attacher","resources":{"limits":{"cpu":0.1,"memory":"100Mi"},"requests":{"cpu":0.1,"memory":"100Mi"}},"tag":"1.0.3"} |
Variables of the configmap-attacher |
configmaps.example-cm-1.kv_data.key-1 | string | "value-13" |
|
configmaps.example-cm-1.kv_data.key-2 | string | "value-2" |
|
configmaps.example-cm-1.raw_data.somename | string | "line 1\nline 2\n" |
|
configmaps.example-cm-2.kv_data.key-3 | string | "value-3" |
|
configmaps.example-cm-2.kv_data.key-4 | string | "value-4" |
|
configmaps.example-cm-2.raw_data.somename | string | "line 1\nline 2\n" |
|
configmapsMountPath | string | "/etc/kubernetes/configmaps" |
Allows to define custom configMap objects with custom content |
image.imagePullPolicy | string | "Always" |
ImagePullPolicy applied to application |
image.repository | string | "nginx" |
Repository applied to application |
image.tag | string | "1.14.1" |
Tag applied to application |
kubeTargetVersionOverride | string | "" |
|
rbac.enabled | bool | true |
|
replicas | int | 1 |
The number of application pods to run |
rollout.preDefinedStrategy | string | "manual-canary-1-pod" |
|
rollout.strategy | object | {} |
Use custom strategy of the argo rollout |
Autogenerated from chart metadata using helm-docs v1.5.0