54 lines
1.6 KiB
YAML
54 lines
1.6 KiB
YAML
# 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
|