Configuration d'entrée ArgoCD
Prérequis:-
Ingress-Nginx doit être présent dans votre cluster !
L'entrée peut être configurée de plusieurs façons. Je vais créer plusieurs objets et hôtes d'entrée.
A- Point de terminaison argocd accessible de l'extérieur (si vous utilisez l'authentification unique , cela est nécessaire pour la configuration d'Okta SSO.)
[ Il est possible de configurer Okta SSO avec une installation de CD Argo privé, où l'URL de rappel Okta est le seul point de terminaison exposé publiquement ]
B- Point de terminaison argocd accessible en interne (pour accéder à votre cluster Kubernetes privé et à vos pods, vous devez utiliser un point de terminaison argocd interne).
Remarque : Dans la plupart des cas, vous devrez peut-être utiliser ArgoCD comme point d'accès interne, et je pense que la raison en est que votre équipe interne utilise ArgoCD pour déployer les services K8s. Ceci est également vrai dans mon cas d'utilisation.
Objets et hôtes d'entrée multiples -
Ingress-Nginx Ingress ne prend en charge qu'un seul protocole par objet Ingress ; une autre option consiste à définir deux objets Ingress. Un pour HTTP/HTTPS et un pour gRPC.
Entrée HTTP/HTTPS -
Mon Ingress-Nginx externe (accessible depuis l'extérieur de votre organisation) [* J'en avais besoin car j'ai besoin d'utiliser Okta pour SSO [SAML (avec Dex)] cependant si ce n'est pas votre cas d'utilisation, ne le créez pas . ]
Change-ME [Modifier les valeurs clés ci-dessous selon votre infra]
- ingressClassName, host , Path, tls hosts & tls secretName
> J'ai utilisé le secret que j'ai obtenu des secrets de certificat Let's Encrypt et changé le secretName des hôtes tls.
[Vous pouvez utiliser n'importe quel certificat SSL, pas nécessairement le certificat Let's Encrypt]
tls:
- hosts:
- argocd-ex.example.com #[Change-ME]
secretName: argocd-tls #[Change-ME] #["My Let's encrypt cert secrets name"]
Entrée externe-Nginx avec chemin 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]
Remarque - Si vous préférez transférer le trafic chiffré vers votre POD et terminer TLS sur le serveur gRPC lui-même, ajoutez l'annotation d'entrée nginx.ingress.kubernetes.io/backend-protocol: "GRPCS".
sinon utilisez 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
Pourquoi SSO - L'authentification unique est un processus d'authentification qui permet aux utilisateurs d'accéder en toute sécurité à plusieurs applications ou systèmes connexes à l'aide d'un seul ensemble d'informations d'identification.
Cliquez sur moi-
Guide d'installation ArgoCD tout-en-un.
ArgoCD Haute Disponibilité (HA) [Production Ready].
Configuration d'ArgoCD Okta. <<<< — -
Mise à jour des images ArgoCD .
Configuration de la notification ArgoCD Slack
Crochets de ressources ArgoCD.
J'espère que vous trouverez cet article instructif et bénéfique.
Par moi un café ← — — — Si vous aimez le blog, s'il vous plaît donnez-moi un Clap : ) et suivez-moi pour plus de contenu.
Vos applaudissements me motivent à continuer à écrire de tels blogs.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































