Files
k3s-satusehat/README.md
T
2026-06-24 09:44:24 +07:00

87 lines
3.0 KiB
Markdown

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