operating-k8s-local
Operates local Kubernetes clusters with Minikube for development and testing. Use when setting up local K8s, deploying applications locally, or debugging K8s issues. Covers Minikube, kubectl essentials, local image loading, and networking.
Best use case
operating-k8s-local is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Operates local Kubernetes clusters with Minikube for development and testing. Use when setting up local K8s, deploying applications locally, or debugging K8s issues. Covers Minikube, kubectl essentials, local image loading, and networking.
Teams using operating-k8s-local should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/operating-k8s-local/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How operating-k8s-local Compares
| Feature / Agent | operating-k8s-local | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Operates local Kubernetes clusters with Minikube for development and testing. Use when setting up local K8s, deploying applications locally, or debugging K8s issues. Covers Minikube, kubectl essentials, local image loading, and networking.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Operating K8s Local
## Quick Start
```bash
# Start cluster with resources
minikube start --memory=8192 --cpus=4
# Enable essential addons
minikube addons enable ingress
minikube addons enable metrics-server
# Point Docker to Minikube
eval $(minikube docker-env)
# Build and deploy
docker build -t myapp:local .
kubectl apply -f k8s/
```
## Minikube Essentials
### Cluster Management
```bash
minikube start # Start with defaults
minikube start --memory=8192 --cpus=4 # With resources
minikube start --driver=docker # Specific driver
minikube status # Check status
minikube stop # Stop (preserves state)
minikube delete # Delete completely
```
### Multiple Clusters
```bash
minikube start -p my-cluster # Named cluster
minikube profile my-cluster # Switch clusters
minikube profile list # List all
```
### Addons
```bash
minikube addons list # List available
minikube addons enable ingress # REQUIRED for external access
minikube addons enable metrics-server # For kubectl top
minikube addons enable dashboard # Web UI
minikube addons enable storage-provisioner # For PVCs
```
### Accessing Services
```bash
# Method 1: NodePort
minikube service my-service --url
# Method 2: LoadBalancer (requires tunnel)
minikube tunnel # Run in separate terminal
# Method 3: Port forward
kubectl port-forward svc/my-service 8080:80
```
### Using Local Docker Images
```bash
# Point to Minikube's Docker
eval $(minikube docker-env)
# Build directly into Minikube
docker build -t my-app:local .
# Use imagePullPolicy: Never in manifests
# Reset to local Docker
eval $(minikube docker-env -u)
```
## kubectl Essentials
### Context Management
```bash
kubectl config current-context # Current context
kubectl config get-contexts # List all
kubectl config use-context minikube # Switch
kubectl config set-context --current --namespace=my-ns # Set default ns
```
### Getting Information
```bash
kubectl get pods # Current namespace
kubectl get pods -A # All namespaces
kubectl get pods -o wide # With node/IP
kubectl get all # All resources
kubectl describe pod my-pod # Detailed info
kubectl get events --sort-by='.lastTimestamp' # Recent events
```
### Logs
```bash
kubectl logs my-pod # Current logs
kubectl logs my-pod -f # Follow
kubectl logs my-pod -c container # Specific container
kubectl logs my-pod --previous # After crash
kubectl logs my-pod --tail=50 # Last 50 lines
```
### Creating Resources
```bash
kubectl apply -f manifest.yaml
kubectl create deployment nginx --image=nginx
kubectl create configmap my-config --from-literal=key=value
kubectl create secret generic my-secret --from-literal=password=secret
# Generate YAML
kubectl create deployment nginx --image=nginx --dry-run=client -o yaml
```
### Modifying Resources
```bash
kubectl edit deployment my-deploy
kubectl scale deployment my-deploy --replicas=3
kubectl set image deployment/my-deploy container=image:v2
kubectl rollout restart deployment/my-deploy
```
### Debugging
```bash
kubectl exec -it my-pod -- /bin/sh # Shell into pod
kubectl exec my-pod -- env # Run command
kubectl port-forward pod/my-pod 8080:80 # Forward port
kubectl top pods # Resource usage
kubectl top nodes
```
## Resource Manifests
### Deployment
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deploy
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: main
image: my-app:local
imagePullPolicy: Never # For local images
ports:
- containerPort: 8000
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 5
```
### Service
```yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
type: ClusterIP # or NodePort, LoadBalancer
selector:
app: my-app
ports:
- port: 80
targetPort: 8000
```
### ConfigMap & Secret
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
DATABASE_HOST: postgres
DATABASE_PORT: "5432"
---
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
stringData:
password: mysecretpassword
```
### Ingress
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
ingressClassName: nginx
rules:
- host: myapp.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
```
## Local Development Workflow
```bash
# 1. Start Minikube
minikube start --memory=8192 --cpus=4
# 2. Enable addons
minikube addons enable ingress
minikube addons enable metrics-server
# 3. Point to Minikube Docker
eval $(minikube docker-env)
# 4. Build images
docker build -t myapp/api:local ./api
docker build -t myapp/web:local ./web
# 5. Deploy
kubectl apply -f k8s/
# 6. Access
minikube service myapp-web --url
# Or with ingress:
echo "$(minikube ip) myapp.local" | sudo tee -a /etc/hosts
```
## Debugging Quick Reference
```bash
# Pod not starting?
kubectl describe pod my-pod # Check Events section
# Container crashing?
kubectl logs my-pod --previous # Logs from crashed container
# Network issues?
kubectl exec -it my-pod -- nslookup my-service
kubectl exec -it my-pod -- wget -qO- http://my-service:80
# Resource issues?
kubectl top pods
kubectl top nodes
```
## Verification
Run: `python scripts/verify.py`
## Related Skills
- `containerizing-applications` - Docker and Helm charts
- `deploying-cloud-k8s` - Cloud Kubernetes deploymentRelated Skills
exa-local-dev-loop
Configure Exa local development with hot reload, testing, and mock responses. Use when setting up a development environment, writing tests against Exa, or establishing a fast iteration cycle. Trigger with phrases like "exa dev setup", "exa local development", "exa test setup", "develop with exa", "mock exa".
evernote-local-dev-loop
Set up efficient local development workflow for Evernote integrations. Use when configuring dev environment, setting up sandbox testing, or optimizing development iteration speed. Trigger with phrases like "evernote dev setup", "evernote local development", "evernote sandbox", "test evernote locally".
elevenlabs-local-dev-loop
Configure local ElevenLabs development with mocking, hot reload, and audio testing. Use when setting up a dev environment for TTS/voice projects, configuring test workflows, or building a fast iteration cycle with ElevenLabs audio. Trigger: "elevenlabs dev setup", "elevenlabs local development", "elevenlabs dev environment", "develop with elevenlabs", "test elevenlabs locally".
documenso-local-dev-loop
Set up local development environment and testing workflow for Documenso. Use when configuring dev environment, setting up test workflows, or establishing rapid iteration patterns with Documenso. Trigger with phrases like "documenso local dev", "documenso development", "test documenso locally", "documenso dev environment".
deepgram-local-dev-loop
Configure Deepgram local development workflow with testing and mocks. Use when setting up development environment, configuring test fixtures, or establishing rapid iteration patterns for Deepgram integration. Trigger: "deepgram local dev", "deepgram development setup", "deepgram test environment", "deepgram dev workflow", "deepgram mock".
databricks-local-dev-loop
Configure Databricks local development with Databricks Connect, Asset Bundles, and IDE. Use when setting up a local dev environment, configuring test workflows, or establishing a fast iteration cycle with Databricks. Trigger with phrases like "databricks dev setup", "databricks local", "databricks IDE", "develop with databricks", "databricks connect".
customerio-local-dev-loop
Configure Customer.io local development workflow. Use when setting up local testing, dev/staging isolation, or mocking Customer.io for unit tests. Trigger: "customer.io local dev", "test customer.io locally", "customer.io dev environment", "customer.io sandbox", "mock customer.io".
cursor-local-dev-loop
Optimize daily development workflow with Cursor IDE using Chat, Composer, Tab, and Git integration. Triggers on "cursor workflow", "cursor development loop", "cursor productivity", "cursor daily workflow", "cursor dev flow".
coreweave-local-dev-loop
Set up local development workflow for CoreWeave GPU deployments. Use when building containers locally, testing YAML manifests, or iterating on model serving configurations before deploying. Trigger with phrases like "coreweave dev setup", "coreweave local testing", "develop for coreweave", "coreweave container build".
cohere-local-dev-loop
Configure Cohere local development with mocking, testing, and hot reload. Use when setting up a development environment, configuring test workflows, or establishing a fast iteration cycle with Cohere API v2. Trigger with phrases like "cohere dev setup", "cohere local development", "cohere dev environment", "develop with cohere", "mock cohere".
coderabbit-local-dev-loop
Configure CodeRabbit CLI for local pre-commit code reviews and fast iteration. Use when setting up local development with CodeRabbit CLI reviews, integrating AI review into your commit workflow, or testing config changes. Trigger with phrases like "coderabbit dev setup", "coderabbit local development", "coderabbit CLI workflow", "coderabbit pre-commit review".
clickup-local-dev-loop
Set up local development for ClickUp API integrations with testing, mocking, and hot reload. Trigger: "clickup dev setup", "clickup local development", "clickup dev environment", "develop with clickup", "clickup testing setup", "mock clickup API".