48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
# 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
|
|
|
|
|