fullnameOverride: umami

image:
  tag: postgresql-latest

# Disable PostgreSQL subchart (using external PostgreSQL)
postgresql:
  enabled: false

# External database configuration
externalDatabase:
  type: postgresql
  hostname: postgresql-rw.postgresql.svc.cluster.local
  port: 5432
  auth:
    database: umami
    username: bluemayne
    # Password is managed via External Secrets Operator (Vault)

# Use existing secret for sensitive data
database:
  existingSecret: umami-password

# Environment variables from secret
envFrom:
  - secretRef:
      name: umami-password

ingress:
  enabled: true
  className: traefik
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
  hosts:
    - host: umami0213.kro.kr
      paths:
        - path: /
          pathType: Prefix
    - host: www.umami0213.kro.kr
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: umami-tls
      hosts:
        - umami0213.kro.kr
        - www.umami0213.kro.kr

service:
  type: ClusterIP
  port: 3000

# Resource settings (no CPU limit for stability)
resources:
  requests:
    cpu: 15m
    memory: 271Mi
  limits:
    memory: 600Mi

replicaCount: 1

# Autoscaling
autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 4
  targetCPUUtilizationPercentage: 80

# Health checks
startupProbe:
  enabled: true
  httpGet:
    path: /api/heartbeat
    port: 3000
  periodSeconds: 10
  failureThreshold: 30

livenessProbe:
  enabled: true
  httpGet:
    path: /api/heartbeat
    port: 3000
  initialDelaySeconds: 0
  periodSeconds: 10

readinessProbe:
  enabled: true
  httpGet:
    path: /api/heartbeat
    port: 3000
  initialDelaySeconds: 0
  periodSeconds: 5

# Affinity - Soft Anti-Affinity to spread pods across nodes
affinity:
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchLabels:
              app.kubernetes.io/name: umami
          topologyKey: kubernetes.io/hostname
