helm ialah pengurus pakej Kubernetes yang popular digunakan untuk memudahkan penggunaan dan pengurusan aplikasi. Walau bagaimanapun, kadangkala anda mungkin menghadapi ralat semasa menukar fail YAML kepada format JSON. Salah satu ralat biasa ialah "helm: error converting YAML to JSON: yaml: line xx: cannot find expected key". Ralat ini biasanya bermakna kunci yang dijangkakan tiada pada baris xx fail YAML. Dalam artikel ini, kami akan menyelidiki punca ralat ini dan menyediakan penyelesaian untuk membetulkannya.
Terdapat rentetan yang dikodkan json dalam fail values.yaml saya->
values.yaml
network: cidrs : "[\"123.123.123.123/32\",\"123.124.125.125/32\"]"
Sekarang saya mahu menggunakan nilai ini sebagai senarai rentetan dalam ipblock keluar dasar rangkaian saya. Tetapi saya tidak boleh menukarnya kepada senarai.
Pada masa ini saya mengikuti kaedah ini untuk mencapai keperluan tetapi ia gagal -
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
Ada idea bagaimana untuk menukar rentetan yang dikodkan kepada senarai rentetan dan menggunakannya dalam strategi web saya?
Menggunakan mustFromJson
而不是 fromJson
, baru-baru ini menghadapi masalah yang sama dan membetulkannya, perlu menyemak dokumentasi untuk mengetahui puncanya.
EDIT: Atas sebab tertentu fromJson
无法处理顶级列表,但 mustFromJson
可以,看起来像一个错误,因为文档中列出的唯一区别是 mustFromJson
mengembalikan ralat jika JSON tidak sah.
Atas ialah kandungan terperinci helm : Ralat menukar YAML kepada JSON: yaml: line xx: Kunci yang dijangka tidak ditemui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!