yapayzekapromptu
Yazılım'ya dön
Yazılım

Kubernetes Deployment için ChatGPT Prompt'u

Optimal modelChatGPT
Zorlukİleri
KategoriYazılım
Varyant3 adet
prompt.txt
# ROL
Sen 8+ yıl üretim ortamı deneyimli bir Kubernetes ve DevOps mühendisisin. Kurumsal ölçekte Kubernetes cluster'ları yönetiyor, yüksek erişilebilirlik, güvenlik sertleştirme ve kaynak optimizasyonu odaklı deployment mimarileri tasarlıyorsun. CNCF en iyi pratiklerine tam hakimsin.

# GÖREV
Verilen uygulama özelliklerini analiz ederek prodüksiyon kalitesinde, eksiksiz ve güvenli bir Kubernetes deployment paketi hazırla. Her kaynağın neden gerekli olduğunu YAML yorumlarıyla kısaca açıkla.

# UYGULAMA BİLGİLERİ
- **Uygulama adı:** {uygulama_adi}
- **Container image:** {container_image} (örn: registry.company.com/myapp:v1.2.0)
- **Uygulama tipi:** {uygulama_tipi} (örn: REST API, gRPC servis, background worker)
- **Dinlediği port:** {port_numarasi}
- **Minimum replika sayısı:** {min_replika}
- **CPU istek / limit:** {cpu_istek} / {cpu_limit} (örn: 250m / 1000m)
- **Bellek istek / limit:** {memory_istek} / {memory_limit} (örn: 256Mi / 1Gi)
- **ConfigMap değişkenleri (hassas olmayanlar):** {env_configmap} (KEY=VALUE, virgülle ayır)
- **Secret değişkenleri (hassas):** {env_secret} (KEY=VALUE, virgülle ayır)
- **Liveness probe endpoint:** {liveness_endpoint} (örn: /health/live)
- **Readiness probe endpoint:** {readiness_endpoint} (örn: /health/ready)
- **Domain adı:** {domain_adi} (örn: api.example.com)
- **Persistent storage gerekli mi?:** {storage_gerekli} (hayır / evet — evet ise {storage_boyutu} Gi)

# ÇIKTI FORMATI
Aşağıdaki sırayla YAML bloklarını üret. Her blok `---` ile başlasın ve amacını açıklayan bir yorum satırı içersin:

## 1. Namespace
Uygulamayı izole eden Namespace. Labels: app.kubernetes.io/name ve app.kubernetes.io/managed-by.

## 2. ConfigMap
Hassas olmayan tüm ortam değişkenlerini içer.

## 3. Secret
Hassas değerleri base64 placeholder ile tut. Altına not ekle: "Gerçek değerler External Secrets Operator, HashiCorp Vault veya AWS Secrets Manager ile inject edilmelidir."

## 4. Deployment
Şu özelliklere sahip tam Deployment YAML:
- **Strateji:** RollingUpdate — maxUnavailable: 0, maxSurge: 1 (sıfır downtime)
- **livenessProbe:** httpGet, initialDelaySeconds: 30, periodSeconds: 10, failureThreshold: 3
- **readinessProbe:** httpGet, initialDelaySeconds: 10, periodSeconds: 5
- **resources:** requests ve limits (verilen değerleri kullan)
- **terminationGracePeriodSeconds:** 30 (graceful shutdown)
- **podAntiAffinity:** aynı node'da 2+ pod çalışmasını engelle (preferredDuringScheduling)
- **container securityContext:** runAsNonRoot: true, runAsUser: 1000, readOnlyRootFilesystem: true, allowPrivilegeEscalation: false, capabilities.drop: ["ALL"]
- **envFrom:** ConfigMap ve Secret referansları
- **/tmp için emptyDir volume** (readOnlyRootFilesystem zorunlu kılar)

## 5. HorizontalPodAutoscaler (HPA)
- minReplicas: {min_replika}, maxReplicas: {min_replika} × 4
- CPU targetAverageUtilization: 70
- Memory targetAverageValue: {memory_limit} × 0.8

## 6. Service
ClusterIP tipinde Service. Ingress üzerinden erişim sağlanacak.

## 7. Ingress
- Annotation: kubernetes.io/ingress.class: nginx
- cert-manager.io/cluster-issuer: letsencrypt-prod
- TLS terminasyonu, ssl-redirect: true
- Host: {domain_adi}

## 8. PodDisruptionBudget
minAvailable: "50%" — node bakımı ve rolling update sırasında minimum pod garantisi.

## 9. NetworkPolicy
Yalnızca kube-system namespace'indeki ingress-nginx pod'larından gelen trafiğe izin ver; tüm diğer ingress trafiğini reddet.

## 10. Prodüksiyon Kontrol Listesi
YAML paketini ürettikten sonra aşağıdaki tabloyu doldur:

| Kontrol | Durum | Not |
|---------|-------|-----|
| Image tag :latest kullanılmıyor | ✅/❌ | |
| Resource limit tanımlı | ✅/❌ | |
| liveness + readiness probe var | ✅/❌ | |
| Non-root user (runAsUser ≠ 0) | ✅/❌ | |
| readOnlyRootFilesystem: true | ✅/❌ | |
| Secret değerleri hardcode değil | ✅/❌ | |
| HPA tanımlı | ✅/❌ | |
| PDB tanımlı (minAvailable ≥ %50) | ✅/❌ | |
| NetworkPolicy var | ✅/❌ | |
| app.kubernetes.io/* etiketler mevcut | ✅/❌ | |

# KISITLAR
- Kubernetes 1.28+ API versiyonları: networking.k8s.io/v1, autoscaling/v2, policy/v1
- Her kaynakta labels bölümünde app.kubernetes.io/name, app.kubernetes.io/version, app.kubernetes.io/component, app.kubernetes.io/managed-by etiketleri ekle
- Hassas değerleri ASLA hardcode etme; placeholder kullan
- CPU değerleri millicore (m), bellek Mi veya Gi cinsinden olsun
- Üretilen her YAML bloğu kopyala-yapıştır ile uygulanabilir olmalı

Bu ne işe yarar?

Uygulama özelliklerini verince güvenli ve ölçeklenebilir Kubernetes YAML paketi üretir. Rolling update, HPA, securityContext ve NetworkPolicy dahil.

İlgili Promptlar