Declarative Desired State Container Deployment using Helm

This approach is based on this article which decouples the development process from the release process.

This is an alternative implementation to Terraform Application Stack, using Helm instead of Terraform, but with the same core principles of runtime versioning and desired state.

The Application Stack can be defined once, and deployed many times, e.g. development, test and production.

graph TD subgraph k8s["Kubernetes"] subgraph ns1["namespace"] ns1-ingress["ingress"] subgraph ns1-pod-1["Pod"] ns1-con-a["container"] end subgraph ns1-pod-2["Pod"] ns1-con-b["container"] ns1-con-c["container"] end end subgraph ns2["namespace"] ns2-ingress["ingress"] subgraph ns2-pod-1["Pod"] ns2-con-a["container"] end subgraph ns2-pod-2["Pod"] ns2-con-b["container"] ns2-con-c["container"] end end end client --> ns1-ingress --> ns1-con-a ns1-ingress --> ns1-con-b --> ns1-con-c client --> ns2-ingress --> ns2-con-a ns2-ingress --> ns2-con-b --> ns2-con-c classDef external fill:lightblue class client external classDef dashed stroke-dasharray: 5, 5 class ns1,ns2 dashed classDef dotted stroke-dasharray: 2, 2 class ns1-pod-1,ns1-pod-2,ns2-pod-1,ns2-pod-2 dotted