configMapGenerator | Kustomize

# configMapGenerator

生成 ConfigMap 资源.

列表中的每个条目都将生成一个 ConfigMap （合计可以生成 n 个 ConfigMap）。

下面的示例会生成 3 个ConfigMap：第一个带有给定文件的名称和内容，第二个将在 data 中添加 key/value，第三个通过 `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-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年06月15日: add zh docsy (518147c1)