# Prod overrides. Everything else inherits values.yaml. # Own host + ALB group, separate from the pre-Argo live release still serving # fakhri-k8 from the planpal-helm namespace. Cut DNS over to this later. namespace: planpal-prod image: frontend: tag: latest backend: tag: latest externalSecrets: storeName: prod-aws-planpal secrets: backend-env: planpal/backend-env aws-env: planpal/aws-env seed-env: planpal/seed-env frontend-env: planpal/frontend ingress: host: prod.fakhri-k8.sandbox.devopsinstitute.id certArn: arn:aws:acm:ap-southeast-3:134604498185:certificate/79b1f257-0f66-4b32-96cb-5ea5c12792f6 groupName: planpal-helm # share the one public ALB with argocd + gitea # Prod backend sized to spread across nodes under load and scale wide. # 250m request => ~7 pods/node (1930m allocatable); max 12 => uses all 4 nodes. apps: backend: command: [planpal-server] image: backend envFrom: [backend-env, aws-env] ports: - { name: http, containerPort: 8088 } - { name: metrics, containerPort: 9090 } service: port: 8088 targetPort: 8088 probePath: /api/v1/health probePort: 8088 # 100m request keeps idle reservation low; 500m limit gives burst headroom. # Load test showed ~0.23 millicores/req, so this bursts to thousands of req/s. resources: requests: { cpu: 100m, memory: 96Mi } limits: { cpu: 500m, memory: 256Mi } hpa: { min: 2, max: 8, cpu: 60 } pdb: { maxUnavailable: 1 } seedJob: enabled: true # Scrape prod app metrics into Prometheus + ship the Grafana dashboard. monitoring: enabled: true