# 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: 1. Ubah konfigurasi/image di `base` atau konfigurasi khusus environment di overlay terkait. 2. Apply **development** lebih dulu. 3. Periksa Pod, Service, PVC, HPA, Ingress, probe, dan log di development. 4. Jika hasil development sudah baik, apply **production**. ## Struktur ```text . ├── 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: ```bash kubectl kustomize overlays/dev ``` Jika ingin menyimpan hasil render untuk diperiksa: ```bash kubectl kustomize overlays/dev > /tmp/silaras-dev-rendered.yaml ``` ## 2. Apply development ```bash kubectl apply -k overlays/dev ``` Pantau rollout: ```bash kubectl rollout status deployment/silaras-dev -n rssa-apps-dev kubectl get deploy,pod,svc,pvc,ingress,hpa -n rssa-apps-dev ``` Periksa log: ```bash kubectl logs -n rssa-apps-dev deployment/silaras-dev --tail=100 ``` Periksa PVC/HPA jika diperlukan: ```bash 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: ```bash kubectl apply -k overlays/dev ``` ## 3. Preview production Setelah development lolos: ```bash kubectl kustomize overlays/prod ``` Opsional simpan render: ```bash kubectl kustomize overlays/prod > /tmp/silaras-prod-rendered.yaml ``` ## 4. Apply production ```bash kubectl apply -k overlays/prod ``` Pantau rollout: ```bash kubectl rollout status deployment/silaras-prod -n rssa-apps-prod kubectl get deploy,pod,svc,pvc,ingress,hpa -n rssa-apps-prod ``` Periksa log: ```bash 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`, StorageClass `nas-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 `/login` port 80. - `imagePullPolicy: IfNotPresent`. - Ingress menggunakan class `traefik-internal`. ## Catatan development `overlays/dev/configmap.yaml` masih berisi: ```yaml 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: ```bash 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.