ProxyAuthK8S
Guides de migration

Vers la 0.6.0

Mettre à jour depuis la 0.5.x, échange de jeton (RFC 0010)

La 0.6.0 ajoute le mode upstream_auth.mode: TokenExchange (RFC 0010) : une seule connexion SSO au proxy, échangée contre un jeton par cluster auprès de l'IdP de ce cluster (Échange de jeton). Rien ne change sans action de l'admin du proxy : upstreamAuth.allowedModes vaut [Passthrough], et un cluster qui ne demande pas l'échange garde son chemin actuel.

Mettre à jour

Comme toujours, chart-crd avant le chart :

helm upgrade proxyauthk8s-crd oci://ghcr.io/batleforc/proxyauthk8s/chart-crd:0.6.0 \
  --namespace ${NAMESPACE}
helm upgrade proxyauthk8s oci://ghcr.io/batleforc/proxyauthk8s/chart:0.6.0 \
  --namespace ${NAMESPACE} \
  --values proxyauthk8s-values.yaml

Sur une CRD 0.5.x, le contrôleur démarre mais l'apiserver refuse mode: TokenExchange à l'écriture : mettez chart-crd à jour avant de passer un cluster en échange.

Ce qui change pour tous les clusters

  • Nom d'utilisateur : un jeton sans preferred_username nomme l'utilisateur par son email au lieu d'un nom vide partagé (audit et rate limit par utilisateur).
  • Rafraîchissement : un refresh token que l'IdP refuse en invalid_request est traité comme invalid_grant : la CLI redemande une connexion au lieu d'échouer.
  • CLI : kubectl-proxyauth login --server-url … sans --token se connecte au proxy en SSO ; il faut pour cela que la redirection du proxy (OIDC_REDIRECT_URL) soit déjà enregistrée chez son IdP. login --server-url --token reste disponible.

Passer un cluster en échange

Activer l'échange sur un cluster invalide les jetons de cluster déjà distribués pour lui : ses utilisateurs refont kubectl-proxyauth login <cluster>, qui écrit le nouveau contexte sans SSO du cluster. Une réponse d'échange de plus de 16 Kio de l'IdP du cluster est refusée en 502. Les prérequis côté IdP (client confidentiel, audience du jeton du proxy) sont dans le guide.

Revenir en arrière

Repassez chaque cluster en Passthrough avant de revenir à la 0.5.x ou de rétrograder chart-crd : rien n'est persisté par l'échange (cache en mémoire), mais un binaire 0.5.x ne connaît pas le mode TokenExchange : son contrôleur ne lit plus la liste des ProxyKubeApi tant qu'un cluster le demande (plus aucune réconciliation), et le proxy répond « cluster inconnu » pour ce cluster plutôt que de relayer le jeton de l'IdP.

On this page