Help us improve
Share bugs, ideas, or general feedback.
From godmode
Guides Kubernetes orchestration: Helm charts, rolling/canary/blue-green deployments, pod health checks, resource limits, scaling, and troubleshooting OOMKilled/CrashLoopBackOff.
npx claudepluginhub arbazkhan971/godmodeHow this skill is triggered — by the user, by Claude, or both
Slash command
/godmode:k8sThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
- User invokes `/godmode:k8s`
Deploys containerized apps to Kubernetes clusters via kubectl manifests for Deployments, Services, ConfigMaps, Secrets, Ingress. Adds health checks, resource limits, rolling updates, Helm charts for EKS, GKE, AKS, Docker Compose migrations.
Creates Kubernetes manifests for deployments, StatefulSets, services, storage; configures RBAC, NetworkPolicies, Helm charts; troubleshoots pods, optimizes resources, and manages GitOps.
Provides Kubernetes deployment manifests, Helm chart structure, HPA configuration, and troubleshooting commands for managing clusters.
Share bugs, ideas, or general feedback.
/godmode:k8s# Gather cluster info
kubectl cluster-info
kubectl get deployments,services,ingresses \
-n <namespace>
helm list -n <namespace>
# Check resource usage
kubectl top pods -n <namespace>
kubectl top nodes
KUBERNETES CONTEXT:
Cluster: <name>, Context: <kubectl context>
Namespace: <target>, Registry: <URL>
Workloads: <N> Deployments, <N> StatefulSets
Services: <N>, Ingresses: <N>
Helm releases: <list>
IF no cluster: generate manifests for local (minikube)
IF no namespace: create with resource quotas
IF no Helm: use raw manifests for simple apps
# Dry-run validation
kubectl apply --dry-run=server -f manifests/
# Lint with kubeval
kubeval manifests/*.yaml --strict
# Security scan
kubesec scan manifests/deployment.yaml
CHART STRUCTURE:
<chart>/
Chart.yaml, values.yaml, values-{env}.yaml
templates/
deployment.yaml, service.yaml, ingress.yaml,
hpa.yaml, pdb.yaml, configmap.yaml, secret.yaml
helm lint <chart-dir>
helm template <release> <chart> -f values-prod.yaml
| Strategy | When to Use | Rollback |
|-------------|------------------------|-----------|
| Rolling | Standard, backward-compat| Automatic|
| Canary | High-risk changes | Auto at % |
| Blue-Green | Need instant rollback | Instant |
ROLLING UPDATE CONFIG:
maxSurge: 25%
maxUnavailable: 0 (zero downtime)
CANARY RAMP:
5% → 20% → 50% → 80% → 100%
Gate: error rate < baseline + 0.5%
Gate: p95 latency < baseline + 10%
THRESHOLDS:
IF error rate > 5% at any stage: auto-rollback
IF p95 latency > 2x baseline: auto-rollback
IF high-risk change: always use canary
RESOURCE SIZING:
| Metric | Recommended |
|-----------|--------------------------|
| CPU req | P95 usage + 20% buffer |
| CPU limit | 2x request (allow burst) |
| Mem req | P95 usage + 20% buffer |
| Mem limit | Peak + GC overhead |
| Pod count | min 2 for HA |
RULES:
Never set CPU limit == request (causes throttling)
Memory limit must accommodate GC overhead
Requests = P95 + 20%, Limits = 2x requests
PROBE CONFIG:
Liveness: detect deadlocked processes
path: /healthz, period: 10s, threshold: 3
Readiness: gate traffic to healthy pods
path: /ready, period: 5s, threshold: 1
Startup: slow-starting containers
period: 5s, failureThreshold: 30 (= 150s max)
HPA:
Min replicas: 2 (HA), Max: based on budget
CPU target: 70%, scale up if exceeded
Scale-down stabilization: 300s (prevent flapping)
# Quick diagnostics
kubectl describe pod <pod> -n <ns>
kubectl logs <pod> -n <ns> --previous
kubectl top pods -n <ns>
kubectl get events -n <ns> --sort-by='.lastTimestamp'
| Symptom | First Check |
|-------------------|--------------------------|
| CrashLoopBackOff | logs --previous, probes |
| OOMKilled | increase memory limit |
| ImagePullBackOff | image name, credentials |
| Pending | resources, affinity |
| Evicted | disk pressure, quotas |
| 502/503 | readiness probe, backend |
helm upgrade --install <release> <chart> \
-f values-<env>.yaml -n <ns> \
--wait --timeout 5m
# Verify
kubectl rollout status deployment/<name> -n <ns>
kubectl get pods -n <ns>
DEPLOYMENT RESULT:
<service> in <namespace>: 3/3 Ready
Health: liveness OK, readiness OK
No error logs in last 60 seconds
Commit: "k8s: <service> — <strategy> (<N> replicas)"
Never ask to continue. Loop autonomously until done.
latest tag. Pin SHA or semver.latest tag — pin SHA or semver.1. kubectl context, cluster-info
2. Manifests: k8s/, manifests/, deploy/
3. Helm: charts/, Chart.yaml, values*.yaml
4. App: Dockerfile, docker-compose.yml
Print: K8s: {resources} resources. Health: {status}. Scaling: {min}-{max}. Verdict: {verdict}.
iteration namespace resources health security status
KEEP if: validation passes AND pods Ready
AND no error logs in 60s
DISCARD if: validation fails OR pods crash
OR readiness probe fails
Rollback: helm rollback or kubectl rollout undo
STOP when ANY of:
- All pods Ready, passing probes
- Deployment strategy configured and tested
- User requests stop
- Rollback triggered (investigate first)