K3s SILARAS - Kustomize Dev → Prod
Paket ini sengaja memakai struktur base + overlays/dev + overlays/prod. Tidak ada manifest standalone dan tidak ada shortcut root yang langsung mengarah ke production.
Tujuan alurnya sederhana:
- Ubah konfigurasi/image di
baseatau konfigurasi khusus environment di overlay terkait. - Apply development lebih dulu.
- Periksa Pod, Service, PVC, HPA, Ingress, probe, dan log di development.
- Jika hasil development sudah baik, apply production.
Struktur
.
├── base/
│ ├── deployment.yaml
│ ├── deployment-probes.yaml
│ ├── deployment-resources.yaml
│ ├── deployment-volumes.yaml
│ ├── pvc.yaml
│ ├── service.yaml
│ └── kustomization.yaml
└── overlays/
├── dev/
│ ├── namespace.yaml
│ ├── configmap.yaml
│ ├── hpa.yaml
│ ├── ingress.yaml
│ └── kustomization.yaml
└── prod/
├── namespace.yaml
├── configmap.yaml
├── hpa.yaml
├── ingress.yaml
└── kustomization.yaml
1. Preview hasil development
Sebelum apply, lihat manifest final hasil Kustomize:
kubectl kustomize overlays/dev
Jika ingin menyimpan hasil render untuk diperiksa:
kubectl kustomize overlays/dev > /tmp/silaras-dev-rendered.yaml
2. Apply development
kubectl apply -k overlays/dev
Pantau rollout:
kubectl rollout status deployment/silaras-dev -n rssa-apps-dev
kubectl get deploy,pod,svc,pvc,ingress,hpa -n rssa-apps-dev
Periksa log:
kubectl logs -n rssa-apps-dev deployment/silaras-dev --tail=100
Periksa PVC/HPA jika diperlukan:
kubectl describe pvc silaras-dev -n rssa-apps-dev
kubectl describe hpa silaras-dev -n rssa-apps-dev
Jika development bermasalah, jangan apply production. Perbaiki manifest lalu apply ulang:
kubectl apply -k overlays/dev
3. Preview production
Setelah development lolos:
kubectl kustomize overlays/prod
Opsional simpan render:
kubectl kustomize overlays/prod > /tmp/silaras-prod-rendered.yaml
4. Apply production
kubectl apply -k overlays/prod
Pantau rollout:
kubectl rollout status deployment/silaras-prod -n rssa-apps-prod
kubectl get deploy,pod,svc,pvc,ingress,hpa -n rssa-apps-prod
Periksa log:
kubectl logs -n rssa-apps-prod deployment/silaras-prod --tail=100
Konfigurasi yang dipertahankan
- Tidak memakai Kubernetes Secret untuk environment aplikasi.
- Environment berasal dari ConfigMap melalui
envFrom. - Tidak memakai
imagePullSecrets. - HPA: minimum 1, maksimum 1, target CPU 70%.
- PVC 8Gi,
ReadWriteMany, StorageClassnas-rx300. - PVC di-mount ke
/var/www/html/writable/uploads. - CPU request 100m dan limit 500m.
- Memory request 200Mi dan limit 2Gi.
- Startup/readiness/liveness probe menggunakan HTTP
/loginport 80. imagePullPolicy: IfNotPresent.- Ingress menggunakan class
traefik-internal.
Catatan development
overlays/dev/configmap.yaml masih berisi:
DB_PASS: "CHANGE_ME_DEV_DB_PASSWORD"
Isi dengan password database development yang benar sebelum pengujian aplikasi.
Catatan production
Production hanya perlu diaplikasikan setelah hasil development dianggap baik:
kubectl apply -k overlays/prod
Tidak ada standalone-prod.yaml, kustomization.yaml di root, atau konfigurasi Fleet yang dapat menjadi jalan pintas untuk langsung menerapkan production.