From 3cfa83b2d648e398977c3aa6a0a9ad77bee8c27d Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Fri, 11 Sep 2026 15:25:00 +0200 Subject: [PATCH] =?UTF-8?q?La=20PriorityClass=20de=20Vault=20=C3=A9tait=20?= =?UTF-8?q?refus=C3=A9e=20par=20l'AppProject,=20et=20toute=20l'app=20resta?= =?UTF-8?q?it=20OutOfSync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suite de #46. La PriorityClass `vault-critical` y était correcte, mais elle n'a jamais atteint le cluster : SyncFailed | PriorityClass/vault-critical resource scheduling.k8s.io:PriorityClass is not permitted in project tools Une PriorityClass est cluster-scoped, et le `clusterResourceWhitelist` de l'AppProject `tools` ne l'autorisait pas. Conséquence non évidente : ArgoCD ne refuse pas seulement cette ressource, il fait échouer la SYNCHRONISATION ENTIÈRE de l'application. `hashicorp-vault` est donc resté OutOfSync après cinq tentatives, et les `requests` mémoire de #46 n'ont pas atterri non plus. À côté, `prometheus` a synchronisé sans problème : l'alerte VaultIndisponible de #46 est bien en place dans la ConfigMap. C'est ce qui rendait le symptôme trompeur — la moitié du travail était visible. CE QUE CE CHANGEMENT FAIT, ET CE QU'IL NE FAIT PAS Une ligne, un kind. Cette liste est un garde-fou volontaire : elle borne ce qu'une application de `tools` peut créer hors de son namespace. On l'élargit donc d'un kind à la fois, avec sa raison écrite à côté. Une PriorityClass ne porte ni droit ni donnée. Elle ne fait qu'ordonner l'éviction et la préemption — c'est le seul pouvoir qu'on accorde ici. Vérifié : `helm lint` passe, `helm template` rend bien l'entrée, et la liste compte désormais cinq kinds au lieu de quatre. Co-Authored-By: Claude Opus 5 (1M context) --- chart/templates/project.yaml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/chart/templates/project.yaml b/chart/templates/project.yaml index 3d1c8f1..d131fa5 100644 --- a/chart/templates/project.yaml +++ b/chart/templates/project.yaml @@ -24,4 +24,19 @@ spec: - group: '*' kind: MutatingWebhookConfiguration - group: 'apiextensions.k8s.io' - kind: CustomResourceDefinition \ No newline at end of file + kind: CustomResourceDefinition + # PriorityClass — ajoutée le 2026-09-11, et une seule raison la justifie. + # `hashicorp-vault/templates/priorityclass.yaml` déclare `vault-critical`, qui sort + # Vault de la classe `BestEffort` où il était le premier pod évincé du cluster (il y + # est resté SCELLÉ onze jours après l'éviction du 30/08). Une PriorityClass est + # cluster-scoped : sans cette ligne ArgoCD refuse la synchronisation ENTIÈRE de + # l'application — constaté, `hashicorp-vault` est resté OutOfSync sur + # « resource scheduling.k8s.io:PriorityClass is not permitted in project tools », + # après 5 tentatives. + # + # Cette liste est un GARDE-FOU, pas une formalité : elle borne ce qu'une application + # de `tools` peut créer hors de son namespace. On y ajoute donc un kind à la fois, + # avec sa raison. Une PriorityClass ne porte ni droit ni donnée : elle ne fait + # qu'ordonner l'éviction et la préemption. + - group: 'scheduling.k8s.io' + kind: PriorityClass