Toolbox & Manifest


k8s-tools.yml is a docker compose file with 20+ container specifications covering popular platforming tools and other utilities for working with Kubernetes. The collection is structured in the following ways:

  1. Executable file, i.e. ./k8s-tools.yml ... is equivalent to docker compose -f k8s-tools.yml ...
  2. Tool containers are easy to change or extend, in place. We use the dockerfile_inline directive to avoid extra clutter. Customize them if you need to, and you can still avoid having N Dockerfiles cluttering up your whole repository.
  3. Default versions for container-bases are provided, but you can set an environment variable to override them individually.
  4. Sane defaults for volumes & environments are included for each tool-container, meaning that sharing the working directory, docker socket, and kubeconfigs is done automatically. For host vs. container file permissions, k8s-tools.yml also attempts to provide smoother operations with root-user containers to avoid the common problem of messing up file permissions on the host.
  5. All tool containers are just-in-time & on-demand, so that having these declared in case of eventual use won't saddle you with an enormous bootstrap process. As usual with docker-compose, containers aren't pulled until they are used, and build-when-changed mostly works as you'd expect.

The overall focus for k8s-tools.yml is to stand alone with no host dependencies (not even Dockerfiles), yet provide boilerplate that's parametric enough to work pretty well across different projects without changing the compose file. Technically you don't need project integration or even need k8s.mk, but you'll probably want it anyway.

Toolbox Manifest


Here's a quick overview of the manifest and some details about versioning.

Upstream parts of the tool bundle


These tools are packaged together as part of alpine-docker, thus basically getting one version number/tag on that container. Therefore they are not as independently versioned as most of the other tools, but k8s-tools.yml has service-stubs for quick overrides in case you need something specific. See the latest alpine info here.

Local parts of the tool bundle


These tools are separate from alpine docker. An official image base is used when possible, extending it where necessary. If that's not possible, we build in-place by inlining a Dockerfile. For details, see the latest k8s-tools.yml here

Versions and Overrides


Parsed from the latest source @ k8s-tools.yml

failed