A toolbox for working with Kubernetes manifests and clusters, packaged as a container image, with a helper script to easily run the utilities as if they were installed natively on the host system.
This is primarily intended for use in development and lab environments. For secure environments (build pipelines, production clusters), it is recommended to use slimmed down images that contain only the essentials.
The following tools are included:
- argocd GitOps controller
- tektoncd-cli CI/CD
- knative serverless framework
- helm Kubernetes package manager
- kubectl Kubernetes CLI
- jsonnet data templating language
- jsonnet-bundler
jsonnet package manager (
jb
) - gojsontoyaml JSON to YAML converter
Eventually the base image might be extended for various cloud providers, but none are included at this time.
The official images are hosted at Github and signed by Cosign:
docker pull ghcr.io/thinkmassive/kubetools:main
Additional images may be published to DockerHub for convenience, although using the GHCR images is preferred.
The kubetools.sh
script makes it easy to use any of the bundled tools nearly
the same as if they were installed natively:
./kubetools.sh [<cmd> [<arg(s)>]]
- List nodes using
kubectl
:./kubetools.sh kubectl get nodes
- List installed
helm
releases:./kubetools.sh helm ls
- Get a shell inside the container:
./kubetools.sh
Aliases can be used to map the original tool names to call the helper script.
The script includes an option to easily add/remove them from .bashrc
:
- Add/update aliases:
./kubetools.sh --install
- Remove aliases:
./kubetools.sh --uninstall
Default options can be ov 5EC1 erridden by the following environment variables:
Env var | Description | Default value |
---|---|---|
KUBETOOLS_ALIASES |
Aliases to create in .bashrc |
kubetools argocd helm jb jsonnet kn kubectl tkn |
KUBETOOLS_ALIAS_FILE |
Absolute path to .bash_aliases to modify |
$HOME/.bash_aliases |
KUBETOOLS_KUBECONFIG |
Absolute path to KUBECONFIG | $HOME/.kube/config |
KUBETOOLS_IMAGE |
Container image registry & repository | ghcr.io/thinkmassive/kubetools |
KUBETOOLS_TAG |
Container image tag | main |
KUBETOOLS_VERBOSITY |
Log level (0 to 2) | 1 |