This repository provides a Dev Container setup for Kubernetes, Golang, and cloud-native development using VS Code Dev Containers. It includes various CLI tools, automation features, and Kubernetes utilities.
The container is built using a multi-stage Dockerfile and a Dev Container configuration (devcontainer.json).
- Go 1.23.6 (Builder stage)
- Installs Jsonnet tools and jsonnet-bundler.
- Microsoft DevContainers Python 3.13 (Final image)
- Includes Python environment with DevContainer optimizations.
- Jsonnet (
jsonnet,jsonnet-lint,jsonnetfmt) β JSON templating - Jsonnet Bundler (
jb) β Package manager for Jsonnet - Git & Entr β Version control and file watching
- Kubernetes alias (
alias k=kubectl) - Ripgrep - Fast grepping (https://github.com/BurntSushi/ripgrep)
- Carapace - Multishell completion (https://github.com/carapace-sh/carapace-bin)
- fzf - A command line fuzzy finder (https://github.com/junegunn/fzf)
| Feature | Description |
|---|---|
| argo-cd | GitOps continuous delivery tool. |
| chezmoi | Dotfile manager for managing configurations. |
| Cilium | eBPF-based networking, security, and observability. |
| docker-in-docker | Enables running Docker inside the container. |
| go-task | Task runner for automation. |
| gum | Command-line tool for interactive scripts. |
| jq & yq | CLI tools for processing JSON (jq) and YAML (yq). |
| kind | Kubernetes IN Docker (KinD) for local clusters. |
| k3d | Lightweight Kubernetes (K3s) cluster in Docker. |
| k9s | Terminal UI for managing Kubernetes clusters. |
| kubectl, Helm, Minikube | Kubernetes CLI tools. (Minikube disabled.) |
| pre-commit | Framework for managing pre-commit hooks. |
| skaffold | Continuous development and deployment for Kubernetes. |
| talosctl | Command-line tool for managing Talos clusters. |
The container image is automatically built and pushed using GitHub Actions every Sunday. This ensures that all dependencies, tools, and base images stay up to date.
- GitHub Actions triggers a monthly build.
- The updated image is pushed to Docker Hub under the name
kevintijssen/devcontainer-base.
- Modify
.devcontainer/devcontainer.jsonto add/remove features. - Update the
Dockerfileto install additional tools or dependencies.
kis aliased tokubectlfor convenience.- The Go builder stage ensures Jsonnet tools are available without bloating the final image.
This project is licensed under the MIT License.