Kubernetes

Helm Values DiffComprendre l’effet des surcharges

Une base commune, deux surcharges indépendantes et leurs valeurs effectives.

Helm Values Diff

Ancienne surcharge

Différences

Les trois entrées sont traitées dans ce navigateur, sans envoyer leur contenu.

Les valeurs de sortie sont masquées initialement. Clés et chemins restent visibles ; les entrées et aperçus conservent le texte original. Le YAML masqué est destiné à la relecture.

Helm 3.19.0, chart unique : base → chaque surcharge séparément. Tables fusionnées, listes remplacées puis comparées par indice.

Par entrée : 200 000 caractères, 20 000 nœuds, profondeur 60. Rapport : 5 000 changements / 4 millions de caractères. Calcul : 5 secondes.

Saisissez les configurations ou lancez la comparaison.

Helm Values Diff permet de relire des fichiers values sans confondre suppression et retour aux valeurs par défaut. Une ligne retirée de la configuration d’environnement peut réactiver la valeur du chart. Comparez les résultats effectifs, puis les surcharges brutes si vous voulez examiner la déclaration elle-même.

Pourquoi utiliser Helm Values Diff

Voir le retour d’une valeur héritée

Helm Values Diff applique chaque version séparément à la même base. Lorsque replicas disparaît de la nouvelle surcharge, le nombre par défaut revient. La version précédente ne sert jamais de couche implicite à la suivante.

Une arborescence commune alimente deux branches indépendantes ; la suppression d’une surcharge fait réapparaître une valeur héritée.

Conserver la preuve d’un changement

Les valeurs réelles sont comparées avant leur masquage. Deux mots de passe différents restent signalés comme modifiés, même si leurs marqueurs affichés sont identiques. Les valeurs imbriquées dans les nouveaux objets et tableaux sont aussi masquées.

Deux valeurs différentes sont recouvertes par des masques, tandis que leur indicateur de modification reste visible.

Définir la portée de la relecture

01

Séparer les trois sources

Le sélecteur de gauche conserve trois textes indépendants : les valeurs du chart et une surcharge complète pour chaque version. Un champ vide correspond à une table vide. Si tout est vide, une exécution manuelle demande une saisie.

02

Choisir entre déclaration et résultat

Le mode initial compare les valeurs effectives. Les surcharges brutes révèlent des changements de déclaration sans effet final. Les deux vues fusionnées affichent toujours les valeurs effectives, quel que soit le mode de comparaison.

03

Exporter la vue à jour

La comparaison automatique attend 350 ms après la dernière modification. Désactivez-la pour utiliser le bouton ou Ctrl/Cmd+Entrée. Toute modification rend l’ancien export indisponible. Les remplacements proposent un aperçu et le nombre de caractères, puis une annulation unique.

Des différences avec leur contexte

Tables récursives, listes remplacées

Une table conserve les enfants par défaut absents de la surcharge. Une table vide ne les efface pas ; une liste vide remplace bien toute la liste d’origine. false, zéro et la chaîne vide restent des valeurs distinctes.

Chemins et types explicites

Chaque ajout, retrait ou modification porte un chemin JSON Pointer et les types avant/après. Une clé absente diffère de null, comme un nombre diffère de sa représentation entre guillemets. Dans un chemin, ~1 représente / et ~0 représente ~.

Moins de bruit de présentation

Les commentaires, espaces et l’ordre des clés d’une table sont ignorés. L’ordre des listes reste significatif : la comparaison les aligne par indice après la fusion. Une insertion en tête peut donc modifier plusieurs positions.

Des exports complets

Le JSON contient le modèle, le mode, le masquage, toutes les différences et les deux documents YAML effectifs. Une vue fusionnée exporte seulement la version choisie. Les 50 premières différences sont visibles, puis extensibles ; l’export ne tronque pas le résultat.

Ce que le modèle ne simule pas

Un chart et une version de référence
La fusion suit Helm 3.19.0 pour un chart sans dépendances. Elle ne simule ni sous-charts, ni propagation global, ni import-values ou conditions de dépendance. Aucun template Go, tpl ou lookup n’est exécuté. Le cluster, la release et le schéma ne sont pas consultés.
Un sous-ensemble YAML explicite
Chaque entrée accepte un document YAML 1.2 core dont la racine est une table à clés textuelles. Doublons, clés complexes, directives, tags explicites, ancres, alias et clés << sont refusés. Mettez entre guillemets yes ou on. Les nombres suivent la notation décimale JSON, doivent être finis et les entiers sûrs ; le sous-dépassement est refusé. Les décimaux utilisent binary64.
La suppression par null dépend de la base
Une surcharge null supprime une clé correspondante dans les valeurs par défaut. Un null sous une nouvelle clé, dans une nouvelle table ou dans une liste de remplacement reste présent. Omettre une surcharge restaure la valeur héritée : ce n’est pas une suppression générale des valeurs vides.
Un rapport masqué reste identifiable
Tous les scalaires non null sont remplacés par un marqueur typé, y compris nombres et booléens. Les clés, chemins, structures et null restent visibles : ce n’est pas une anonymisation complète. Les éditeurs et aperçus de remplacement gardent le texte original. Le YAML masqué sert à la relecture, pas au déploiement.
Des limites sans résultat partiel
Par entrée : 200 000 caractères, 20 000 nœuds, profondeur 60 et un million de caractères de chemins cumulés. Rapport : 5 000 changements, quatre millions de caractères, calcul limité à cinq secondes. Un dépassement bloque l’export entier. Pas de gestion de plusieurs -f, de --set, de reuse/reset-values, d’import URL ni de conservation de la mise en forme source.

Questions sur Helm Values Diff

Comment voir les changements avant helm upgrade ?

Vérifiez ici la couche values, puis les manifestes rendus avec helm diff ou votre procédure de release. Des valeurs identiques ne garantissent pas des ressources identiques si le chart, les templates ou les capacités du cluster changent.

Quelle valeur gagne entre la base et le fichier d’environnement ?

La surcharge d’environnement est prioritaire. Les tables imbriquées récupèrent seulement les enfants absents depuis les valeurs par défaut. Chaque version accepte une seule surcharge ; préparez les fichiers multiples dans leur ordre réel avant de les saisir.

Pourquoi les listes ne sont-elles pas fusionnées élément par élément ?

Helm remplace la liste entière à cette clé, sans ajout automatique ni recherche par nom. La vue des différences compare ensuite les indices des listes obtenues ; ce mode de lecture ne change pas la règle de fusion.

Comment retirer une clé des valeurs par défaut ?

Donnez-lui la valeur null dans la surcharge. La simple omission rétablit la valeur par défaut. Si la clé n’existe pas dans la base, null est conservé : une nouvelle valeur vide et une clé supprimée sont deux résultats différents.

Peut-on détecter un changement de secret sans le révéler ?

Oui, en conservant le masquage. Le changement calculé sur les valeurs originales et son type restent visibles. Les valeurs ordinaires sont également cachées. Relisez les noms de clés et les chemins avant de partager le rapport.

Un cas de comparaison à nous signaler ?

Relire les deux configurations

Utilisez Helm Values Diff pour distinguer une déclaration modifiée de son effet, puis enregistrer la vue utile à votre relecture.