feat(openbao) : les coffres des nœuds sont démontés, les trois ouvertures refermées #33
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/openbao-node-teardown"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Le coffre ne tourne plus que dans les conteneurs. Les quatre coffres des nœuds sont arrêtés et nettoyés, les rôles
openbao*ont quitté leur play, et les trois ouvertures que la matrice nommait avec leur échéance sont refermées — la ligne 18, le8200de la 19a, et la ligne de transit vers les coffres de nos autres nœuds. Le5000de la 19a reste : c'est le looking glass.Tout est déjà déployé sur les 12 machines.
changed=0au second passage.Le défaut trouvé en démontant, et c'est le vrai sujet
Retirer un collecteur textfile de la liste ne retirait RIEN de la machine. La minuterie restait activée, le script restait en place, et surtout l'ancien
.promcontinuait d'être servi.C'est le
.promqui est le piège, pas la minuterie : un fichier textfile n'a pas d'horodatage, donc node_exporter sert ce qu'il y trouve comme une mesure de maintenant, indéfiniment. Le démontage aurait laissé les quatre nœuds publierdn42_openbao_sealed 0sur un coffre qui n'existe plus. Une métrique absente se voit (absent()) ; une métrique figée, non.textfile.ymla donc gagné son retrait — symétrique de celui qui existait déjà pour les fichiers Alloy, et pour la même raison écrite au même endroit. Il balaie l'union des collecteurs du rôle, nœuds et conteneurs confondus : un collecteur qui déménage doit partir de celui qu'il a quitté, ce qui est exactement le cas d'openbao-metrics.Le nom du
.promn'était dérivable de rien —cert-metrics→certificates.prom,service-metrics→services.prom— il se déclare maintenant, à côté du script plutôt qu'à l'intérieur.Un geste, pas une convergence
openbao-teardown.yml, lancé à la main, un nœud à la fois. Le play des nœuds n'ayant plus aucun rôleopenbao*, une machine reconstruite n'aura jamais de coffre : il n'y a rien à faire converger, seulement quatre machines à nettoyer.vars_filessur les defaults des trois rôles, et noninclude_role: tasks_fromqui était le geste évident : les trois dépendent d'openbao_binarypar leurmeta, et une inclusion de rôle exécute ses dépendances. Le démontage aurait commencé par réinstaller le binaire qu'il vient retirer.⚠ L'ORDRE — c'est la seule partie non évidente :
--tags monitoringretire le collecteur du nœudopenbao-teardownarrête et nettoie--tags nftablesrefermeInverser 1 et 2 fait crier une panne inventée : le collecteur survit à l'arrêt du coffre, publie
dn42_openbao_up 0, etDn42OpenbaoDownpart en critical sur un service qu'on vient de retirer volontairement.Ce qui survit, et ce qui ne survit pas
Gardés :
/var/lib/openbao/raft,/var/backups/openbao, les comptesopenbaoetbaoagent. Détruire des données est une décision qu'on ne prend pas le jour même — la posture que le dépôt tient déjà pour NetBox, dont le sync ne supprime jamais. Les comptes parce que supprimer un UID réattribuable à des fichiers restants, et il en reste justement, se passe mal en silence.Retiré, et c'est un écart assumé au plan :
/var/lib/openbao/tls. Ce n'est pas de la donnée, c'est un identifiant — la clé privée d'un listener qui n'écoute plus, que plus aucun agent ne renouvelle. Un certificat valide sans propriétaire se retire.Mesuré
changed=0au second passage sur les 12 machines.*bao*, ni binaire, ni/etc/openbao, ni/var/lib/openbao/tls, niopenbao.prom. Le raft et les instantanés sont intacts sur les quatre.5000— vérifié par comparaison du rendu, pas supposé.X-Ingress-Node.listener-certactif, instantanés présents.ocsp_stapling off:"disable_ocsp_stapling":truelu dans la configuration chargée via l'API d'administration. L'option n'a donc pas été ignorée en silence — mais son effet ne se verra qu'à la prochaine émission, l'avertissement n'apparaissant qu'à ce moment-là et pas périodiquement (vérifié : zéro occurrence sur 24 h avant comme après).⚠ Une alerte a tiré pour de bon
Dn42OpenbaoNoSingleLeader(critical) a étéfiringdu 10/08 23:08 au 11/08 01:58, et le démontage l'a éteinte. Deux clusters existaient réellement le temps de la bascule, etsum(dn42_openbao_leader)sansbyles additionnait : elle a dit la vérité littérale pour un état voulu et transitoire.Le déclencheur a été le relais de métriques, qui a rendu le second cluster visible un jour après sa création — le symptôme est arrivé loin de sa cause. La leçon est gardée en commentaire : une agrégation sans
bysuppose un seul ensemble, et faire cohabiter deux instances d'un même service la fait mentir.À côté,
Dn42NodeMetricsMissingestfiringsurinstance="openbao"et"ingress": c'est un artefact du renommage des instances (PR #32), la fenêtre de 6 h se souvenant des anciens noms. Elle s'éteint seule.Côté
ATNET/k8s-flux—f85bd6epousséLes 9 règles du groupe
dn42-openbaos'évaluaient déjà juste : pas une expression ne compareinstanceà un nom, ce qui est exactement ce qui a permis à la bascule de se faire sans toucher ce fichier — et exactement ce qui rendait la dérive invisible. Ce sont les descriptions qui envoyaient chercher la panne sur la mauvaise machine. Toutes les commandes citées passent enincus exec <nœud>:<service> -- ….Aucune expression, aucun seuil, aucun
for:niseverity:n'est touché.Ce qui reste
Un geste sur
ca1: les quatresecret_idde l'AppRoledn42-node-certqui appartenaient aux nœuds restent valides là-bas jusqu'à leur TTL — supprimer un fichier ne révoque rien. Ils sont distinguables par leur métadonnée ; la commande est dansroles/openbao/README.md. Hors de ce playbook délibérément : il tourne avec les identifiants des nœuds, et mélanger les deux coffres dans un même play a déjà coûté un 403.Sans rapport avec cette PR, et déjà noté : la moitié « nœud » du rôle
ingress(ingress_on_node,teardown.yml) est morte depuis la PR #25 et attend le même geste.