# Kubernetes Development These configs and scripts attempt to simplify spinning up a kubernetes cluster for development and testing purposes. It leverages [k3d](https://k3d.io) to create a [k3s](https://k3s.io) cluster in Docker. Homepage can then be deployed either via the `k3d-deploy.sh` script, or [tilt](https://tilt.dev) can be used to spin up a local CI loop that will automatically update the deployment. All the commands in the document should be run from the `k3d` directory. ## Requisite Tools | Tool | Description | | ----------------------------------------------------------- | -------------------------------------------------------- | | [docker](https://docker.io) | Docker container runtime | | [kubectl](https://kubernetes.io/releases/download/#kubectl) | Kubernetes CLI | | [helm](https://helm.sh) | Kubernetes package manager | | [k3d](https://k3d.io) | Kubernetes on Docker - used to create the cluster | | [k9s](https://k9scli.io) | (Optional) Command line view for kubernetes cluster | | [tilt](https://tilt.dev) | (Optional) Local CI loop for kubernetes deployment | | [direnv](https://direnv.net/) | (Optional) Automatically loads `kubeconfig` via `.envrc` | ## One-off Test Deployments Create a cluster: ```sh ./k3d-up.sh ``` Build and deploy: ```sh ./k3d-deploy.sh ``` Open the Homepage deployment: ```sh xdg-open http://homepage.k3d.localhost:8080/ ``` ## Continuous Deployment Create a cluster: ```sh ./k3d-up.sh ``` Kick off tilt: ```sh tilt up ``` Press space bar to open the tilt web UI, which is quite informative. Finally, open the Homepage deployment: ```sh xdg-open http://homepage.k3d.localhost:8080/ ```