Skip to main content
skill CX Codex

kubernetes-deploying — Claude Code skill: install

This skill guides Kubernetes deployments with Deployments, Services, Ingress, configuration, secrets, health probes, and scaling.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add spencerpauly/awesome-cursor-skills --skill kubernetes-deploying -a claude-code
Open on GitHub

What kubernetes-deploying does

The skill lays out Kubernetes manifests for Deployments, Services, Ingress, ConfigMaps, and Secrets. Its examples cover container resources, environment variables, HTTP liveness and readiness probes, and reading a database URL from a Secret.

It also collects kubectl commands for applying files, checking rollout progress, viewing pods and logs, entering a pod, scaling, undoing a rollout, and forwarding a service port locally. The deployment section compares Rolling update, Recreate, Blue/green, and Canary, then shows a Horizontal Pod Autoscaler.

Do not commit plaintext secrets to Git. The skill points to Sealed Secrets, SOPS, or external secret managers for that case.

What it helps with

  • build Deployment and Service manifests
  • route traffic through a TLS Ingress
  • add liveness and readiness probes
  • scale a Deployment manually or with an HPA
  • undo a failed Kubernetes rollout

Example prompts for the agent

  • Use the kubernetes-deploying skill to prepare manifests for the application in k8s/.
  • Inspect the my-app Deployment, its pods, and its logs with kubectl.
  • Configure a TLS Ingress, a readiness probe, and horizontal scaling for my-app.

How to install kubernetes-deploying

1Skills CLI (Vercel)

npx skills add spencerpauly/awesome-cursor-skills --skill kubernetes-deploying -a claude-code

2Manually: put the files in place

~/.claude/skills/kubernetes-deploying/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/kubernetes-deploying/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about kubernetes-deploying

How do I install kubernetes-deploying in Claude Code?

Run npx skills add spencerpauly/awesome-cursor-skills --skill kubernetes-deploying -a claude-code, then check ~/.claude/skills/kubernetes-deploying/SKILL.md.

What does kubernetes-deploying do?

It guides the creation and use of Kubernetes configurations for Deployments, Services, Ingresses, ConfigMaps, and Secrets. It also covers health checks, scaling, rollout strategies, and kubectl operations.

What is the difference between livenessProbe and readinessProbe?

A failed livenessProbe causes the pod to restart. A failed readinessProbe removes the pod from service until it can receive traffic.

Source text

SKILL.md · CC0-1.0
---
name: kubernetes-deploying
description: Deploy applications to Kubernetes — Deployments, Services, Ingress, ConfigMaps, Secrets, health checks, and scaling.
user-invocable: true
---

# Kubernetes Deploying

Deploy and manage applications on Kubernetes.

## Core Resources

### Deployment

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  labels:
    app: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-registry/my-app:v1.2.3
          ports:
            - containerPort: 3000
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 512Mi
          livenessProbe:
            httpGet:
              path: /healthz
              port: 3000
            initialDelaySeconds: 10
            periodSeconds: 30
          readinessProbe:
            httpGet:
              path: /ready
              port: 3000
            initialDelaySeconds: 5
            periodSeconds: 10
          env:
            - name: DATABASE_URL
              valueFrom:
                secretKeyRef:
                  name: my-app-secrets
                  key: database-url
            - name: NODE_ENV
              value: production
```

### Service

```yaml
apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
  ports:
    - port: 80
      targetPort: 3000
  type: ClusterIP
```

### Ingress

```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-app
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
  tls:
    - hosts:
        - app.example.com
      secretName: my-app-tls
  rules:
    - host: app.example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-app
                port:
                  number: 80
```

### ConfigMap & Secret

```yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-app-config
data:
  LOG_LEVEL: info
  FEATURE_FLAGS: '{"darkMode": true}'
---
apiVersion: v1
kind: Secret
metadata:
  name: my-app-secrets
type: Opaque
stringData:
  database-url: postgresql://user:pass@host:5432/db
  api-key: sk-abc123
```

## Common Commands

```bash
# Apply manifests
kubectl apply -f k8s/

# Check deployment status
kubectl rollout status deployment/my-app

# View pods
kubectl get pods -l app=my-app

# View logs
kubectl logs -f deployment/my-app

# Execute into a pod
kubectl exec -it <pod-name> -- /bin/sh

# Scale
kubectl scale deployment/my-app --replicas=5

# Rollback
kubectl rollout undo deployment/my-app

# Port forward for local debugging
kubectl port-forward svc/my-app 3000:80
```

## Deployment Strategies

| Strategy | How | When |
|----------|-----|------|
| Rolling update (default) | Replace pods one at a time | Most deployments |
| Recreate | Kill all old pods, start new ones | When you can't run two versions simultaneously |
| Blue/green | Run two full environments, switch traffic | Need instant rollback |
| Canary | Route small % of traffic to new version | High-risk changes |

Rolling update config:
```yaml
spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
```

## Health Checks

Always set both:
- **livenessProbe**: "Is the process healthy?" — restarts the pod if it fails
- **readinessProbe**: "Can it handle traffic?" — removes from service if it fails

Common probe types:
- `httpGet`: Hit an HTTP endpoint (most common)
- `exec`: Run a command in the container
- `tcpSocket`: Check if a port is open

## Horizontal Pod Autoscaler

```yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70
```

## Tips

- Always set resource requests and limits
- Use namespaces to isolate environments (`dev`, `staging`, `prod`)
- Never put secrets in plaintext YAML committed to git — use Sealed Secrets, SOPS, or external secret managers
- Tag images with specific versions, never use `:latest` in production
- Set `PodDisruptionBudget` for high-availability workloads

© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills

Similar skills

All skills for DevOps and infrastructure →

From the same set64

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor