k3s-log-viewer
Manifest K3s/Kustomize untuk log-viewer, mengikuti struktur k3s-satusehat.
Struktur
base/: Deployment, Service, resource patch, dan probes.overlays/dev/: overlay namespace lama sesuai polak3s-satusehat.overlays/prod/: overlay productionrssa-apps-prod-new.fleet.yaml: konfigurasi Fleet.- root
kustomization.yaml: mengarah ke overlay production.
Source log SIMRS
log-viewer membaca log aplikasi SIMRS dari storage yang sama dengan Deployment simrs-v3:
- NFS server:
nas-rx300.rssa - NFS export:
/export/simrs/logs - Mount di container:
/app/logs
Overlay production tidak menggunakan hostPath. Dengan NFS, pod production tidak terikat ke worker tertentu selama node K3s dapat resolve dan mengakses server NFS.
Overlay dev masih mempertahankan /mnt/simrs-dev/logs dari source docker-compose.yml karena export NFS SIMRS dev belum diberikan. Jangan anggap export dev sama dengan production tanpa mengecek Deployment SIMRS dev.
volumes:
- name: simrs-logs
nfs:
server: nas-rx300.rssa
path: /export/simrs/logs
readOnly: false
Image
Base image:
git.rssa.top/meninjar/log-viewer:latest
Overlay production saat paket ini dibuat menggunakan:
git.rssa.top/meninjar/log-viewer:20260811055659-main
Port
Aplikasi listen pada TCP 5880. Service dan probes menggunakan port yang sama.
Replica
Replica tetap 1. Walaupun NFS bersifat shared, source aplikasi mempunyai operasi terhadap file log sehingga multi-replica/HPA perlu diuji terhadap concurrency sebelum diaktifkan.
Deploy / validate
Jika kubectl memiliki Kustomize builtin:
kubectl kustomize overlays/prod
kubectl apply -k overlays/prod
Cek hasil:
kubectl get pod -n rssa-apps-prod-new -l app=log-viewer -o wide
kubectl describe pod -n rssa-apps-prod-new -l app=log-viewer
kubectl logs -n rssa-apps-prod-new -l app=log-viewer --tail=100
Untuk memastikan NFS dapat diakses dari node tempat pod dijadwalkan, cek event pod. Error seperti mount.nfs, access denied, no route to host, atau DNS failure menunjukkan masalah konektivitas/client NFS di node, bukan aplikasi log-viewer.
Catatan environment
Pola template k3s-satusehat menggunakan configMapGenerator untuk file environment dan pola tersebut dipertahankan. Secara security, credential seperti KEYCLOAK_CLIENT_SECRET lebih tepat dipindahkan ke Kubernetes Secret/secret manager pada iterasi berikutnya.