执行kpt pkg get时出现expected: MappingNode was SequenceNode错误是什么原因?
kpt pkg get 报错产生原因
该报错是kpt工具解析YAML文件时发生的结构类型不匹配问题,错误信息中expected: MappingNode was SequenceNode的含义是kpt预期读取YAML的键值映射结构,实际读到的是数组序列结构,具体触发原因分为以下几类:
- kpt版本不兼容:你当前环境安装的kpt版本和上游
upgradekpt分支依赖的kpt版本不一致,不同版本kpt对Kustomize JSON 6902补丁的格式校验规则存在差异,旧版本无法识别新版补丁的编写格式,就会触发该解析错误。 - 上游包存在格式缺陷:你拉取的仓库分支中,
third-party/argo/upstream/manifests/namespace-install/overlays/argo-server-deployment.yaml文件的JSON补丁块编写不规范,补丁数组没有被正确嵌套到patchesJson6902字段的映射结构下,导致kpt把数组结构识别成了顶层结构触发报错。 - 本地残留文件冲突:你之前操作失误后修正时,没有彻底清理旧的
upstream目录残留文件,新旧版本的YAML文件混合拼接,导致解析时结构异常。 - GCP Cloud Shell默认工具版本问题:谷歌云网页终端内置的kpt版本是平台预安装的固定版本,大概率和kubeflow GKE部署文档要求的版本不匹配,也是触发该问题的常见原因。
内容的提问来源于stack exchange,提问作者user83455
相关产品推荐
相关产品推荐

