Saltar para o conteúdo principal
Versão 3.0.0

Gateway API

A Kubernetes Gateway API é uma alternativa ao Ingress para expor os componentes do TDP externamente. Os charts TDP suportam os dois modelos; a escolha depende do que está instalado no cluster.

Consulte Pré-requisitos — Ingress e Gateway API para entender quando usar cada abordagem e como verificar se o cluster está preparado.

Como funciona nos charts TDP

Cada chart TDP expõe dois parâmetros de controle, mutuamente exclusivos:

TDPConfiguration:
gateway:
ingress:
enabled: false # Ingress padrão do Kubernetes
gatewayApi:
enabled: true # Kubernetes Gateway API (HTTPRoute)

Quando gatewayApi.enabled: true, o chart cria um recurso HTTPRoute que se conecta a um Gateway já instalado no cluster.

Configuração do parentRefs

O bloco gatewayApi.parentRefs indica qual Gateway receberá as rotas. É a mesma configuração para todos os componentes:

gatewayApi:
parentRefs:
- name: meu-gateway # nome do recurso Gateway no cluster
namespace: gateway-system # namespace onde o Gateway está instalado
sectionName: https # opcional: listener específico do Gateway

O sectionName é útil quando o Gateway tem múltiplos listeners (por exemplo, um para HTTP e outro para HTTPS).

Componentes suportados

Todos os componentes abaixo suportam Gateway API. Os valores de hostnames e port são os padrões do chart — substitua pelos endereços do seu ambiente.

ComponenteChave do blocoHostname padrãoPortaTLS
Argo CDgatewayApi.serverargo.tdp.local80opcional
CloudBeavergatewayApi.cloudbeavercloudbeaver.local8978opcional
NiFigatewayApi.nifiopcional
OpenMetadatagatewayApi.openmetadataopcional
SupersetgatewayApi.supersetsuperset.tdp.local8088opcional
TrinogatewayApi.trinotrino.tdp.local8080opcional
Ozone — OM UIgatewayApi.omozone-om.local9874opcional
Ozone — SCM UIgatewayApi.scmozone-scm.local9876opcional
Ozone — S3 RESTgatewayApi.s3g.restozone-s3.local9878opcional
Ozone — S3 Web UIgatewayApi.s3g.webozone-s3-ui.local19878opcional

Exemplo completo — Superset no namespace tdp-project

TDPConfiguration:
gateway:
ingress:
enabled: false
gatewayApi:
enabled: true

gatewayApi:
parentRefs:
- name: meu-gateway
namespace: gateway-system
superset:
enabled: true
hostnames:
- superset.empresa.com
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- port: 8088
tls:
certificateRefs:
- name: superset-tls
namespace: tdp-project

TLS via Gateway

O TLS pode ser gerenciado pelo próprio Gateway (terminação no Gateway) em vez de ser configurado por componente. Nesse caso, certificateRefs referencia um Secret com o certificado:

Exemplo:

gatewayApi:
superset:
tls:
certificateRefs:
- name: superset-tls
namespace: tdp-project

Se o Gateway já está configurado para fazer TLS termination, certificateRefs pode ser omitido.

Resolução de problemas

ProblemaO que verificar
HTTPRoute criado mas sem tráfegoVerificar se o parentRefs.name e namespace apontam para o Gateway correto
Gateway não aceita a rotaConfirmar que o listener do Gateway permite o namespace do componente (allowedRoutes)
Hostname não resolveDNS deve apontar para o IP/endpoint do Gateway, não do Service do componente
TLS falhaVerificar se o Secret referenciado em certificateRefs existe no namespace informado
gatewayclass não encontradaExecutar kubectl get gatewayclass para confirmar a instalação do controller