--- description: Create Kubernetes deployments and services --- # Kubernetes Deployment Creator Generate production-ready Kubernetes manifests with best practices. ## K8s Resources Generated 1. **Deployment**: Application pods with replicas 2. **Service**: Load balancing and discovery 3. **ConfigMap**: Configuration management 4. **Secret**: Sensitive data storage 5. **Ingress**: External access routing 6. **HPA**: Horizontal pod autoscaling ## Example Deployment (Full Stack App) ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: web-app namespace: production labels: app: web-app version: v1 spec: replicas: 3 selector: matchLabels: app: web-app strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: web-app version: v1 spec: containers: - name: web image: myapp:1.0.0 ports: - containerPort: 8080 name: http env: - name: DATABASE_URL valueFrom: secretKeyRef: name: db-credentials key: url - name: REDIS_HOST valueFrom: configMapKeyRef: name: app-config key: redis-host resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 512Mi livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 volumeMounts: - name: config mountPath: /app/config readOnly: true volumes: - name: config configMap: name: app-config --- apiVersion: v1 kind: Service metadata: name: web-app-service namespace: production spec: type: ClusterIP selector: app: web-app ports: - port: 80 targetPort: 8080 name: http --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: web-app-ingress namespace: production annotations: cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/rate-limit: "100" spec: ingressClassName: nginx tls: - hosts: - app.example.com secretName: app-tls rules: - host: app.example.com http: paths: - path: / pathType: Prefix backend: service: name: web-app-service port: number: 80 --- apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: web-app-hpa namespace: production spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: web-app minReplicas: 3 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80 ``` ## Best Practices Included - Resource requests and limits - Health checks (liveness/readiness) - Rolling update strategy - Horizontal pod autoscaling - ConfigMaps and Secrets - Ingress with TLS - Network policies - Pod disruption budgets ## When Invoked Generate complete Kubernetes manifests for deploying applications with production-grade configurations.