Skip to content

liorfranko/base-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

base-app

Helm Chart with Canary deployment using Argo Rollouts and revisioned configmaps.

Version: 1.0.1 Type: application

Additional Information

This chart provide the ability to perform Canary deployments using Argo Rollouts with the configmaps revisions.

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.
  3. The configmap name ends with a hashed suffix.
  4. On every deploy a configmap-attacher Job runs and attach the configmaps to the ReplicaSet's, using ownerRefrence.
  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 controller deployed.
  • You must deploy this chart with ArgoCD.
  • You must provide the required permissions for the configmap-attacher Job.

Values

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published