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.
| Componente | Chave do bloco | Hostname padrão | Porta | TLS |
|---|---|---|---|---|
| Argo CD | gatewayApi.server | argo.tdp.local | 80 | opcional |
| CloudBeaver | gatewayApi.cloudbeaver | cloudbeaver.local | 8978 | opcional |
| NiFi | gatewayApi.nifi | — | — | opcional |
| OpenMetadata | gatewayApi.openmetadata | — | — | opcional |
| Superset | gatewayApi.superset | superset.tdp.local | 8088 | opcional |
| Trino | gatewayApi.trino | trino.tdp.local | 8080 | opcional |
| Ozone — OM UI | gatewayApi.om | ozone-om.local | 9874 | opcional |
| Ozone — SCM UI | gatewayApi.scm | ozone-scm.local | 9876 | opcional |
| Ozone — S3 REST | gatewayApi.s3g.rest | ozone-s3.local | 9878 | opcional |
| Ozone — S3 Web UI | gatewayApi.s3g.web | ozone-s3-ui.local | 19878 | opcional |
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
| Problema | O que verificar |
|---|---|
HTTPRoute criado mas sem tráfego | Verificar se o parentRefs.name e namespace apontam para o Gateway correto |
| Gateway não aceita a rota | Confirmar que o listener do Gateway permite o namespace do componente (allowedRoutes) |
| Hostname não resolve | DNS deve apontar para o IP/endpoint do Gateway, não do Service do componente |
| TLS falha | Verificar se o Secret referenciado em certificateRefs existe no namespace informado |
gatewayclass não encontrada | Executar kubectl get gatewayclass para confirmar a instalação do controller |