You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Kustomize的configMapGenerator生成无引号的整数值?

解决Kustomize生成ConfigMap时数值带引号的问题

你的kustomization.yaml配置如下:

kind: Kustomization
configMapGenerator:
- name: app-cm
  literals:
  - foo=bar
  - var1=1

执行kustomize build .后,生成的ConfigMap里var1的值被加上了双引号:

apiVersion: v1
data:
  foo: bar
  var1: "1"
kind: ConfigMap
metadata:
  name: app-cm-ghtd2cb8m9

想要让var1的值不带引号,有两种可行的方法:

方法一:使用files字段加载配置文件

  1. 先创建一个配置文件(比如configs/app.conf),内容如下:
foo=bar
var1=1
  1. 修改kustomization.yaml,用files字段替代literals:
kind: Kustomization
configMapGenerator:
- name: app-cm
  files:
  - configs/app.conf

方法二:使用envs字段加载.env文件

  1. 创建一个.env文件,内容如下:
foo=bar
var1=1
  1. 修改kustomization.yaml,用envs字段替代literals:
kind: Kustomization
configMapGenerator:
- name: app-cm
  envs:
  - .env

补充说明

其实在Kubernetes的ConfigMap中,data字段的所有值本质都是字符串,YAML里的"1"和1在实际解析时没有区别。Kustomize给纯数值加引号是为了明确标记它是字符串类型,避免YAML解析器将其识别为数值。如果只是为了输出格式的美观,用上面两种方法就能实现不带引号的效果。

内容的提问来源于stack exchange,提问作者Dim Dim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:25:33