# Kluster setup and IaaC using argoCD ### Initial setup #### Requirements: - A running k3s instance - `sealedsecrets` deployed #### 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 - ... #### Recap - install sealedsecrets see [README](./infrastructure/sealedsecrets/README.md) ```bash 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 ```bash kubectl apply -k infrastructure/argocd ``` - wait... ### Adding an application todo