configMapGenerator
生成 ConfigMap 资源.
	列表中的每个条目都将生成一个 ConfigMap (合计可以生成 n 个 ConfigMap)。
以下示例创建四个 ConfigMap:
- 第一个使用给定文件的名称和内容创建数据
- 第二个使用文件中的键/值对将数据创建为键/值
- 第三个使用 literals中的键/值对创建数据作为键/值
- 第四个通过 options设置单个 ConfigMap 的注释和标签
每个 configMapGenerator 项均接受的参数 behavior: [create|replace|merge],这个参数允许修改或替换父级现有的 configMap。
此外,每个条目都有一个 options 字段,该字段具有与 kustomization 文件的 generatorOptions 字段相同的子字段。
options 字段允许用户为生成的实例添加标签和(或)注释,或者分别禁用该实例名称的哈希后缀。此处添加的标签和注释不会被 kustomization 文件 generatorOptions 字段关联的全局选项覆盖。但是如果全局 generatorOptions 字段指定 disableNameSuffixHash: true,其他 options 的设置将无法将其覆盖。
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# 这个标签将添加到所有的 ConfigMap 和 Secret 中。
generatorOptions:
  labels:
    fruit: apple
configMapGenerator:
- name: my-java-server-props
  behavior: merge
  files:
  - application.properties
  - more.properties
- name: my-java-server-env-file-vars
  envs:
  - my-server-env.properties
  - more-server-props.env
- name: my-java-server-env-vars
  literals:
  - JAVA_HOME=/opt/java/jdk
  - JAVA_TOOL_OPTIONS=-agentlib:hprof
  options:
    disableNameSuffixHash: true
    labels:
      pet: dog
- name: dashboards
  files:
  - mydashboard.json
  options:
    annotations:
      dashboard: "1"
    labels:
      app.kubernetes.io/name: "app1"
这里也可以定义一个 key 来为文件设置不同名称。
下面这个示例会创建一个 ConfigMap,并将 whatever.ini 重命名为 myFileName.ini:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
configMapGenerator:
- name: app-whatever
  files:
  - myFileName.ini=whatever.ini
最后修改 2020年07月16日: Docs: Auto-fix markdownlint issues (f9ee578a)