Skip to content

πŸ› οΈ Comprehensive Kubernetes administration workstation with 50+ pre-installed tools. Deploy a fully-equipped debugging pod directly into your cluster. Air-gapped ready.

License

Notifications You must be signed in to change notification settings

cantrellr/ultimate-k8s-toolbox

Ultimate K8s Tool

   ╔═══════════════════════════════════════════════════════════════════════╗
   β•‘                                                                       β•‘
   β•‘   β–ˆβ–‘β–ˆ β–ˆβ–‘β–‘ β–€β–ˆβ–€ β–ˆ β–ˆβ–€β–„β–€β–ˆ β–„β–€β–ˆ β–€β–ˆβ–€ β–ˆβ–€β–€   β–ˆβ–„β–€ β–„β–€β–ˆ β–ˆβ–€   β–€β–ˆβ–€ β–ˆβ–€β–ˆ β–ˆβ–€β–ˆ β–ˆβ–‘β–‘      β•‘
   β•‘   β–ˆβ–„β–ˆ β–ˆβ–„β–„ β–‘β–ˆβ–‘ β–ˆ β–ˆβ–‘β–€β–‘β–ˆ β–ˆβ–€β–ˆ β–‘β–ˆβ–‘ β–ˆβ–ˆβ–„   β–ˆβ–‘β–ˆ β–€β–€β–ˆ β–„β–ˆ   β–‘β–ˆβ–‘ β–ˆβ–„β–ˆ β–ˆβ–„β–ˆ β–ˆβ–„β–„      β•‘
   β•‘                                                                       β•‘
   β•‘              ✈️  "First Flight" Release - v1.0.0  ✈️                 β•‘
   β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Ultimate Kubernetes Toolbox

The comprehensive Kubernetes administration workstation

License: MIT Helm Kubernetes GitHub release

50+ pre-installed tools β€’ Air-gapped ready β€’ Multi-architecture (amd64/arm64)

Quick Start β€’ Tools β€’ Documentation β€’ Contributing


🎯 Overview

Ultimate K8s Toolbox is a Helm chart that deploys a fully-equipped Kubernetes administration workstation directly into your cluster. Think of it as a Swiss Army knife pod β€” pre-loaded with everything you need for debugging, troubleshooting, and managing Kubernetes environments.

Why Use This?

Scenario Solution
πŸ” Debug pod networking issues tcpdump, netcat, nmap, dig all pre-installed
πŸ” Troubleshoot TLS/certificate problems openssl, certificate verification tools, CA trust
πŸ“Š Inspect MongoDB clusters mongosh, mongodump, mongostat ready to go
☸️ Manage Kubernetes resources kubectl, helm, k9s, stern at your fingertips
🚫 Work in air-gapped environments Full offline deployment support with internal registries
πŸ“‹ Meet compliance requirements SBOM generation, security scanning with trivy

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        KUBERNETES CLUSTER                                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚                         TOOLBOX NAMESPACE                              β”‚  β”‚
β”‚  β”‚                                                                        β”‚  β”‚
β”‚  β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚
β”‚  β”‚   β”‚                    TOOLBOX POD                                  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚    INIT CONTAINER     β”‚  β”‚       MAIN CONTAINER           β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚   update-ca-trust     β”‚  β”‚         toolbox                β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  ─────────────────    β”‚  β”‚  ────────────────────────────  β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  β€’ Runs as root       β”‚  β”‚  β€’ Runs as non-root (UID 1000) β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  β€’ Updates CA trust   β”‚  β”‚  β€’ 50+ pre-installed tools     β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  β€’ Copies to volume   β”‚  β”‚  β€’ kubectl, helm, k9s          β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚                       β”‚  β”‚  β€’ mongosh, database clients   β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β€’ Network debugging tools     β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚              β”‚              β”‚  β€’ Python 3.12 + packages      β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚              β–Ό              β”‚                                β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚                                β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚    SHARED VOLUME      β”‚  β”‚                                β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚   shared-ca-certs     │───  /etc/ssl/certs/               β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚   (emptyDir)          β”‚  β”‚                                β”‚  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚  β”‚
β”‚  β”‚   β”‚                                                                 β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚                     VOLUMES                             β”‚    β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  β€’ custom-ca-certs (Secret) - Your CA certificates      β”‚    β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  β€’ workspace (emptyDir) - Working directory             β”‚    β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β”‚  β€’ Custom volumes via values.yaml                       β”‚    β”‚  β”‚  β”‚
β”‚  β”‚   β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚  β”‚  β”‚
β”‚  β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚  β”‚
β”‚  β”‚                                                                        β”‚  β”‚
β”‚  β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚  β”‚
β”‚  β”‚   β”‚                     SERVICE ACCOUNT                            β”‚   β”‚  β”‚
β”‚  β”‚   β”‚  β€’ Configurable ServiceAccount (create/use existing)           β”‚   β”‚  β”‚
β”‚  β”‚   β”‚  β€’ Add annotations as needed                                   β”‚   β”‚  β”‚
β”‚  β”‚   β”‚  β€’ Bind RBAC externally if required                            β”‚   β”‚  β”‚
β”‚  β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⚑ Quick Start

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.x
  • kubectl configured for your cluster

