This repo has been deprecated in favor of Wieseschwarm.
Work in progress!
Kubernetes manifests as well as some K3s/K3d configuration manifests intended for a "home production ready" single-node installation, including Day 2 operations tasks like Backups and keeping software, Helm Charts and images up to date.
For now, the project will use free SaaS offerings where applicable (e.g. for Metrics & Monitoring).
Intended infrastructure scope:
- cert-manager
- Sealed Secrets
-
Database (MariaDB)(succeeded by MySQL Operator) - MySQL Operator + Database (may become MySQL Cluster in the future)
- DB-Operator
- Composable Operator
- k8up
- Flux may be revisited in the future for image automation or notifications
- External DNS (Has to be tested more thoroughly lateron)
-
Prometheus + Alertmanager(succeeded by Grafana-Agent-Operator) - Grafana-Agent-Operator (better alert config solution may be required in the future)
- Renovate
Extended infrastructure scope (applications considered for later):
- Calico
- ingress-nginx
- k8s_gateway
- Goldilocks
- Hajimari
- Reloader
- Better Grafana Cloud alerting solution
- Vertical Pod Autoscaler & Goldilocks
Application scope (subject to change):
- Nextcloud (Basic installation stuff done, customization WIP)
- Nitter
- Firefox Sync
Other tasks:
- Create Makefile for bootstrapping
- Add requests & limits to resources (will be done later, potentially with VPA)
Development is done via k3d. Persistent data (volumes) will be written to ${K3D_DIR}
if set or /tmp/
otherwise. I also recommend to set ACLs for the volumes
folder:
setfacl -Rdm ${USER}:rwx ${K3D_DIR}
This will prevent permission problems when clean
ing the development environment.
- To create a new cluster on a fresh system, run
make develop
ormake new
- To tear down the development cluster, run
make clean
- To recreate a cluster run
make new
- Starting/Stopping clusters can be done with
make start
/make stop