Go to file
2022-06-24 20:43:24 +02:00
.gitlab/agents Add dev-env kubernetes agent 2022-05-27 22:27:30 +02:00
adguard Holyday tmp 2022-06-24 20:43:24 +02:00
dashboard Update kubernetes dashboard to be accessible from localhost, waiting for TLS 2022-05-15 21:43:20 +02:00
helm Holyday tmp 2022-06-24 20:43:24 +02:00
longhorn Holyday tmp 2022-06-24 20:43:24 +02:00
minecraft Add working minecraft configuration 2022-06-06 18:41:15 +02:00
nginx Holyday tmp 2022-06-24 20:43:24 +02:00
ocis Holyday tmp 2022-06-24 20:43:24 +02:00
res Add longhorn storage classes 2022-06-06 18:40:29 +02:00
vaultwarden Holyday tmp 2022-06-24 20:43:24 +02:00
.gitlab-ci.yml Test gitlab integration 2022-05-28 14:05:44 +02:00
README.md Update README with missing services and new progress 2022-06-21 01:30:00 +02:00

K3s cluster

Name Usage Accessibility Host DB type Automated backups Configured
therbron.com Personal website Public Socrates - Nothing to backup No
Traefik Reverse proxy and load balancer Public* Socrates - Git configuration Yes
Adguard DNS ad blocker and custom DNS server Private Socrates - ? Yes
Owncloud Infinity Scale File hosting webUI Public Plato PostgreSQL ? No
Home assistant Home automation and monitoring Private Pythagoras-a PostgreSQL ? No
Vikunja To-do and Kanban boards Public Pythagoras-b - ? No (To be integrated in Gitlab)
Gitlab Version control system Public Pythagoras-b PostgreSQL ? No
Wiki Documentation manager Public Pythagoras-b - ? No (Migrate to VuePress and Gitlab)
Vaultwarden Password manager Public Pythagoras-b PostgreSQL ? No
Synapse Matrix server - Message centralizer Public Pythagoras-b PostgreSQL ? No
PaperlessNG PDF viewer and organiser Public Pythagoras-b PostgreSQL ? No
Raspsnir Bachelor memorial website Public Pythagoras-b PostgreSQL ? No
Jellyfin Media streaming Public Archimedes - ? No
Sonarr TV shows collection manager Private Plato SQLite** ? No
Radarr Movie collection manager Private Plato SQLite** ? No
Jackett Torrent indexer Private Plato - ? No
Deluge Torrent client Private Plato - ? No
Minecraft Vanilla minecraft server for friends Public Archimedes - Longhorn snapshots Yes
Satisfactory Satisfactory server for friends Public Archimedes - Longhorn snapshots No
Space engineers Space engineers server for friends Public Archimedes - Longhorn snapshots No

* Configuration panel only available internally
** Current implementation only support SQLite, making manual backups a necessity

Completed

  • Add TLS certificates for every http applications

TODO

  • Change host/deployment specific variables to use environment variables
  • Write CI/CD pipeline to create environment loaded files
  • Write CI/CD pipeline to deploy cluster
  • Setup internal traefik with nodeport as reverse proxy for internal only services
  • Setup DB container sidecars for automated backups to Longhorn volume
  • Look into CockroachDB for redundant database Judged too complicated, moving to a 1 to 1 relationship between services and databases
  • Configure IP range accessibility through Traefik (Internal vs external services) Impossible because of flannel ip-masq

Notes

Add node to the list of available load balancer kubectl label node <node-name> svccontroller.k3s.cattle.io/enablelb=true

Install traefik through helm

helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install -f helm/traefik/values.yaml traefik traefik/traefik

Install longhorn

kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml