使用Kustomize构建Helm Chart报unknown field "helm-charts"错误如何解决
json: unknown field "helm-charts" 报错解决
该报错是kustomize版本与语法不匹配导致:
helm-charts是kustomize v3版本的旧字段,v4.0+版本已经正式废弃,统一替换为HelmChartInflationGenerator内置插件的写法。- 首先将本地kustomize升级到v4.5.0及以上稳定版本,执行
kustomize version可查看当前版本。 - 替换你的kustomization.yaml配置:
- 移除原配置中的
helm-charts字段,新增generator配置:
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: - ./helm-chart-config.yaml- 新建
helm-chart-config.yaml文件写入helm chart配置:
apiVersion: builtin kind: HelmChartInflationGenerator metadata: name: your-chart-name # chart基础配置 name: bitnami/nginx repo: https://charts.bitnami.com/bitnami version: 15.1.0 releaseName: my-nginx namespace: default # 可选:自定义values配置 valuesFile: ./values.yaml values: service: type: NodePort - 移除原配置中的
- 执行构建时必须加
--enable-helm参数,完整命令为kustomize build --enable-helm ./base,kustomize v4版本之后helm相关功能默认关闭,需要显式开启参数才能调用。
HelmChartInflationGenerator 示例无法运行解决
按以下顺序排查:
- 本地提前安装Helm 3+版本并加入系统PATH,kustomize本身不内置helm二进制,需要调用本地helm执行拉取、渲染操作。
- 部分版本需要额外开启插件参数,可尝试执行
kustomize build --enable-helm --enable-alpha-plugins ./base运行。 - 检查配置中所有文件路径(如valuesFile),路径需为相对于kustomization.yaml所在目录的相对路径,否则会出现找不到文件的报错。
内容的提问来源于stack exchange,提问作者hobyte
相关产品推荐
相关产品推荐

