# Defaults sensatos para tier startup. El CI inyecta tier/tenantId via --set # leyendo valores del TenantProfile correspondiente. replicaCount: 1 image: # Proyecto Harbor dedicado del tenant: `t-` (ADR-019 D-03). repository: registry.coralsafety.com/t-__TENANT_ID_SHORT__/__APP_NAME__ tag: latest pullPolicy: Always pullSecret: harbor-tenant-pull # Identidad del tenant — populated por --set desde el CI tenantId: "" tenantIdNodashes: "" tier: startup goldenPath: web-backend goldenPathLang: python database: # Si enabled=false: no se aplica AddonClaim, no se crea Role/RoleBinding, # ni corre el Job Alembic. El shape web-backend/python es BD-first por # diseño, asi que el default es true. Para una app stateless, el dev # opt-out poniendo database.enabled=false (y alembic.enabled=false). enabled: true # Tipo de add-on solicitado al addon-provisioner. R1 solo soporta mariadb. addonType: mariadb # Nombre del Secret a publicar en el ns `apps` con el connection string. # El Job Alembic y el Deployment lo montan via envFrom. secretName: __APP_NAME__-db-creds # Nombre de la BD logica. Vacio -> addon-provisioner deriva del Release.Name # (snake_case + "_db"). Ver template addonclaim.yaml. databaseName: "" user: permissions: rw # rw | ro # Retain (default) | Delete — ver ADR-052 §6.2. Retain preserva la BD # logica si el claim se borra (recomendado para PoC/free-trial). deletionPolicy: Retain config: logLevel: INFO correlationIdHeader: X-Correlation-ID openapiRequireAuth: false keycloakIssuer: "" staticDemoPath: /app/static/demo resources: requests: cpu: 50m memory: 128Mi limits: cpu: 500m memory: 512Mi probes: liveness: initialDelaySeconds: 20 periodSeconds: 10 readiness: initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 service: type: ClusterIP port: 8000 httpRoute: # HTTPRoute (Gateway API) — el cluster tenant usa Traefik Proxy + Gateway API # (ADR-060 Fase 1). El tráfico entra por Traefik vía el Gateway `tenant-gateway` # del ns apps, creado por stack-deployer por tenant (§3c). enabled: true # Nombre del Gateway al que se adjunta el HTTPRoute (parentRefs). Default fijo # del IDP; no se cambia salvo que el tenant traiga su propio Gateway. gatewayName: tenant-gateway # FQDN canónico (ADR-067 / ADR-082): ..apps.coralware.cloud # Cubierto por el wildcard *.{tenant-uuid}.apps.coralware.cloud y el cert # tenant-wildcard-tls que TERMINA el listener HTTPS del Gateway (no este route). host: __APP_NAME__.__TENANT_ID__.apps.coralware.cloud # NOTA: el TLS (Secret tenant-wildcard-tls), el HTTP->HTTPS redirect y el # body-size ya NO viven en este recurso (ADR-060 D6): el cert lo termina el # listener del Gateway; el redirect y el body-size son config global de # Traefik Proxy (bundle traefik-bootstrap). alembic: enabled: true command: ["alembic", "upgrade", "head"] resources: requests: {cpu: 50m, memory: 128Mi} limits: {cpu: 200m, memory: 256Mi} serviceMonitor: enabled: true interval: 30s port: http networkPolicy: enabled: true addonsNamespace: addons # ADR-054: namespace funcional fijo en cluster tenant # Namespace donde corre el ingress controller del cluster tenant. # ADR-060 Fase 1: el ingress es Traefik Proxy en ns traefik-system # (bundle traefik-bootstrap), reemplaza rke2-ingress-nginx (kube-system). ingressControllerNamespace: traefik-system