Saltar para o conteúdo principal
Versão 3.0.0

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 a apontar para o IP do Ingress Controller (ou configuração local em /etc/hosts para testes).
  • Emissão de certificados: opcional, via cert-manager para TLS automático.

URL pública

Garanta que a URL usada pelos utilizadores coincida com tdp-argo.configs.cm.url (ex.: https://<host>), necessário para Dex/LDAP e ligações correctas na UI.

Exemplo de configuração

Ingress vs Gateway API

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 actuais; 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 controle.

As annotations (cert-manager, SSL redirect, etc.) dependem do seu Ingress Controller; configure-as conforme o controlador que utiliza.

Acesso após configuração

  1. 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}'
  2. Adicione o hostname no DNS ou no ficheiro /etc/hosts:
    <INGRESS_IP>   <host>
  3. Aceda a https://<host> (ou http:// se o 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

ProblemaCausaSolução
SSO/LDAP com URL erradaconfigs.cm.url não coincide com o hostAjustar tdp-argo.configs.cm.url ao host real
Ingress não criadoserver.ingress.enabled: false, template do chart ou ingressClassName incorretoVerificar chaves server.ingress na versão exacta do chart, se o template está habilitado e se ingressClassName corresponde ao Ingress Controller do ambiente
TLS falhaIssuer ou Secret incorrectosConferir cert-manager e o Secret TLS e annotations do controller