install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/rohitg00/kubectl-mcp-server/k8s-kind" ~/.claude/skills/comeonoliver-skillshub-k8s-kind && rm -rf "$T"
manifest:
skills/rohitg00/kubectl-mcp-server/k8s-kind/SKILL.mdsource content
kind (Kubernetes IN Docker) Management
Manage local Kubernetes clusters using kubectl-mcp-server's kind tools (32 tools).
kind enables running local Kubernetes clusters using Docker container "nodes". It's ideal for local development, CI/CD testing, and testing across Kubernetes versions.
When to Apply
Use this skill when:
- User mentions: "kind", "local cluster", "Kubernetes in Docker", "dev cluster"
- Operations: creating local clusters, loading images, CI/CD testing
- Keywords: "local development", "test cluster", "load image", "multi-node"
Priority Rules
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Detect kind CLI first | CRITICAL | |
| 2 | Generate config for complex setups | HIGH | |
| 3 | Load images after cluster creation | HIGH | |
| 4 | Export logs for debugging | MEDIUM | |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Detect kind | | |
| Create cluster | | |
| Load image | | |
| Get kubeconfig | | |
Prerequisites
- kind CLI: Required for all kind tools
# macOS brew install kind # or download binary curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-$(uname)-amd64 chmod +x ./kind && sudo mv ./kind /usr/local/bin/kind - Docker: Required (kind runs clusters in Docker containers)
Check Installation
kind_detect_tool() kind_version_tool() kind_provider_info_tool()
List Clusters
kind_list_clusters_tool()
Get Cluster Information
kind_cluster_info_tool(name="my-cluster") kind_cluster_status_tool(name="my-cluster") kind_get_nodes_tool(name="my-cluster") kind_node_labels_tool(name="my-cluster")
Configuration Management
Generate Config
kind_config_generate_tool() kind_config_generate_tool(workers=2, control_planes=1) kind_config_generate_tool(workers=2, ingress=True, registry=True) kind_config_generate_tool(control_planes=3, workers=3)
Validate Config
kind_config_validate_tool(config_path="/path/to/kind.yaml")
Show Running Config
kind_config_show_tool(name="my-cluster")
Available Images
kind_available_images_tool()
Get Kubeconfig
kind_get_kubeconfig_tool(name="my-cluster") kind_get_kubeconfig_tool(name="my-cluster", internal=True)
Export Logs
kind_export_logs_tool(name="my-cluster") kind_export_logs_tool(name="my-cluster", output_dir="/tmp/kind-logs")
Cluster Lifecycle
Create Cluster
kind_create_cluster_tool() kind_create_cluster_tool(name="dev-cluster") kind_create_cluster_tool( name="v129-cluster", image="kindest/node:v1.29.0" ) kind_create_cluster_tool( name="multi-node", config="kind-config.yaml" )
Multi-Node Config Example
Create a file
kind-config.yaml:
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane extraPortMappings: - containerPort: 30000 hostPort: 30000 protocol: TCP - role: worker - role: worker
Delete Cluster
kind_delete_cluster_tool(name="dev-cluster") kind_delete_all_clusters_tool()
Local Registry Integration
Create Registry
kind_registry_create_tool() kind_registry_create_tool(name="my-registry", port=5001)
Connect Cluster to Registry
kind_registry_connect_tool(cluster_name="my-cluster")
Check Registry Status
kind_registry_status_tool()
Registry Workflow
kind_registry_create_tool() config = kind_config_generate_tool(registry=True) kind_create_cluster_tool(name="dev", config="/tmp/kind.yaml") kind_registry_connect_tool(cluster_name="dev")
Image Loading (Key Feature!)
The ability to load local Docker images directly into kind clusters is one of its most powerful features for local development.
Load Docker Images
kind_load_image_tool(images="myapp:latest", name="my-cluster") kind_load_image_tool( images="myapp:latest,mydb:latest,myweb:v1", name="my-cluster" )
Load from Archive
kind_load_image_archive_tool( archive="/path/to/images.tar", name="my-cluster" )
List Images on Cluster
kind_images_list_tool(cluster="my-cluster") kind_images_list_tool(cluster="my-cluster", node="my-cluster-worker")
Node Management
Inspect Node
kind_node_inspect_tool(node="kind-control-plane")
Get Node Logs
kind_node_logs_tool(node="kind-control-plane") kind_node_logs_tool(node="kind-control-plane", tail=200)
Execute Command on Node
kind_node_exec_tool( node="kind-control-plane", command="crictl images" ) kind_node_exec_tool( node="kind-control-plane", command="journalctl -u kubelet --no-pager -n 50" )
Restart Node
kind_node_restart_tool(node="kind-worker")
Networking
Inspect Network
kind_network_inspect_tool()
List Port Mappings
kind_port_mappings_tool(cluster="my-cluster")
Setup Ingress
kind_ingress_setup_tool(cluster="my-cluster") kind_ingress_setup_tool(cluster="my-cluster", ingress_type="contour")
Advanced: Build Node Image
Build custom node images from Kubernetes source:
kind_build_node_image_tool() kind_build_node_image_tool( image="my-custom-node:v1.30.0", kube_root="/path/to/kubernetes" )
Update Kubeconfig
kind_set_kubeconfig_tool(name="my-cluster")
Development Workflow
Quick Local Development
kind_create_cluster_tool(name="dev") kind_load_image_tool(images="myapp:dev", name="dev") kubectl_apply(manifest=""" apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: replicas: 1 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myapp:dev imagePullPolicy: Never """)
Development with Local Registry
kind_registry_create_tool() config = kind_config_generate_tool(workers=1, ingress=True, registry=True) kind_create_cluster_tool(name="dev", config="/tmp/kind-config.yaml") kind_registry_connect_tool(cluster_name="dev") kind_ingress_setup_tool(cluster="dev")
CI/CD Testing
kind_create_cluster_tool( name="ci-test", image="kindest/node:v1.29.0", wait="3m" ) kind_load_image_tool(images="test-image:ci", name="ci-test") kind_delete_cluster_tool(name="ci-test")
Version Testing
kind_create_cluster_tool(name="v128", image="kindest/node:v1.28.0") kind_create_cluster_tool(name="v129", image="kindest/node:v1.29.0") kind_create_cluster_tool(name="v130", image="kindest/node:v1.30.0") kind_list_clusters_tool()
Troubleshooting
Cluster Creation Issues
kind_create_cluster_tool(name="debug", retain=True) kind_export_logs_tool(name="debug") kind_get_nodes_tool(name="debug")
Cluster Health Check
kind_cluster_status_tool(name="my-cluster")
Node Issues
kind_node_inspect_tool(node="kind-control-plane") kind_node_logs_tool(node="kind-control-plane") kind_node_exec_tool( node="kind-control-plane", command="crictl ps" ) kind_node_restart_tool(node="kind-worker")
Network Issues
kind_network_inspect_tool() kind_port_mappings_tool()
Cleanup
kind_delete_cluster_tool(name="broken-cluster") kind_delete_all_clusters_tool()
CLI Installation
Install kind CLI:
# macOS (Apple Silicon) curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-darwin-arm64 chmod +x ./kind sudo mv ./kind /usr/local/bin/kind # macOS (Intel) curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-darwin-amd64 chmod +x ./kind sudo mv ./kind /usr/local/bin/kind # Linux curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64 chmod +x ./kind sudo mv ./kind /usr/local/bin/kind # Verify kind version
Tool Reference
Read-Only Tools (20)
| Tool | Description |
|---|---|
| Detect CLI installation |
| Get CLI version |
| List all clusters |
| List nodes in cluster |
| Get kubeconfig |
| Export cluster logs |
| Get cluster info |
| Get node labels |
| Validate config file |
| Generate config YAML |
| Show running config |
| List K8s versions |
| Check registry status |
| Get node logs |
| Inspect node details |
| Inspect Docker network |
| List port mappings |
| Get cluster health |
| List images on nodes |
| Get provider info |
Write Tools (12)
| Tool | Description |
|---|---|
| Create cluster |
| Delete cluster |
| Delete all clusters |
| Load Docker images |
| Load from archive |
| Build node image |
| Set kubeconfig context |
| Create local registry |
| Connect to registry |
| Execute on node |
| Restart node |
| Setup ingress |
kind vs vind (vCluster)
| Feature | kind | vind (vCluster) |
|---|---|---|
| Purpose | Local dev/CI clusters | Virtual clusters in existing K8s |
| Isolation | Full clusters in Docker | Virtual namespaces with isolation |
| Resource Usage | Higher (full cluster) | Lower (shares host cluster) |
| Best For | Local testing, CI/CD | Multi-tenancy, dev environments |
| Requires | Docker | Existing K8s cluster |
Related Skills
- k8s-vind - vCluster management
- k8s-multicluster - Multi-cluster management
- k8s-helm - Helm chart operations
- k8s-operations - kubectl operations