diff --git a/k8s/argocd-bootstrap/ingressroute-public.yaml b/k8s/argocd-bootstrap/ingressroute-public.yaml new file mode 100644 index 0000000..a5b44e1 --- /dev/null +++ b/k8s/argocd-bootstrap/ingressroute-public.yaml @@ -0,0 +1,20 @@ +# Accès public HTTPS — argocd.funklab.online (cert Let's Encrypt auto). +# ArgoCD n'est pas auto-synchronisé : appliquer à la main +# kubectl apply -f k8s/argocd-bootstrap/ingressroute-public.yaml +# Route interne argocd.lab.local conservée (Ingress du chart). +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: argocd-public + namespace: argocd +spec: + entryPoints: + - websecure + routes: + - match: Host(`argocd.funklab.online`) + kind: Rule + services: + - name: argocd-server + port: 80 + tls: + certResolver: letsencrypt diff --git a/k8s/argocd-bootstrap/values.yaml b/k8s/argocd-bootstrap/values.yaml index af3124e..4285e98 100644 --- a/k8s/argocd-bootstrap/values.yaml +++ b/k8s/argocd-bootstrap/values.yaml @@ -4,6 +4,24 @@ global: configs: params: server.insecure: true # TLS géré par Traefik + cm: + # URL publique (construit le redirect_uri OIDC : /auth/callback) + url: https://argocd.funklab.online + # SSO OIDC → Authentik (app « argocd »). L'issuer est joint server-side par + # argocd-server via hairpin. clientSecret référencé depuis le secret dédié + # « argocd-oidc » (label part-of=argocd, créé hors git) — évite de toucher + # argocd-secret géré par helm. Voir admin/k8s/public-domain.md. + oidc.config: | + name: Authentik + issuer: https://auth.funklab.online/application/o/argocd/ + clientID: argocd + clientSecret: $argocd-oidc:clientSecret + requestedScopes: ["openid", "profile", "email", "groups"] + rbac: + scopes: "[groups]" + # Membres du groupe Authentik lab-admins → admin ArgoCD + policy.csv: | + g, lab-admins, role:admin server: ingress: