This repository contains a baseline setup of a Kubernetes cluster for local development and an example dashboard application that displays information on the applications running inside the cluster.
The dashboard can be locally built and deployed to the cluster and includes canary deployments, OpenTelemetry integration and smoke tests to verify that the application is working as expected when deployed.
The baseline includes:
- Kubernetes:
- Container Registry:
- DNS:
- Ingress:
- Observability:
- Progressive Delivery:
- Other:
All of the container images are scanned using Trivy and cached in the local container registry to speed up cluster provisioning between changes.
Since this is a hobby project, it hasn't been built with cross-platform compatibility in mind.
There are some commands specific to macOS used in the setup and teardown scripts, so it would take some effort to get this working on other platforms. I run this on a Mac M4 Pro and have included a Brewfile with the dependencies I used when working on this project.
You can install Homebrew and the dependencies with the following commands:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew bundle
You may need to allow execution of the scripts by running the following command:
chmod +x ./setup.sh
chmod +x ./teardown.sh
To setup the cluster, you can run the following command:
./setup.sh
To teardown the cluster, you can run the following command:
./teardown.sh
There is sometimes an issue where the DNS cache on the host machine needs to be flushed if names are not resolving. You can flush the cache with the following commands:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
Since this is a hobby project, it won't be actively maintained. However, if you have any suggestions or feedback, please feel free to open an issue or submit a pull request.