This is an example on deploying cluster resources using a GitOps pattern. This started as an experiment on deploying Linkerd2 with zero human interaction.
Prerequisites
Create a Kind cluster
kind create cluster --config ./cluster.yaml --wait 5m
Deploy
cd ./terraform
terraform init
terraform apply
Terraform does the following:
- Deploys Cert-Manager
- Creates a Linkerd trust anchor
- Look at azure.tf to see how that could also be saved into a key vault
- Deploys a Cert-Manager issuer and a Linkerd identity certificate
- Deploys ingress-nginx
- Deploys ArgoCD
- Bootstraps ArgoCD to monitor the
./argocd/environments
folder for applications to install
- Bootstraps ArgoCD to monitor the
Login to ArgoCD
https://argoproj.github.io/argo-cd/getting_started/#port-forwarding
# Get the admin password
kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
kubectl port-forward svc/argocd-server -n argocd 8080:443