Skip to main content
Dans de nombreux fichiers de valeurs Helm on trouve des annotations nginx.ingress.kubernetes.io/*. Elles ne font strictement rien car notre ingress controller est Traefik. Cette page explique pourquoi ces annotations sont inertes, et comment obtenir le même comportement avec la syntaxe Traefik correcte.

Pourquoi elles sont sans effet

Notre ingress controller est Traefik, pas nginx. Les annotations nginx.ingress.kubernetes.io/* proviennent d’une ancienne pile et n’ont jamais été nettoyées. Elles n’ont aucun effet sur le routage, le CORS, les timeouts ni la taille des requêtes.
Lorsqu’une annotation d’ingress n’est pas reconnue par le controller actif, elle est simplement ignorée. Kubernetes ne lève pas d’erreur. Le résultat est un fichier de valeurs qui semble configurer quelque chose, mais qui en réalité ne change rien au comportement du trafic. Cela peut masquer des problèmes de production si l’application dépendait d’un timeout, d’une limite de taille ou d’un en-tête CORS.

Annotations couramment vues

Créer un Middleware Traefik

Pour obtenir un comportement équivalent à nginx.ingress.kubernetes.io/enable-cors, créez un objet Middleware Traefik dans le même namespace que votre application.
Middleware CORS
Vous pouvez créer d’autres types de Middleware selon le besoin : buffering pour la taille des requêtes, replacePathRegex pour la réécriture d’URL, ou redirectScheme pour forcer HTTPS. Consultez la documentation Traefik pour la liste complète des types de Middleware.

Référencer le Middleware depuis l’Ingress

Une fois le Middleware créé, référencez-le dans votre ressource Ingress via l’annotation traefik.ingress.kubernetes.io/router.middlewares.
Ingress avec middleware
Le format de l’annotation est <namespace>-<middleware-name>@kubernetescrd. Le séparateur est un tiret, et le suffixe @kubernetescrd indique à Traefik que la ressource provient du CRD Kubernetes.
Quand vous nettoyez un fichier de valeurs, retirez ces annotations mortes. Si l’application dépendait d’un comportement (timeout, CORS, taille de requête), ajoutez le Middleware Traefik équivalent dans le même commit pour ne pas introduire de régression.