K3S#
Warning
This documentation is at a very early stage.
Important used technologies#
-
K3S This is the foundation of the infrastructure. It's an easy to deploy and maintain kubernetes distribution
-
ArgoCD is a tool to manage kubernetes clusters the GitOPs way
-
Kustomize is used to manage the kubernetes manifests within ArgoCD
-
Ansible prepares the machines for the k3s installation and installs k3s
-
Vagrant manages the test environment
Features#
Excerpt of features this cluster provides:
- Provision nodes, including k3s, via ansible
- GitOps based cluster management with ArgoCD
- Encrypted secrets with sops
- Every exposed service uses SSO with Authelia
- File backups from persistant volumes
- Backup any folder to a restic supported storage backend
- Delete old backups (Daily, Weekly, Monthly, Always Keep Last)
- ntfy.sh notification on failure
- prometheus pushgateway metrics
- KubeDoom: Killing whoami containers with a shotgun
- High Avaliability ControlPlane and LoadBalancer via KubeVIP
- Monitoring via kube-prometheus-stack
- Logging via loki
- Alerting via alertmanager to a selfhosted ntfy
- Storage managed via longhorn
- Vagrant based virtual test environment
ToDos#
- ✅ Backup
- ✅ Notification on failure
- ✅ Encryption of secrets
- ✅ Rework documentation
- Extend Monitoring beyond kube-prometheus-stack defaults
- ✅ Migrate renovate to github actions