Compare commits

..

3 commits

Author SHA1 Message Date
Renovate Bot
62d68bea0c Update dependency janosmiko/lfk to v0.14.18
All checks were successful
Build k8s-mgmt-pod image / Build & Push (pull_request) Successful in 1m52s
2026-06-29 07:24:07 +00:00
b6f7d1e1b7 Update kubeconfig handling in entrypoint script for better clarity
All checks were successful
Build k8s-mgmt-pod image / Build & Push (push) Successful in 53s
2026-06-29 09:14:20 +02:00
68c6789ac4 Add OIDC login support and unzip utility to Dockerfile
All checks were successful
Build k8s-mgmt-pod image / Build & Push (push) Successful in 1m50s
2026-06-29 08:52:08 +02:00
3 changed files with 19 additions and 2 deletions

View file

@ -30,6 +30,8 @@ ARG KUBECTL_VERSION=1.36.2
ARG HELM_VERSION=3.21.2 ARG HELM_VERSION=3.21.2
# renovate: datasource=github-releases depName=derailed/k9s # renovate: datasource=github-releases depName=derailed/k9s
ARG K9S_VERSION=0.51.0 ARG K9S_VERSION=0.51.0
# renovate: datasource=github-releases depName=int128/kubelogin
ARG OIDC_LOGIN_VERSION=1.34.0
ENV DEBIAN_FRONTEND=noninteractive \ ENV DEBIAN_FRONTEND=noninteractive \
@ -49,6 +51,7 @@ RUN apt-get update \
bash-completion \ bash-completion \
ca-certificates \ ca-certificates \
curl \ curl \
unzip \
tar \ tar \
nginx-light \ nginx-light \
netcat-openbsd \ netcat-openbsd \
@ -81,6 +84,11 @@ RUN apt-get update \
&& curl -fsSLo "/tmp/k9s_Linux_amd64.tar.gz" "https://github.com/derailed/k9s/releases/download/v${K9S_VERSION}/k9s_Linux_amd64.tar.gz" \ && curl -fsSLo "/tmp/k9s_Linux_amd64.tar.gz" "https://github.com/derailed/k9s/releases/download/v${K9S_VERSION}/k9s_Linux_amd64.tar.gz" \
&& tar -xzf "/tmp/k9s_Linux_amd64.tar.gz" -C /tmp \ && tar -xzf "/tmp/k9s_Linux_amd64.tar.gz" -C /tmp \
&& install -m 0755 /tmp/k9s /usr/local/bin/k9s \ && install -m 0755 /tmp/k9s /usr/local/bin/k9s \
&& curl -fsSLo "/tmp/kubelogin_linux_amd64.zip" "https://github.com/int128/kubelogin/releases/download/v${OIDC_LOGIN_VERSION}/kubelogin_linux_amd64.zip" \
&& curl -fsSLo "/tmp/kubelogin_linux_amd64.zip.sha256" "https://github.com/int128/kubelogin/releases/download/v${OIDC_LOGIN_VERSION}/kubelogin_linux_amd64.zip.sha256" \
&& 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 \
&& mkdir -p /etc/bash_completion.d \ && mkdir -p /etc/bash_completion.d \
&& kubectl completion bash > /etc/bash_completion.d/kubectl \ && kubectl completion bash > /etc/bash_completion.d/kubectl \
&& helm completion bash > /etc/bash_completion.d/helm \ && helm completion bash > /etc/bash_completion.d/helm \
@ -93,6 +101,8 @@ RUN apt-get update \
/tmp/k9s \ /tmp/k9s \
/tmp/README.md \ /tmp/README.md \
/tmp/LICENSE \ /tmp/LICENSE \
/tmp/kubelogin_linux_amd64.zip \
/tmp/kubelogin_linux_amd64.zip.sha256 \
/tmp/k9s_Linux_amd64.tar.gz \ /tmp/k9s_Linux_amd64.tar.gz \
&& rm -f /etc/ssh/ssh_host_* \ && rm -f /etc/ssh/ssh_host_* \
&& apt-get clean && apt-get clean

View file

@ -71,6 +71,8 @@ The included [docker-compose.yaml](docker-compose.yaml) enables kubeconfig boots
That bootstrap is explicitly opt-in and defaults to off in the container itself, so it does not run in Kubernetes unless you deliberately enable it. That bootstrap is explicitly opt-in and defaults to off in the container itself, so it does not run in Kubernetes unless you deliberately enable it.
When both are available, the bootstrap kubeconfig is applied after the service-account kubeconfig and therefore takes precedence.
Start it with: Start it with:
```bash ```bash

View file

@ -291,8 +291,13 @@ EOF
prepare_runtime() { prepare_runtime() {
mkdir -p /var/run/sshd mkdir -p /var/run/sshd
ensure_host_keys ensure_host_keys
install_serviceaccount_kubeconfig if [[ "${ENABLE_BOOTSTRAP_KUBECONFIG}" == "true" ]]; then
log "Kubeconfig mode: bootstrap-only (serviceaccount kubeconfig generation disabled)."
install_bootstrap_kubeconfig install_bootstrap_kubeconfig
else
log "Kubeconfig mode: in-cluster serviceaccount."
install_serviceaccount_kubeconfig
fi
persist_kubernetes_login_env persist_kubernetes_login_env
configure_user_auth admin ADMIN_SSH_PUBKEY ADMIN_PASSWORD configure_user_auth admin ADMIN_SSH_PUBKEY ADMIN_PASSWORD
configure_user_auth user USER_SSH_PUBKEY USER_PASSWORD configure_user_auth user USER_SSH_PUBKEY USER_PASSWORD