Skip to main content
En BYOC, despliegas el Courier en tu propio clúster de Kubernetes con su chart de Helm. El chart ejecuta una imagen en cuatro roles, un despliegue para cada rol. En Lerian Cloud, Lerian opera el Courier en modo multi-tenant.

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:
  1. Crea el Secret que lee cada rol. El chart no lo crea. Pon LICENSE_KEY, POSTGRES_PASSWORD, DATABASE_URL y, en el modo single-tenant, JD_PASSWORD en un Secret de Kubernetes que tú creas. El chart rechaza estas claves en sus valores de config.
  2. 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.
  3. Instala el chart:
Antes de cada instalación y actualización, el chart ejecuta un job que aplica las migraciones de la base de datos. El Courier no aplica migraciones en el arranque.

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 rol spb-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-consumer deja de leer de JD.
La sonda /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-consumer sigue ejecutándose como exactamente una réplica. Lee de JD para cada tenant que tiene un canal SPB activo.
  • El rol spb-consumer lee 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-ingress requiere SYSTEMPLANE_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.
En modo multi-tenant, el Courier ignora 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.