Skip to content

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