Argo CD follows the GitOps pattern of using Git repositories as the source of truth for defining the desired application state. Kubernetes manifests can be specified in several ways:
kustomize applications
helm charts
ksonnet applications
jsonnet files
Plain directory of YAML/json manifests
Any custom config management tool configured as a config management plugin
Argo CD automates the deployment of the desired application states in the specified target environments. Application deployments can track updates to branches, tags, or pinned to a specific version of manifests at a Git commit.
It is the de factor currently in deploying Applications on Kubernetes. Take Note that you still need a Continuous Integration tool, such as Gitlab to have more flexibility.
Characteristics of the Demo Project:
- Demonstrate how to use GitOps in your organization.
- Use Terraform for K8s and Spaces in D.O.
- Use Kustomize.
- Use Helm Charts.
- Remote Terraform State
- Use HashiCorp Vault for Managing Secrets ( ArgoCD Secrets? / Github Token Secrets ) https://argo-cd.readthedocs.io/en/stable/operator-manual/secret-management/
- Cert Manager
Without further ado, let's start.
Step 1: Provision a K8s Cluster and D.O. Space using Terraform.
We need to have a Kubernetes Cluster and an object storage to backup our Terraform State File.
Step 2: Install ARGOCD via HELM Deployment. ARGOCD
Step 3: Refer to the instruction here: Sample ArgoCD Demo Project