helm est un gestionnaire de packages Kubernetes populaire utilisé pour simplifier le déploiement et la gestion des applications. Cependant, vous pouvez parfois rencontrer des erreurs lors de la conversion des fichiers YAML au format JSON. L'une des erreurs courantes est "helm : erreur lors de la conversion de YAML en JSON : yaml : ligne xx : impossible de trouver la clé attendue". Cette erreur signifie généralement qu'il manque une clé attendue à la ligne xx du fichier YAML. Dans cet article, nous examinerons les causes de cette erreur et proposerons des solutions pour y remédier.
Il y a une chaîne codée en json dans mon fichier Values.yaml->
values.yaml
network: cidrs : "[\"123.123.123.123/32\",\"123.124.125.125/32\"]"
Maintenant, je souhaite utiliser cette valeur comme liste de chaînes dans mon ipblock de sortie de politique réseau. Mais je ne peux pas le convertir en liste.
Actuellement, je suis cette méthode pour répondre à l'exigence mais elle a échoué -
error converting yaml to json: yaml: line xx : did not find expected key
netpol.yaml
spec: podSelector: matchLabels: name: log-forwarder policyTypes: - Egress egress: {{- $json := .Values.network.cidrs | fromJson -}} {{- range $json }} - to: - ipBlock: cidr: {{- . }} {{- end }} ports: - protocol: TCP port: 443
Une idée sur la façon de convertir une chaîne codée en une liste de chaînes et de l'utiliser dans ma stratégie Web ?
En utilisant mustFromJson
而不是 fromJson
, j'ai récemment rencontré le même problème et je l'ai résolu, je dois consulter la documentation pour en connaître la cause.
EDIT : Pour une raison quelconque, fromJson
无法处理顶级列表,但 mustFromJson
可以,看起来像一个错误,因为文档中列出的唯一区别是 mustFromJson
renvoie une erreur si le JSON n'est pas valide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!