> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Pièges à connaître sur la plateforme Kaeyros

> Dix-huit comportements surprenants de la plateforme à connaître avant de les rencontrer en production.

Les points suivants ne sont pas des défauts à corriger d'urgence. Ce sont des comportements de la plateforme que vous devez connaître avant de les rencontrer, afin d'anticiper leurs effets et d'adopter les bonnes pratiques.

> [!WARNING]
>
> **1. Une modification manuelle est effacée**
>
> Le paramètre `selfHeal` est actif sur ArgoCD. Toute modification manuelle via `kubectl edit` ou `kubectl set image` est écrasée à la prochaine réconciliation. Passez toujours par Git pour faire évoluer une application.

> [!WARNING]
>
> **2. Renommer une Application recrée toutes les ressources**
>
> Le renommage d'une Application ArgoCD recrée l'ensemble des ressources, y compris le Service Kubernetes. Le nom DNS interne change alors, et les appels service-à-service écrits en dur cessent de fonctionner. Consultez la page [/deploiement/renommage](https://infra-docs.kaeyros.org/deploiement/renommage.md) pour les précautions à prendre.

> [!WARNING]
>
> **3. Migrer de rollout vers rollout-v2 renomme aussi tout**
>
> Le changement de chart `rollout` vers `rollout-v2` entraîne le renommage de l'ensemble des ressources. Planifiez cette migration hors des heures de pointe.

> [!WARNING]
>
> **4. valueFiles est relatif au dossier du chart**
>
> Les chemins indiqués dans `valueFiles` sont résolus par rapport au dossier du chart, d'où les chemins en `../../`. Consultez la page [/deploiement/anatomie-application](https://infra-docs.kaeyros.org/deploiement/anatomie-application.md) pour le détail du fonctionnement.

> [!WARNING]
>
> *5. Annotations nginx.ingress.kubernetes.io/ sans effet*\*
>
> L'ingress controller de la plateforme est Traefik, pas NGINX. Les annotations `nginx.ingress.kubernetes.io/*` sont donc sans effet. Consultez la page [/deploiement/annotations-sans-effet](https://infra-docs.kaeyros.org/deploiement/annotations-sans-effet.md) pour les alternatives.

> [!WARNING]
>
> **6. service.additionalPorts ouvre le port du conteneur, pas celui du Service**
>
> Le gabarit de chart expose uniquement le port `http`. Un second port déclaré via `service.additionalPorts` est ouvert sur le conteneur, mais reste inatteignable par le Service Kubernetes.

> [!WARNING]
>
> **7. resources vide par défaut**
>
> Par défaut, les demandes et limites de ressources ne sont pas définies. Les pods sont alors en QoS `BestEffort`, ce qui les rend plus vulnérables à l'éviction en cas de pression sur le nœud.

> [!WARNING]
>
> **8. Sondes désactivées par défaut**
>
> Les sondes de liveness et readiness ne sont pas activées par défaut dans les charts. Vous devez les activer explicitement dans le fichier de valeurs de votre application.

> [!WARNING]
>
> **9. Dry-run ArgoCD désactivé**
>
> L'annotation `SkipDryRunOnMissingResource=true` est présente sur toutes les ressources. Le dry-run d'ArgoCD est donc contourné, et les erreurs de schéma ne sont pas détectées avant l'application. C'est pourquoi le contrôle local avec `helm template` est indispensable.

> [!WARNING]
>
> **10. Le dépôt ne dit pas quelle image tourne**
>
> Le dépôt GitOps ne reflète pas nécessairement l'image réellement déployée. Consultez la page [/deploiement/image-updater](https://infra-docs.kaeyros.org/deploiement/image-updater.md) pour comprendre le mécanisme de mise à jour des images.

> [!WARNING]
>
> **11. databases/, secrets/, traefik.yaml non synchronisés**
>
> Les dossiers `databases/`, `secrets/` et le fichier `traefik.yaml` ne sont pas gérés par ArgoCD. Les modifier dans le dépôt ne déclenche aucun déploiement automatique.

> [!WARNING]
>
> **12. Dossier vald/ vise un autre cluster**
>
> Le dossier `vald/` du dépôt cible un autre cluster. Ne le confondez pas avec la configuration de production.

> [!WARNING]
>
> **13. Charts init, test-init, apps : copies historiques**
>
> Les charts `init`, `test-init` et `apps` sont des copies historiques du chart `antid`. Ne les ciblez pas pour créer une nouvelle application : utilisez `antid-v2` ou `rollout-v2`.

> [!WARNING]
>
> **14. Nœud big-one-9d0479e4 évité par la configuration**
>
> Le nœud `big-one-9d0479e4` est exclu du placement des pods par la configuration d'affinity. Un pod restant en état `Pending` avec une règle d'affinity non satisfaite peut venir de là. Consultez la page [/infrastructure/placement-pods](https://infra-docs.kaeyros.org/infrastructure/placement-pods.md) pour le détail.

> [!WARNING]
>
> **15. Manifeste de base sans metadata.namespace atterrit dans default**
>
> Un manifeste Kubernetes qui ne précise pas `metadata.namespace` est déployé dans le namespace `default`. Vérifiez toujours la présence de ce champ, ou passez par les templates de chart qui le positionnent automatiquement.

> [!WARNING]
>
> **16. La rotation des accès AWS applicatifs ne couvre pas la sauvegarde logique Postgres**
>
> Le postgres-operator (Zalando) utilise sa propre credential AWS, portée par le Secret `logical-backup-s3-credentials` (namespace `default`), pour envoyer les sauvegardes logiques vers S3. Elle est indépendante de la credential AWS utilisée par les applications dans leur bloc `env`. Rotater l'une ne rotate pas l'autre : une rotation « AWS » côté applicatif laisse les sauvegardes Postgres tourner avec l'ancienne clé jusqu'à sa désactivation côté AWS, ce qui fait échouer silencieusement le CronJob `logical-backup-*`. Consultez [/infrastructure/sauvegardes](https://infra-docs.kaeyros.org/infrastructure/sauvegardes.md) pour le mécanisme complet.

> [!WARNING]
>
> **17. Deux secrets Cloudflare distincts par cluster, un seul est branché sur les certificats**
>
> Le `ClusterIssuer letsencrypt-cloudflare` (résolution DNS-01) consomme le secret `cloudflare-api-token` du namespace `cert-manager`. Un autre secret peut coexister dans le namespace `external-dns`, résidu d'un external-dns désactivé sur certains clusters (voir [/infrastructure/environnements](https://infra-docs.kaeyros.org/infrastructure/environnements.md)) — rien ne garantit qu'il contienne le même jeton. Vérifiez toujours lequel des deux vous manipulez avant une rotation ou la création manuelle d'un enregistrement DNS.

> [!WARNING]
>
> **18. Les secrets d'image (ghcr-secret, argo-pull) sont dupliqués par namespace**
>
> Ce ne sont pas des secrets référencés depuis un objet central : chaque namespace porte sa propre copie, soit plusieurs centaines d'objets à eux deux rien que sur le cluster de production. Rotater le token GHCR suppose de repasser namespace par namespace ; un oubli se traduit par des `ImagePullBackOff` qui n'apparaissent pas tous au même moment, ce qui peut faire croire le problème résolu alors que des namespaces restent non traités.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.