Awesome-omni-skill kubernetes-deployer
Package and deploy applications to Kubernetes with Dockerfiles, Helm charts, and local Minikube deployment. Use when containerizing applications, creating Kubernetes manifests, setting up Helm charts, deploying to Minikube, or preparing cloud-ready configurations. Focuses on local-first deployment with stateless services.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/kubernetes-deployer" ~/.claude/skills/diegosouzapw-awesome-omni-skill-kubernetes-deployer-6738ff && rm -rf "$T"
manifest:
skills/devops/kubernetes-deployer/SKILL.mdsource content
Kubernetes Deployer
Deploy applications to Kubernetes with production-ready configurations, starting locally with Minikube.
Deployment Workflow
1. Dockerfile → Containerize application 2. Helm Chart → Package Kubernetes manifests 3. Local Deploy → Test in Minikube 4. Cloud Ready → Configure for production
Quick Start: Local Deployment
1. Create Dockerfile
# Python example (see references for other languages) FROM python:3.11-slim AS builder WORKDIR /build COPY pyproject.toml ./ RUN pip install --no-cache-dir . FROM python:3.11-slim WORKDIR /app RUN useradd -m -u 1000 appuser COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY app ./app USER appuser EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
2. Copy Helm Chart Template
Copy
assets/helm-template/ to charts/<app-name>/ and customize:
cp -r assets/helm-template charts/myapp # Edit Chart.yaml: name, description # Edit values.yaml: image, ports, resources
3. Deploy to Minikube
# Start Minikube minikube start # Build image in Minikube's Docker eval $(minikube docker-env) docker build -t myapp:local . # Deploy with Helm helm upgrade --install myapp ./charts/myapp \ --set image.repository=myapp \ --set image.tag=local \ --set image.pullPolicy=Never # Access service kubectl port-forward svc/myapp 8080:80
Core Principles
- Local-first - Test everything in Minikube before cloud
- Stateless services - No local state; use external databases
- Config via env vars - All configuration through environment
- 12-factor ready - Portable between environments
Helm Chart Structure
charts/<app-name>/ ├── Chart.yaml # Metadata ├── values.yaml # Default config └── templates/ ├── _helpers.tpl # Template functions ├── deployment.yaml ├── service.yaml ├── ingress.yaml # Optional └── hpa.yaml # Optional
Configuration Patterns
Environment Variables
# values.yaml env: - name: DATABASE_URL value: "postgresql://..." - name: LOG_LEVEL value: "info" # From secrets envFrom: - secretRef: name: app-secrets
Create Secret
kubectl create secret generic app-secrets \ --from-literal=DATABASE_PASSWORD=secret123 \ --from-literal=API_KEY=key456
Health Checks
# values.yaml livenessProbe: httpGet: path: /health port: http initialDelaySeconds: 10 readinessProbe: httpGet: path: /health port: http initialDelaySeconds: 5
Common Commands
Minikube
minikube start # Start cluster minikube dashboard # Open dashboard eval $(minikube docker-env) # Use Minikube Docker minikube service myapp --url # Get service URL
Helm
helm lint ./charts/myapp # Validate chart helm template myapp ./charts/myapp # Preview manifests helm upgrade --install myapp ./charts/myapp # Deploy helm uninstall myapp # Remove
Kubectl
kubectl get pods # List pods kubectl logs <pod> # View logs kubectl describe pod <pod> # Debug pod kubectl port-forward svc/myapp 8080:80 # Access locally
Environment-Specific Values
# values-dev.yaml replicaCount: 1 resources: limits: cpu: 200m memory: 256Mi # values-prod.yaml replicaCount: 3 autoscaling: enabled: true minReplicas: 3 maxReplicas: 10
Deploy with environment:
helm upgrade --install myapp ./charts/myapp \ -f values.yaml \ -f values-prod.yaml
Troubleshooting
| Issue | Command |
|---|---|
| Pod not starting | |
| Image not found | |
| Service unreachable | |
| Logs | |
References
- references/dockerfile-patterns.md - Multi-stage builds, language templates, security
- references/helm-charts.md - Chart structure, templates, values configuration
- references/minikube-local.md - Local images, service access, debugging
Assets
- assets/helm-template/ - Ready-to-use Helm chart template