Files
2026-08-10 10:48:06 +07:00

151 lines
3.5 KiB
Markdown

# 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.