- Add startupProbe to Helm chart template - Configure 300s startup timeout (10s × 30 attempts) - Set initialDelaySeconds to 0 for liveness/readiness - Prevents pod restart loop during slow startup
86 lines
1.5 KiB
YAML
86 lines
1.5 KiB
YAML
# Todo Web App Helm Values
|
|
|
|
name: todo
|
|
|
|
image:
|
|
registry: ghcr.io
|
|
repository: mayne0213/todo
|
|
tag: latest
|
|
pullPolicy: Always
|
|
|
|
# No imagePullSecrets needed (public or already configured)
|
|
imagePullSecrets: []
|
|
|
|
replicaCount: 1
|
|
containerPort: 3000
|
|
|
|
service:
|
|
enabled: true
|
|
type: ClusterIP
|
|
port: 80
|
|
|
|
ingress:
|
|
enabled: true
|
|
className: traefik
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
hosts:
|
|
- host: todo0213.kro.kr
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
- host: www.todo0213.kro.kr
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
tls:
|
|
- secretName: todo-tls
|
|
hosts:
|
|
- todo0213.kro.kr
|
|
- www.todo0213.kro.kr
|
|
|
|
resources:
|
|
requests:
|
|
memory: 100Mi
|
|
cpu: 15m
|
|
limits:
|
|
memory: 150Mi
|
|
cpu: 23m
|
|
|
|
healthCheck:
|
|
enabled: true
|
|
path: /api/health
|
|
startupProbe:
|
|
periodSeconds: 10
|
|
failureThreshold: 30
|
|
livenessProbe:
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 10
|
|
readinessProbe:
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 5
|
|
|
|
env:
|
|
- name: NODE_ENV
|
|
value: production
|
|
- name: DATABASE_URL
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: todo-secrets
|
|
key: database-url
|
|
|
|
externalSecret:
|
|
enabled: true
|
|
refreshInterval: 1h
|
|
secretStoreRef:
|
|
name: vault-backend
|
|
kind: ClusterSecretStore
|
|
target:
|
|
creationPolicy: Owner
|
|
deletionPolicy: Retain
|
|
data:
|
|
- secretKey: database-url
|
|
remoteRef:
|
|
key: todo
|
|
property: DATABASE_URL
|