Kluster setup and IaaC using argoCD
Description
Requirements:
- A running k3s instance
sealedsecretsdeployed
Installing argo and the app-of-apps
kubectl apply -k infrastructure/argocd
This will install argocd and its CRDs in a dedicated namespace. The app-of-apps is configured under kluster-deployments/ and deployed as well. This will bootstrap all other apps, as described in ./kluster-deployments.
The app-of-apps will bootstrap a fully featured cluster with the following components
- postgres instance with backups
- backup of all nfs PVCs using restic
- traefik (along with metallb as a publicly accessible reverse proxy)
- an nfs-provisioner creating PVCs on-demand
- gitea
- a range of selfhosted apps:
- nextcloud
- jellyfin
- adguard-home
- homarr
- homeassistant
- immich
- ...
Setup instructions
- install sealedsecrets see README
kubectl apply -k infrastructure/sealedsecrets kubectl apply -f infrastructure/sealedsecrets/main.key kubectl delete pod -n kube-system -l name=sealed-secrets-controller - install argocd and the app-of-apps bundled with it
kubectl apply -k infrastructure/argocd
NOTE: The argocd kustomization already mentions some CRDs available only after the full bootstrapping (traefik). Some might fail to apply right away. Since the argo application is managed through argo as well, they will become available as all kluster applications are rolled out.
Adding an application
- todo
- Don't forget to add the status badge.
Status
Description
Languages
Nix
100%