k3s-cluster/docs/setup.md

61 lines
1.9 KiB
Markdown

# Cluster Setup
This document goes over the process of installing the GitOps files into a cluster
1. Install [cilium](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/#install-the-cilium-cli) in the cluster
2. Install the [Flux CLI](https://fluxcd.io/flux/installation/#install-the-flux-cli)
3. Install [go-task](https://taskfile.dev/installation/)
4. Ensure you have a kubeconfig at `$HOME/.kube/config` and that you have the cluster sops GPG key imported.
5. Bootstrap flux
```sh
task flux:bootstrap
# namespace/flux-system configured
# customresourcedefinition.apiextensions.k8s.io/alerts.notification.toolkit.fluxcd.io created
# ...
```
6. Verify Flux components are running in the cluster
```sh
kubectl -n flux-system get pods -o wide
# NAME READY STATUS RESTARTS AGE
# helm-controller-5bbd94c75-89sb4 1/1 Running 0 1h
# kustomize-controller-7b67b6b77d-nqc67 1/1 Running 0 1h
# notification-controller-7c46575844-k4bvr 1/1 Running 0 1h
# source-controller-7d6875bcb4-zqw9f 1/1 Running 0 1h
```
7. After a while all the services should start to come up
# Uninstalling and removing all k3s data in NixOS
```shell
sudo systemctl stop k3s
sudo rm -rf /etc/rancher/k3s
sudo rm -rf /var/lib/rancher/k3s
sudo systemctl start k3s
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $USER ~/.kube/config
sudo chmod 600 ~/.kube/config
```
## Finishing Service Setup
### SSO (Authentik)
Many services require SSO to be setup.
Proxy Providers:
* Bazarr
* Mylar3
* Prowlarr
* qBittorrent
* Radarr
* Readarr Audiobooks
* Readarr eBooks
* Sonarr
* Prometheus
* Alertmanager
* Traefik
OpenID Providers:
* Komga
* Apache Guacamole
An LDAP Provider is also required by services. Create an LDAP provider in authentik and just let it create the kubernetes resources.