Antes de empezar
Confirma que tienes estos elementos:
- Un clúster de Kubernetes y Helm.
- Una base de datos PostgreSQL para el Courier.
- La dirección de tu Access Manager.
- Tu clave de licencia de Lerian y el ID de la organización.
- La configuración del canal SPB que JD le dio a tu institución.
Los cuatro roles
Un binario contiene los cuatro roles. La variable
COURIER_ROLES selecciona los roles de un proceso. No tiene valor predeterminado: un proceso sin ella no arranca. El chart la define para cada despliegue, y rechaza un valor en config.
Ejecuta
spb-consumer como exactamente una réplica. Una lectura de la cola de JD elimina el mensaje, así que el consumidor es un escritor único. El chart se niega a renderizar más de una réplica. Un proceso que combina spb-consumer con otro rol se detiene en el arranque con el código JDC-0314.
Puertos
El chart deriva las dos variables de
ports.http y ports.soap. Cada rol responde a las sondas en el puerto HTTP: /health para liveness, /readyz para readiness y /version para el build.
Instalar con Helm
El chart es
oci://ghcr.io/lerianstudio/br-jd-courier-helm. Lee sus versiones antes de fijar una:
-
Crea el Secret que lee cada rol. El chart no lo crea.
Pon
LICENSE_KEY,POSTGRES_PASSWORD,DATABASE_URLy, en el modo single-tenant,JD_PASSWORDen un Secret de Kubernetes que tú creas. El chart rechaza estas claves en sus valores deconfig. -
Escribe tu archivo de valores. Pon las variables que no son secretas en
config. El chart las pone en un ConfigMap que lee cada rol. -
Instala el chart:
Variables de entorno
Esta sección lista las variables del Courier. Para las variables de almacenamiento de datos, multi-tenancy, telemetría y autenticación que comparte cada servicio de Lerian, consulta Aspectos esenciales de la configuración de BYOC.
En las tablas siguientes, la columna Predeterminado / Obligatorio muestra el valor predeterminado. Obligatorio marca las variables que debes definir.
— significa sin valor predeterminado. 🔒 marca un secreto.Servicio
Canal SPB de JD
Los dos roles SPB leen estas variables.JD_LEGACY_CODE, JD_USER_CODE y JD_PASSWORD son las credenciales JD que ya tienes (hasta 10, 10 y 20 caracteres). En producción, usa https para JD_BASE_URL.
Interfaz SOAP
El rolspb-sender lee estas variables.
En producción, dale a
spb-sender un certificado y una clave TLS (SOAP_TLS_CERT_FILE, SOAP_TLS_KEY_FILE), o define SOAP_TLS_TERMINATED_UPSTREAM cuando TLS termina antes del Courier. La versión mínima de TLS es 1.2.
Pix
PIX_VENDOR_SUBJECTS lista las identidades de JD que pueden llamar a pix-ingress. El Courier rechaza a todos los otros llamadores, incluidos los motores.
El Courier lee el client ID y el secret de cada motor desde AWS Secrets Manager, en AWS_REGION. Guárdalos allí antes de registrar el motor. Sin acceso a AWS Secrets Manager, el Courier mantiene los mensajes Pix del motor y no los entrega.
Guarda el secret de cada motor en tenants/{ENVIRONMENT_NAME}/{tenantId}/jd-courier/external/pix-engine-{engineId}/credentials/versions/{versionId}. pixDelivery.credentialRef debe apuntar a ese secret. El Courier no entrega al motor cuando la referencia apunta a cualquier otra ruta. El secret es un objeto JSON con los campos clientId y clientSecret. {versionId} es un UUID en minúsculas. En modo single-tenant, {tenantId} es el ID del tenant del canal Pix activo del Courier.
Licencia
Comportamiento de la licencia
El Courier verifica la licencia en el arranque. No reinicies un pod mientras la licencia no sea válida: el pod no arranca hasta que corrijas la licencia. Mientras el proceso se ejecuta, el Courier verifica la licencia de nuevo cada 6 horas. Cuando la licencia queda revocada, el proceso sigue activo:
- La API del operador y la API de los motores responden
503 JDC-0902. - La dirección Pix y la interfaz SOAP responden
503. - El rol
spb-consumerdeja de leer de JD.
/readyz informa el estado de la licencia. Mientras la licencia está revocada, el Courier la verifica de nuevo después de 1 minuto, y el intervalo se duplica hasta 15 minutos. Con la primera respuesta válida, el Courier vuelve a servir sin reinicio.
Modo multi-tenant
El modo multi-tenant permite que un despliegue del Courier atienda a más de un cliente. Lerian Cloud ejecuta el Courier en este modo, y Lerian opera el despliegue. Las otras secciones de esta página describen un despliegue single-tenant.
MULTI_TENANT_ENABLED=true activa el modo. Para las otras variables MULTI_TENANT_*, consulta Aspectos esenciales de la configuración de BYOC y Multi-tenancy.
En modo multi-tenant, la API del operador, la API de los motores y el Pix ingress toman el tenant del token verificado de quien llama. La dirección SOAP toma el tenant de la credencial de canal.
Qué cambia respecto de single-tenant
- El rol
spb-consumersigue ejecutándose como exactamente una réplica. Lee de JD para cada tenant que tiene un canal SPB activo. - El rol
spb-consumerlee la lista de tenants de nuevo cada 30 segundos (SPB_TENANT_REFRESH_SEC). Cuando la base de datos de un tenant no responde, el rol omite ese tenant en esa pasada. Los otros tenants continúan. - La conciliación ejecuta un ciclo para cada tenant y riel.
- El rol
pix-ingressrequiereSYSTEMPLANE_ENABLED=true. Sin ella, el proceso no arranca. - El chart no ejecuta el job de migraciones. Define
migrations.enabled=false: el chart se niega a renderizar el job en este modo. Aplica las migraciones de cada tenant a través de Tenant Manager.
JD_BASE_URL, JD_SOAP_PATH, JD_LEGACY_CODE, JD_USER_CODE y JD_PASSWORD. Lee la dirección JD y la credencial JD de cada tenant desde AWS Secrets Manager.
En modo multi-tenant, el Courier ignora PIX_VENDOR_SUBJECTS. La clave de configuración en tiempo de ejecución jd-courier.pix/vendor_subjects lista las identidades de JD de cada tenant. El Courier responde 503 a todas las llamadas Pix de JD para un tenant sin entrada.
En modo multi-tenant, el Courier no arranca con PLUGIN_AUTH_ENABLED=false. Pon MULTI_TENANT_SERVICE_API_KEY y MULTI_TENANT_REDIS_PASSWORD en el Secret de Kubernetes.
Quién configura qué en Lerian Cloud
- Lerian configura el despliegue: las variables de entorno, la configuración en tiempo de ejecución y las migraciones de cada tenant.
- Tu operador usa la API del operador como en un despliegue single-tenant: los motores, el mapa de titularidad, los modos de entrega, el bypass, los mensajes retenidos y la conciliación.
- Tus motores usan la API de los motores, la interfaz SOAP y la dirección Pix como en un despliegue single-tenant.

