Cada servicio de Midaz puede exponerse de forma independiente vía ingress. El bloque de ingress es idéntico entre servicios (Ledger, Onboarding, Transaction, CRM, Grafana) — configúralo bajo la sección .ingress de cada servicio en values.yaml.Para usar ingress, necesitas un controlador ingress ejecutándose en tu clúster (por ejemplo, NGINX, AWS ALB o Traefik) y entradas DNS apuntando a él.
Puedes habilitar ingress por servicio en tu archivo values.yaml y configurar nombres de host, secretos TLS y cualquier anotación específica del controlador.
Integración con cert-manager: Si usas cert-manager para TLS automático, agrega la anotación cert-manager.io/cluster-issuer: <issuer-name> y configura tls.secretName — cert-manager provisionará el certificado automáticamente.
Las siguientes secciones proporcionan ejemplos de configuración para los controladores ingress más comunes.
Para usar el Controlador Ingress NGINX, configura el values.yaml de la siguiente manera:
ingress: enabled: true className: "nginx" # El campo `annotations` se usa para agregar metadatos personalizados al recurso Nginx. # Las anotaciones son pares clave-valor que se pueden usar para adjuntar metadatos arbitrarios no identificativos a objetos. # Estas anotaciones pueden ser utilizadas por varias herramientas y bibliotecas para aumentar el comportamiento del recurso Nginx. # Ver más https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md annotations: {} hosts: - host: midaz.example.com paths: - path: / pathType: Prefix tls: - secretName: midaz-tls # Asegúrate de que este secreto exista o sea gestionado por cert-manager hosts: - midaz.example.com
Consulta la documentación oficial de ingress-nginx para una referencia completa sobre las anotaciones de Nginx.
Para el Controlador Ingress AWS ALB, configura el values.yaml de la siguiente manera:
ingress: enabled: true className: "alb" annotations: alb.ingress.kubernetes.io/scheme: internal # Usa "internet-facing" para ALB público alb.ingress.kubernetes.io/target-type: ip # Usa "instance" si apuntas a instancias EC2 alb.ingress.kubernetes.io/group.name: "midaz" # Agrupa recursos ALB bajo este nombre alb.ingress.kubernetes.io/healthcheck-path: "/healthz" # Ruta de verificación de salud alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]' # Escucha en HTTP y HTTPS hosts: - host: midaz.example.com paths: - path: / pathType: Prefix tls: [] # TLS es gestionado por el ALB usando certificados ACM
Para Traefik, configura el values.yaml de la siguiente manera:
ingress: enabled: true className: "traefik" annotations: traefik.ingress.kubernetes.io/router.entrypoints: "web, websecure" # Puntos de entrada definidos en Traefik traefik.ingress.kubernetes.io/router.tls: "true" # Habilita TLS para esta ruta hosts: - host: midaz.example.com paths: - path: / pathType: Prefix tls: - secretName: midaz-tls # Asegúrate de que este secreto exista y contenga el certificado TLS hosts: - midaz.example.com