# SatuSehat K3s - Kustomize + Env Tanpa Secret Template ini dibuat dari paket `service-satusehat-main.zip` dan `worker-satusehat-main.zip`, dengan pola yang mengikuti referensi QRIS dan SiLARAS: - `base/` berisi manifest generik. - `overlays/prod/` berisi konfigurasi production. - Environment dimasukkan melalui `configMapGenerator` dari file `.env.*.prod`. - Tidak ada resource Kubernetes `Secret`. - Service API dibuka lewat Traefik `IngressRoute`. - Worker dibuat internal-only, tanpa ingress. - Redis disediakan di dalam namespace yang sama karena aplikasi membaca `CACHE_REDIS_HOST` dan `REDIS_PASSWORD`. ## Struktur ```text satusehat-k3s/ ├── base/ │ ├── satusehat-service-deployment.yaml │ ├── satusehat-service-service.yaml │ ├── satusehat-service-resources.yaml │ ├── satusehat-service-probes.yaml │ ├── satusehat-worker-deployment.yaml │ ├── satusehat-worker-service.yaml │ ├── satusehat-worker-resources.yaml │ ├── satusehat-worker-probes.yaml │ ├── redis-deployment.yaml │ ├── redis-service.yaml │ ├── redis-pvc.yaml │ └── kustomization.yaml ├── overlays/ │ └── prod/ │ ├── .env.service.prod │ ├── .env.worker.prod │ ├── .env.redis.prod │ ├── ingress-route.yaml │ ├── certificate.yaml │ ├── hpa-service.yaml │ ├── hpa-worker.yaml │ └── kustomization.yaml ├── fleet.yaml └── kustomization.yaml ``` ## Deploy ```bash kubectl apply -k overlays/prod ``` Atau dari root repo: ```bash kubectl apply -k . ``` ## Cek hasil deploy ```bash kubectl get pods -n rssa-apps-prod -l app.kubernetes.io/part-of=satusehat kubectl get svc -n rssa-apps-prod | grep satusehat kubectl logs -n rssa-apps-prod deploy/satusehat-service-prod -f kubectl logs -n rssa-apps-prod deploy/satusehat-worker-prod -f ``` ## Endpoint internal Service API dari worker diarahkan ke: ```text http://satusehat-service-prod/api/v1/ ``` Nilai ini ada di: ```text overlays/prod/.env.worker.prod ``` ## Catatan penting 1. File `.env.service.prod` dan `.env.worker.prod` sudah dibersihkan agar valid untuk `configMapGenerator`. Baris komentar gaya `//` dan baris bebas seperti `untuk vclaim` tidak boleh dipakai di env Kustomize. 2. Worker Dockerfile yang baru mengekspos `8080`. Karena itu manifest worker memakai `SERVER_REST_PORT=8080` dan probe ke port `8080`. 3. Service utama tetap memakai port REST `8196` dan gRPC `8197`, mengikuti `.env.prod` service. 4. Jika registry `git.rssa.top/stim/...` memakai private auth, karena template ini sengaja tanpa Secret, pastikan node K3s sudah bisa pull image dari registry tersebut melalui konfigurasi containerd/node-level login. 5. Jika domain bukan `satusehat-service.rssa.id`, ubah `ingress-route.yaml`, `certificate.yaml`, dan `SWAGGER_HOST`. 6. Jika storage class `nas-rx300` tidak tersedia, ubah `base/redis-pvc.yaml` atau ganti volume Redis menjadi `emptyDir`.