Configuration for the Veda cluster
Go to file
2025-05-03 15:53:35 +02:00
app-test-1 Add host specification to Traefik ingress rule for app-test-1 2025-05-03 14:28:18 +02:00
applications Add ingress configuration for Ceph dashboard in Rook Ceph cluster YAML 2025-05-03 15:53:35 +02:00
cilium Add CiliumLoadBalancerIPPool configuration for Traefik 2025-05-03 10:03:45 +02:00
talos Updates current cilium config 2025-05-03 09:34:17 +02:00
.gitignore Add .gitignore to exclude .DS_store files 2025-05-02 17:04:49 +02:00
readme.md Update README.md with additional instructions for applying patches, resetting nodes, and ArgoCD default login 2025-05-02 22:31:37 +02:00

Veda

The new setup of my homelab will be based on Kubernetes, which will prevent all of my services going down when I need to do physical maintenance of a host.

Services

Core

  • Ceph for all storage: cephfs, object storage and block storage
  • Nextcloud: file storage interface for the entire family
  • Jellyfin: Web based media streaming
  • Authentik: Central identification and authentication server
  • Nginx reverse proxy
  • ACME client: SSL certificate handling
  • ArgoCD: Revision control for all Kubernetes configuration
  • Homeassistant + Zigbee2mqtt
  • Prometheus
  • Grafana
  • Grafana Loki + FluentD
  • Cilium
  • Harbor: Container image storage

Nice-to-have

  • Jellyseerr: Nice interface to request movies and series
  • Sonarr: Automated downloading and handling of series
  • Radarr: Automated downloading and handling of movies
  • Flaresolverr: Fetching data hidden behind captchas
  • Torrent client (qBittorrent): To download all the linux ISOs
  • ExternalDNS
  • Paperless-ngx

Look-into-later

  • Mastodon: federated social platform
  • Forgejo: Git platform. Maybe this should not be hosted on the cluster as it will depend on it.
  • CloudNativePG: K8s operator for PostgreSQL

Bootstrapping

TODO

TODO

  • Remove secrets from config

Misc

Applying patches

talosctl patch machineconfig -p @argocd.yaml -n 192.168.0.0

Reset node

talosctl reset --system-labels-to-wipe EPHEMERAL,STATE --reboot -n 192.168.0.0

ArgoCD default login

User: admin, password can be retrieved with (ignore the '%' at the end):

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d