87 lines
3.0 KiB
Markdown
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`.
|