The ops-toolbelt
aims to be a standard container image with pre-installed useful tools for troubleshooting issues on gardener landscapes for human operators.
The pods created with this image can be both general pods and node-bound pods (behaving as if being on the node directly).
Starting a pod with the ops-toolbelt
image requires a running Kubelet
, a healthy control plane, a working VPN connection, and sufficient capacity on the node.
The simplest way of using the ops-toolbelt
is to just run the following command:
$ docker run -it europe-docker.pkg.dev/gardener-project/releases/gardener/ops-toolbelt:latest
__ _ __ _ _ __ __| | ___ _ __ ___ _ __ ___| |__ ___| | |
/ _` |/ _` | '__/ _` |/ _ \ '_ \ / _ \ '__| / __| '_ \ / _ \ | |
| (_| | (_| | | | (_| | __/ | | | __/ | \__ \ | | | __/ | |
\__, |\__,_|_| \__,_|\___|_| |_|\___|_| |___/_| |_|\___|_|_|
|___/
Run ghelp to get information about installed tools and packages
You can then add personal configurations to your ops-toolbelt
container for tools like kubectl
, gcloud
and so on.
Get the names of the nodes on your cluster and then run hacks/ops-pod
with the node you want to start the pod on:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready <none> 3h23m v1.30.4
node2 Ready <none> 24h v1.30.4
node3 Ready <none> 11h v1.30.4
node4 Ready <none> 7h44m v1.30.4
$ ./hacks/ops-pod node1
node name provided ...
Deploying ops pod on node1
pod/ops-pod created
Waiting for pod to be running...
Waiting for pod to be running...
_ _ _ _
__ _ __ _ _ __ __| | ___ _ __ ___ _ __ ___| |__ ___| | |
/ _` |/ _` | '__/ _` |/ _ \ '_ \ / _ \ '__| / __| '_ \ / _ \ | |
| (_| | (_| | | | (_| | __/ | | | __/ | \__ \ | | | __/ | |
\__, |\__,_|_| \__,_|\___|_| |_|\___|_| |___/_| |_|\___|_|_|
|___/
Run ghelp to get information about installed tools and packages
root at ops-pod in /
$
Use ./hacks/ops-pod --help
to check what other options are available
Dockerfiles for the images are generated from files in the dockerfile-configs
directory.
To generate the Dockerfile for the ops-toolbelt, run:
$ make build
The generated Dockerfile is created under the generated_dockerfiles
directory.
To build the image, use:
$ make build-image
to build the corresponding image.
You can run the image with:
docker run -ti --rm ops-toobelt:latest
## Known issues
1. Currently, there's a known issue when using `/bin/sh`. We implemented a color scheme and also added some helper function to display in `/bin/bash` terminal which doesn't work in `/bin/sh`. As workaround when you want to use some script which by default needs to utilize `/bin/sh` please use `/bin/bash` instead if possible: (take `chroot` for example).
```bash
$ chroot /some_dir /bin/bash