A Kubernetes development environment.
Click image for a demo
A Kubernetes development environment that provides a local setup for developing, testing, and debugging Kubernetes-based applications. This guide will help you set up and configure all necessary tools to create an efficient workflow.
This environment depends on the following tools, which are essential for running Kubernetes locally and managing your environment:
For detailed setup instructions, refer to prerequisites.md
To setup the development environment run:
./devenv.shThe deployed services are primarily Spring Boot applications built using Gradle
For more information on the setup script, see setup-devenv.md
These tools are not required but can enhance your development experience:
- zellij - Terminal multiplexer for managing multiple terminal windows.
- k9s - A terminal-based UI to interact with Kubernetes clusters.
- kubectx - A tool to switch between Kubernetes contexts easily.
- kubens - A tool to switch between Kubernetes namespaces.
For more information on setting up these tools, refer to optional-tooling.md
Run the following command to access the Kubernetes Dashboard:
minikube dashboardThen, navigate to the provided URL.
The environment uses Skaffold as a tool to package and deploy source code directly into the local k8s cluster. Each project contains a skaffold.yaml definition file that tells Skaffold how to handle local deployments (see example skaffold.yaml here)
Resource deployments use Helm-style Skaffold configs (i.e. Skaffold generates Helm install and update commands).
To deploy source code (assuming code is build first using ./gradlew clean build) into the local cluster, run the following command from the same location as the skaffold.yaml definition file:
skaffold run --port-forwardor Skaffold can monitor your source code for changes using...
skaffold dev --port-forwardTo deploy a service in debug mode, run:
skaffold debugThe deploy will automatically set up a port foward for debugging on port 5005. Configure your debugger as a remote JVM debugger (e.g. in IntelliJ):
To update services to the latest available versions, simply run the setup script again. Since the script is idempotent, it will redeploy or update without causing conflicts.
To remove all traces of your cluster and start over, you can run:
minikube delete
