The goal of this project is to provide a simplified approach to creating your own local cluster, as well all the utilities you'll need to run a functional cluster, such as a image registry, garbage collectors, ingress configuration with tls and monitoring tools.
It is also meant to provide a way for newcomers on the area both access to a functional GitOps configuration, and the capability to run it easily, to understand how it works in practice.
Kubernetes Version: v1.25.4-k3s1
- ArgoCD as the main GitOps tool | Available at argocd.k8s.localhost
- Access to the cluster using Nginx Ingress.
- On-demand databases clusters with Zalando Operator for PostgreSQL | UI available at dbs.k8s.localhost
- Hot-Reload secrets and configmaps to pods using Reloader.
- Metrics monitoring with Prometheus's Stack (Also includes Grafana)
- Mirror resources between namespaces using Reflector.
- Image caching for hot-swapping using Kube-fledged. (Only useful for multi-node k3d setups)
- k3d running atop of either (pick one):
- Task as a more modern iteration of the Makefile utility
- mkcert for creating locally based TLS certificates for your ingress proxy
- kubectl | kustomize | helm to apply local commands to the cluster
- jq to manipulate the resulting JSON files and extract the required strings
- hostctl to create the local domain on your hosts file (optional, but recommended)
To list available commands, install Task and run:
task help
To install the required tools automatically (Requires brew for Linux/MacOS and Chocolatey for Windows.)
task tools:install
First: You have to fork this repository.
The task commands will ensure the repository is correctly configured once you run the bootstrapping command.
cd into your forked repository, then run:
task
- Storage: Longhorn, require iscsi-compatible drivers. See Using Longhorn in k3d #478.
- Alternative: Local Volumes. Uncomment
config/cluster.yaml
lines 31-36.
- Alternative: Local Volumes. Uncomment
- Cluster Backup: Velero, requires compatible storage provider. See the official compatible list.