# 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 ingress: enabled: true # className por defecto = nginx (rke2-ingress-nginx pre-instalado en cluster tenant). # Cambiar solo si el tenant trae su propio IngressClass. className: nginx # Host con tenant-id CON guiones (formato canónico Cove): coincide con # los A records que crea cloudflare-provisioner (Gap 5) y el wildcard # cert apps-wildcard-tls (Gap 3). host: __APP_NAME__-__TENANT_ID__.apps.coralware.cloud # Secret TLS provisto por el wildcard *.apps.coralware.cloud sembrado # en el cluster tenant por el agente cloudflare/cert-manager (Gap 3). # NO se renombra por app — todas las apps del tenant lo comparten. tlsSecretName: apps-wildcard-tls # Body size para subidas/uploads de la app — ajustar según necesidad. proxyBodySize: 10m 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. # RKE2 instala rke2-ingress-nginx en kube-system por default. ingressControllerNamespace: kube-system