Online Deployment (5 minutes)

# Clone the repository
git clone https://github.com/cantrellr/ultimate-k8s-toolbox.git
cd ultimate-k8s-toolbox

# Deploy to your cluster
helm install toolbox ./chart -n toolbox --create-namespace

# Access the toolbox
kubectl exec -it -n toolbox deploy/toolbox-ultimate-k8s-toolbox -- bash

Using the Quick Access Script

# Install the helper script
./scripts/install-toolbox.sh

# Now just run:
toolbox

πŸ“¦ Included Tools

☸️ Kubernetes & Container Tools (15)
Tool Version Description
kubectl 1.31.x Kubernetes CLI
helm 3.x Kubernetes package manager
k9s Latest Terminal UI for Kubernetes
kubectx/kubens Latest Context and namespace switcher
stern Latest Multi-pod log tailing
kustomize Latest Kubernetes configuration customization
k3d Latest k3s in Docker
kind Latest Kubernetes in Docker
istioctl Latest Istio service mesh CLI
linkerd Latest Linkerd service mesh CLI
argocd Latest ArgoCD CLI
flux Latest Flux CD CLI
velero Latest Backup and restore CLI
kubeseal Latest Sealed Secrets CLI
krew Latest kubectl plugin manager
☁️ Cloud Provider CLIs (3)
Tool Version Description
aws 2.x AWS CLI
az Latest Azure CLI
gcloud Latest Google Cloud SDK
πŸ—„οΈ Database Clients (5)
Tool Version Description
mongosh Latest MongoDB Shell
mongodump/restore Latest MongoDB backup tools
psql Latest PostgreSQL client
mysql Latest MySQL client
redis-cli Latest Redis client
🌐 Network Tools (15)
Tool Description
curl / wget HTTP clients
dig / nslookup / host DNS tools
netcat (nc) Network utility
nmap Network scanner
tcpdump Packet capture
traceroute / mtr Route tracing
ping ICMP testing
telnet Telnet client
iperf3 Bandwidth testing
ss / netstat Socket statistics
ip / ifconfig Network configuration
whois Domain lookup
openssl TLS/SSL toolkit
πŸ” Security Tools (4)
Tool Description
trivy Vulnerability scanner
grype Vulnerability scanner
syft SBOM generator
openssl Certificate operations
πŸ› οΈ Development Tools (15+)
Tool Description
git Version control
vim / nano Text editors
jq / yq JSON/YAML processors
fzf Fuzzy finder
bat Better cat
ripgrep (rg) Fast grep
fd Fast find
htop Process viewer
tree Directory listing
tmux Terminal multiplexer
Python 3.12 With pip and common packages
πŸ’Ύ Storage & Backup Tools (5)
Tool Description
rclone Cloud storage sync
mc MinIO client
restic Backup tool
rsync File synchronization
tridentctl NetApp Trident CLI

πŸ“š Documentation

Document Description
πŸ“– QUICKSTART.md Get started in 5 minutes
πŸ”§ TOOLS-REFERENCE.md Complete tool documentation with examples
✈️ OFFLINE-DEPLOYMENT.md Air-gapped deployment guide
πŸ—οΈ MAKEFILE.md Build system documentation
πŸ“‹ SBOM.md Software Bill of Materials info
🐳 NERDCTL-GUIDE.md Container runtime guide
πŸ“ CHANGELOG.md Version history

πŸš€ Deployment Options

Option 1: Online Deployment

For clusters with internet access:

helm install my-toolbox ./chart \
  -n toolbox --create-namespace \
  -f examples/values-online.yaml

Option 2: Air-Gapped/Offline Deployment

For restricted environments without internet:

# 1. Build offline bundle (on machine with internet)
make offline-bundle

# 2. Transfer dist/offline-bundle/ to air-gapped environment

# 3. Run the deployment script
cd dist/offline-bundle
./scripts/deploy-offline.sh \
  --registry registry.internal:5000 \
  --namespace toolbox

See OFFLINE-DEPLOYMENT.md for detailed instructions.

Option 3: With Custom CA Certificates

For environments with internal PKI:

