ArgoCD deals with continuous delivery, pulling from the homelab repo in Gitea and syncing manifest updates into the cluster.
Useful features:
-
All deployments are driven from Gitea, updating an app means committing changes to its manifest.
-
ArgoCD provides a live dashboard of what’s running, what’s out of sync, and what’s healthy.
Install ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# set the IP for the load balancer
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer", "loadBalancerIP": "192.168.56.114"}}'
kubectl apply -f argocd/argocd_patch.yaml
Get the admin account password for the UI
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d
Install the CLI on your local machine and login
curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
rm argocd-linux-amd64
argocd login argocd.home.olirowan.local --insecure --username admin
Add the IaC repo and set the ArgoCD namespace
argocd repo add http://gitea.home.olirowan.local/olirowan/homelab-iac.git --insecure-ignore-host-key