Many teams want to deploy Kubernetes to a public cloud or self-hosted infrastructure using a GitOps approach. Whether creating a managed implementation (EKS, AKS, GKE) or Redshift, an IaC tool (typically Terraform) will be used to build the Kubernetes cluster.
The challenge is that there is no easy way to "bridge" an IaC tool and a GitOps tool (like Argo CD). The IaC tool has metadata that needs to be passed to the GitOps tool for hands-free deployments. What's missing is a design to allow a separation of concerns between any IaC tool and bootstrapping Kubernetes with Argo CD.
This tutorial introduces a design pattern to connect IaC and GitOps. Using Terraform for IaC, AWS EKS for Kubernetes, and Argo CD for GitOps, you will learn a step-by-step process to extract values from .tfstate in S3 and inject them into Helm values.
We also highlight the critical need for good design patterns to connect Infrastructure as Code tools with any Kubernetes implementation.