GitOps repository for managing my Kubernetes clusters
This repository is structured to follow GitOps principles, with Kubernetes manifests for different environments (e.g., development, staging, production) stored here and managed via Flux CD.
apps/
app1/
app2/
app3/
clusters/
cluster-1/
cluster-2/
cluster-.../
cluster-n/
contrib/
flux/
istio/
terraform/
infra/
app1/
app2/
Navigate to contrib/flux/$CLUSTER_NAME
and run
bash ../flux2/new-deploy-key.sh
kubectl apply -k .
Navigate to contrib/terraform/envs/$CLUSTER_NAME
.
Terraform creates a new (sub) hosted zone, IAM credentials and policies for cert-manager and external-dns.
sh contrib/istio/install.sh $CLUSTER_NAME
kubectl apply -k clusters/$CLUSTER_NAME/infra/vault-auth
Retrieve token reviewer JWT value. Handle this value with care!
kubectl get secrets -n vault-auth vault-kubernetes-auth-secret -o=jsonpath='{.data.token}' | base64 -d
kubectl get secrets -n vault-auth vault-kubernetes-auth-secret -o=jsonpath="{.data['ca\.crt']}" | base64 -d