# Create CA secret
kubectl create secret generic toolbox-ca-certs \
  --from-file=root-ca.crt=/path/to/ca.crt \
  -n toolbox

# Deploy with CA enabled
helm install my-toolbox ./chart \
  -n toolbox \
  --set customCA.enabled=true \
  --set customCA.secretName=toolbox-ca-certs

βš™οΈ Configuration

Key Values

Parameter Description Default
image.repository Image repository ultimate-k8s-toolbox
image.tag Image tag latest
global.imageRegistry Registry for offline deployments ""
replicaCount Number of replicas 1
serviceAccount.create Create ServiceAccount true
workspace.enabled Mount /workspace volume true
workspace.storageClass PVC StorageClass (empty = use emptyDir) ""
workspace.size PVC size (used only if storageClass set) 10Gi
customCA.enabled Enable custom CA trust false
customCA.secretName Secret containing CA certs toolbox-ca-certs
resources.requests.cpu CPU request 10m
resources.requests.memory Memory request 64Mi
resources.limits.cpu CPU limit 500m
resources.limits.memory Memory limit 512Mi

Workspace Storage

  • By default, the toolbox mounts /workspace as an ephemeral emptyDir. Data does not persist across pod restarts.
  • To persist /workspace, set a StorageClass and size to create and mount a PVC.

Example (enable PVC):

workspace:
  storageClass: tridentsvm-nfs-latebinding  # any valid StorageClass
  size: 20Gi                                 # PVC size

Leaving workspace.storageClass empty (default) uses emptyDir:

workspace:
  storageClass: ""  # default; /workspace is emptyDir (ephemeral)

Example values.yaml

# Production offline deployment
global:
  imageRegistry: "harbor.internal.company.com"

image:
  repository: "platform/ultimate-k8s-toolbox"
  tag: "1.0.0"

imagePullSecrets:
  - name: harbor-credentials

customCA:
  enabled: true
  secretName: "company-ca-certs"

resources:
  requests:
    cpu: "200m"
    memory: "512Mi"
  limits:
    cpu: "4"
    memory: "8Gi"

securityContext:
  runAsNonRoot: true
  runAsUser: 1000

πŸ”’ Security

Container Security

  • Non-root by default: Runs as UID 1000
  • No privilege escalation: Disabled by default
  • Read-only root filesystem: Supported (some tools require writeable dirs)
  • RBAC: Configurable cluster/namespace-scoped permissions

Reporting Vulnerabilities

Please report security vulnerabilities via GitHub Security Advisories. See SECURITY.md for details.


πŸ› οΈ Building

Prerequisites

  • Docker or nerdctl/containerd
  • Make
  • Helm 3.x

Build Commands

# Build image
make build

# Build multi-arch (amd64, arm64)
make build-multi

# Run tests
make test

# Create offline bundle
make offline-bundle

# Generate SBOM
make sbom

# See all targets
make help

πŸ“Š Project Structure

ultimate-k8s-toolbox/
β”œβ”€β”€ build/
β”‚   └── Dockerfile          # Container image definition
β”œβ”€β”€ chart/
β”‚   β”œβ”€β”€ Chart.yaml          # Helm chart metadata
β”‚   β”œβ”€β”€ values.yaml         # Default configuration
β”‚   └── templates/          # Kubernetes manifests
β”œβ”€β”€ configs/                # Example configurations
β”œβ”€β”€ examples/               # Deployment examples
β”‚   β”œβ”€β”€ values-online.yaml
β”‚   β”œβ”€β”€ values-offline.yaml
β”‚   └── ...
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ deploy-offline.sh.template
β”‚   β”œβ”€β”€ install-toolbox.sh
β”‚   └── toolbox             # Quick exec helper
β”œβ”€β”€ tests/                  # Test scripts
β”œβ”€β”€ CHANGELOG.md            # Release history
β”œβ”€β”€ CONTRIBUTING.md         # Contribution guide
β”œβ”€β”€ LICENSE                 # MIT License
└── README.md               # This file

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide and Code of Conduct first.

Ways to Contribute

  • πŸ› Report bugs via GitHub Issues
  • πŸ’‘ Suggest features via GitHub Discussions
  • πŸ”§ Submit pull requests
  • πŸ“ Improve documentation
  • πŸ› οΈ Request new tools

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments

  • The Kubernetes community
  • All the amazing open-source tool maintainers
  • Contributors and users of this project

✈️ "First Flight" Release v1.0.0

Per aspera ad astra β€” Through hardships to the stars


Made with ❀️ for the Kubernetes community

]]>

About

πŸ› οΈ Comprehensive Kubernetes administration workstation with 50+ pre-installed tools. Deploy a fully-equipped debugging pod directly into your cluster. Air-gapped ready.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks