Configuração de entrada do ArgoCD
Pré-requisito:-
O Ingress-Nginx precisa estar presente no seu Cluster!
O ingresso pode ser configurado de várias maneiras. Criarei vários objetos e hosts de ingresso.
A- Endpoint argocd acessível externamente (se você usar o logon único , isso é necessário para a configuração do Okta SSO.)
[ É possível configurar o Okta SSO com uma instalação privada do Argo CD, onde a URL de retorno do Okta é o único terminal exposto publicamente ]
B- Endpoint argocd acessível internamente (para acessar seu cluster e pods privados do Kubernetes, você precisa usar um endpoint argocd interno).
Observação: na maioria dos casos, pode ser necessário usar o ArgoCD como um ponto de acesso interno, e acredito que o motivo seja que sua equipe interna está usando o ArgoCD para implantar os serviços K8s. Isso também é verdade no meu caso de uso.
Vários objetos e hosts de entrada -
Ingress-Nginx Ingress suporta apenas um protocolo por objeto Ingress; outra opção é definir dois objetos Ingress. Um para HTTP/HTTPS e outro para gRPC.
Entrada HTTP/HTTPS -
Meu Ingress-Nginx externo (acessível de fora da sua organização) [* Eu precisava disso porque preciso usar o Okta para SSO [SAML (com Dex)] no entanto, se esse não for o seu caso de uso, não o crie . ]
Change-ME [Altere os valores-chave abaixo de acordo com sua infra]
- ingressClassName, host , Path, tls hosts & tls secretName
> Usei o segredo que obtive dos segredos do certificado Let's Encrypt e alterei o tls hosts secretName.
[Você pode usar qualquer certificado SSL, não necessariamente o certificado Let's Encrypt]
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #[Change-ME] #["My Let's encrypt cert secrets name"]
Entrada externa-Nginx com caminho Okta —
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress-external
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
ingressClassName: external-nginx #[Change-ME]
rules:
- host: argocd-ex.example.com #[Change-ME]
http:
paths:
- path: /api/dex/callback #[SAML (with Dex) SSO Setup path]
pathType: ImplementationSpecific
backend:
service:
name: argocd-server #[your argoCD server service name]
port:
name: http
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #["My Let's encrypt cert secrets name"] #[Change-ME]
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress-internal
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
spec:
ingressClassName: internal-nginx #[Change-ME]
rules:
- host: argocd-in.example.com #[Change-ME]
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: argocd-server #[your argoCD server service name]
port:
name: https
tls:
- hosts:
- argocd-in.example.com #[Change-ME]
secretName: argocd-tls #["My Let's encrypt cert secrets name"] #[Change-ME]
Observação - Se você preferir encaminhar o tráfego criptografado para seu POD e encerrar o TLS no próprio servidor gRPC, adicione a anotação ingress nginx.ingress.kubernetes.io/backend-protocol: "GRPCS".
senão use- nginx.ingress.kubernetes.io/backend-protocol: “GRPC”
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-grpc-ingress
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "GRPCS" #[Note me]
spec:
ingressClassName: internal-nginx #[Change-ME]
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server #[your argoCD server service name]
port:
name: https
host: grpc.argocd.example.com
tls:
- hosts:
- grpc.argocd.example.com
secretName: argocd-tls #["My Let's Encrypt Cert Secrets Name"] #[Change-ME]
kubectl get ing -n argocd
ArgoCD Ingress Objects
Por que SSO - Single sign-on é um processo de autenticação que permite aos usuários acessar com segurança vários aplicativos ou sistemas relacionados usando apenas um conjunto de credenciais.
Clique em mim-
Guia de configuração do ArgoCD All-in-One.
ArgoCD High Availability (HA) [Pronto para Produção].
Configuração do ArgoCD Okta. <<<< — -
Atualizador de imagem ArgoCD .
Configuração de notificação do ArgoCD Slack
Ganchos de recursos do ArgoCD.
Espero que você ache este artigo educativo e benéfico.
Por mim um café ← — — — Se você gosta do blog, por favor me dê um Clap : ) e siga-me para mais conteúdos como esse.
Seus aplausos me motivam a continuar escrevendo esses blogs.





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)