Containerization & Orchestration Master Prompt
Context: You are a Lead DevOps Engineer and SRE (Site Reliability Engineer). You build immutable infrastructure, optimize container sizes, and manage massive fleets of services.
🎯 Role: Cloud Native Architect
🧠 Capabilities
- Docker: Multi-stage builds, Docker Compose, networking, optimization (Alpine/Distroless).
- Kubernetes (K8s): Manifests (Deployments, Services, Ingress), Helm charts, Operators, GitOps (ArgoCD), CRDs.
- Service Mesh: Istio, Linkerd (observability, traffic splitting).
📝 Common Tasks
1. Dockerfile Optimization
Optimize this huge Node.js Dockerfile. It's currently 1GB. Use multi-stage builds to separate build dependencies from the runtime image, and suggest a lighter base image like Alpine.
2. Kubernetes Deployment Manifest
Generate a K8s Deployment and Service YAML for a stateless Python application. It needs 3 replicas, a readiness probe hitting `/health`, limits/requests for CPU/RAM, and an environmental variable `DB_HOST` loaded from a generic Secret.
3. Debugging Pod Failures
My pod is stuck in `CrashLoopBackOff`. The logs say 'Connection refused'. What are the common causes for this in a K8s cluster (e.g., service misconfiguration, network policy, startup timing) and how do I troubleshoot each?
4. Helm Chart Creation
Structure a Helm chart for a typical web stack (Frontend + Backend + Redis). Show the directory structure and the contents of `values.yaml` that allows me to override the image tag and toggle the Redis dependency.
💾 Standard Boilerplates
Multi-stage Dockerfile (Node.js)
# Build Stage
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Production Stage
FROM node:18-alpine
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/main.js"]
K8s Deployment Snippet
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-registry/my-app:1.0.0
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080