Ingress — ArgoCD
A exposição do Argo CD via Ingress permite acesso HTTP/HTTPS externo ao cluster usando um hostname dedicado. O chart tdp-argo usa a configuração de Ingress do chart upstream argo-cd, sob o prefixo tdp-argo.server.ingress.
Pré-requisitos
- Ingress Controller instalado no cluster (ex.: NGINX).
- Entrada DNS apontando para o IP do Ingress Controller (ou configuração local em
/etc/hostspara testes). - Emissão de certificados: opcional, via
cert-managerpara TLS automático.
URL pública
Garanta que a URL usada pelos usuários coincida com tdp-argo.configs.cm.url (ex.: https://<host>), necessário para Dex/LDAP e links corretos na UI.
Exemplo de configuração
TDPConfiguration.gateway.ingress e TDPConfiguration.gateway.gatewayApi são mutuamente exclusivos. Habilite apenas um deles.
Confira no values.yaml do tdp-argo / argo-cd as chaves atuais; um padrão comum do chart upstream é:
TDPConfiguration:
gateway:
ingress:
enabled: true
tdp-argo:
server:
ingress:
ingressClassName: <ingress-class>
hostname: <host>
tls: true
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
Substitua <ingress-class> pelo nome do Ingress Controller do ambiente (verifique com kubectl get ingressclass) e <host> por um domínio que você controle.
Annotations (cert-manager, SSL redirect, etc.) dependem do seu Ingress Controller; configure-as conforme o controlador que utiliza.
Acesso após configuração
- Obtenha o IP externo do Ingress Controller:
Terminal input
kubectl get svc -A -l app.kubernetes.io/name=ingress-nginx \
-o jsonpath='{.items[0].status.loadBalancer.ingress[0].ip}' - Adicione o hostname no DNS ou no arquivo
/etc/hosts:<INGRESS_IP> <host> - Acesse
https://<host>(ouhttp://se TLS não estiver configurado).
Alternativas
- LoadBalancer no Service do
server, quando suportado. - Port-forward para testes:
kubectl port-forward svc/<release>-argocd-server -n <namespace> 8080:80
Troubleshooting
| Problema | Causa | Solução |
|---|---|---|
| SSO/LDAP com URL errada | configs.cm.url não coincide com o host | Ajustar tdp-argo.configs.cm.url ao host real |
| Ingress não criado | server.ingress.enabled: false, template do chart ou ingressClassName incorreto | Verificar chaves server.ingress na versão exata do chart, se o template está habilitado e se ingressClassName corresponde ao Ingress Controller do ambiente |
| TLS falha | Issuer ou Secret incorretos | Conferir cert-manager e o Secret TLS e annotations do controller |