From df0eaf0a218dd2141e0d35dc6d31f77bb1411ca5 Mon Sep 17 00:00:00 2001 From: Michael Trip Date: Mon, 29 Jun 2026 13:40:34 +0200 Subject: [PATCH] Add kubectx and kubens support to Dockerfile and bash completion scripts --- Dockerfile | 12 +++++++++++- README.md | 4 +++- docker/motd | 2 +- docker/profile/20-k8s-tools-completion.sh | 8 ++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index c21f111..481e097 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,8 @@ ARG HELM_VERSION=3.21.2 ARG K9S_VERSION=0.51.0 # renovate: datasource=github-releases depName=int128/kubelogin ARG OIDC_LOGIN_VERSION=1.36.2 +# renovate: datasource=github-tags depName=ahmetb/kubectx +ARG KUBECTX_VERSION=0.9.5 ENV DEBIAN_FRONTEND=noninteractive \ @@ -54,9 +56,12 @@ RUN apt-get update \ bash-completion \ ca-certificates \ curl \ + jq \ locales \ unzip \ tar \ + vim \ + yq \ nginx-light \ netcat-openbsd \ openssh-client \ @@ -93,10 +98,15 @@ RUN apt-get update \ && sed 's#\*kubelogin_linux_amd64.zip$#*/tmp/kubelogin_linux_amd64.zip#' /tmp/kubelogin_linux_amd64.zip.sha256 | sha256sum -c - \ && unzip -p /tmp/kubelogin_linux_amd64.zip kubelogin > /usr/local/bin/kubectl-oidc_login \ && chmod 0755 /usr/local/bin/kubectl-oidc_login \ + && curl -fsSLo /usr/local/bin/kubectx "https://raw.githubusercontent.com/ahmetb/kubectx/v${KUBECTX_VERSION}/kubectx" \ + && curl -fsSLo /usr/local/bin/kubens "https://raw.githubusercontent.com/ahmetb/kubectx/v${KUBECTX_VERSION}/kubens" \ + && chmod 0755 /usr/local/bin/kubectx /usr/local/bin/kubens \ && mkdir -p /etc/bash_completion.d \ + && curl -fsSLo /etc/bash_completion.d/kubectx "https://raw.githubusercontent.com/ahmetb/kubectx/v${KUBECTX_VERSION}/completion/kubectx.bash" \ + && curl -fsSLo /etc/bash_completion.d/kubens "https://raw.githubusercontent.com/ahmetb/kubectx/v${KUBECTX_VERSION}/completion/kubens.bash" \ && kubectl completion bash > /etc/bash_completion.d/kubectl \ && helm completion bash > /etc/bash_completion.d/helm \ - && chmod 0644 /etc/bash_completion.d/kubectl /etc/bash_completion.d/helm \ + && chmod 0644 /etc/bash_completion.d/kubectl /etc/bash_completion.d/helm /etc/bash_completion.d/kubectx /etc/bash_completion.d/kubens \ && sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \ && locale-gen en_US.UTF-8 \ && update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 \ diff --git a/README.md b/README.md index 20446e9..ca220cc 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ - `kubectl` preinstalled from a pinned upstream binary release - `helm` preinstalled from a pinned upstream binary release - `k9s` preinstalled from a pinned GitHub release tarball -- `kubectl` and `helm` bash autocompletion enabled for both `admin` and `user` +- `kubectx` and `kubens` preinstalled from a pinned upstream release +- `jq`, `yq`, and `vim` preinstalled from Debian packages +- `kubectl`, `helm`, `kubectx`, and `kubens` bash autocompletion enabled for both `admin` and `user` - local `openssh-server` on port `2222` - a browser-based SSH client on port `3000` - a custom ASCII-art MOTD on login diff --git a/docker/motd b/docker/motd index 9a3de0c..859b382 100644 --- a/docker/motd +++ b/docker/motd @@ -15,7 +15,7 @@ ║ - lfk : LFK kubernetes management ║ ║ - k9s : interactive cluster navigation ║ ║ - helm : chart install, upgrade, and rollback ║ - ║ - plus : kubectx, kubens, jq, yq, and more ║ + ║ - plus : kubectx, kubens, jq, yq, vim, and more ║ ║ ║ ╠════════════════════════════════════════════════════════════════╣ ║ Quick start ║ diff --git a/docker/profile/20-k8s-tools-completion.sh b/docker/profile/20-k8s-tools-completion.sh index b9092e6..5cb4a72 100644 --- a/docker/profile/20-k8s-tools-completion.sh +++ b/docker/profile/20-k8s-tools-completion.sh @@ -13,6 +13,14 @@ if [ -n "${BASH_VERSION:-}" ]; then if [ -r /etc/bash_completion.d/helm ]; then . /etc/bash_completion.d/helm fi + + if [ -r /etc/bash_completion.d/kubectx ]; then + . /etc/bash_completion.d/kubectx + fi + + if [ -r /etc/bash_completion.d/kubens ]; then + . /etc/bash_completion.d/kubens + fi fi alias k=kubectl