【问题标题】:Kustomize - Merge multiple configMapGeneratorsKustomize - 合并多个 configMapGenerators
【发布时间】:2021-07-21 02:33:45
【问题描述】:

所以我正在处理这样的结构:

.
├── 1
│   ├── env-vars
│   └── kustomization.yaml
├── 2
│   ├── env-vars
│   └── kustomization.yaml
├── env-vars
├── kustomization.yaml
└── shared
    ├── env-vars
    └── kustomization.yaml

虽然每个级别中的 env-vars 都有一些 env vars 和

$cat kustomization.yaml
bases:
- 1/
- 2/

namePrefix: toplevel-

configMapGenerator:
  - name: env-cm
    behavior: merge
    envs:
    - env-vars
$cat 1/kustomization.yaml
bases:
- ./../shared

namePrefix: first-

configMapGenerator:
  - name: env-cm
    behavior: merge
    envs:
    - env-vars
$cat 2/kustomization.yaml
bases:
- ./../shared

namePrefix: second-

configMapGenerator:
  - name: env-cm
    behavior: merge
    envs:
    - env-vars
$cat shared/kustomization.yaml
configMapGenerator:
  - name: env-cm
    behavior: create
    envs:
    - env-vars

我实际上是在尝试创建 2 个具有一些共享值的配置映射(它们从不同的资源注入:来自 shared 目录和顶级目录)


kustomize build . 因查找多个对象时出现一些冲突错误而失败:

Error: merging from generator <blah>: found multiple objects <blah> that could accept merge of ~G_v1_ConfigMap|~X|env-cm

不幸的是,我需要在顶层 configMapGenerator 上使用 merge,因为有一些标签被注入到 12 配置映射中(所以 createing 顶层配置映射 altho 解决了 env -vars,但不包括标签)

感谢任何有关如何解决此问题的建议

【问题讨论】:

    标签: kubernetes configmap kustomize


    【解决方案1】:

    我相信这应该可以解决您的问题。

    kustomization.yaml位于base/:

    $ cat kustomization.yaml 
    resources:
    - ./1
    - ./2
    
    namePrefix: toplevel-
    
    configMapGenerator:
      - name: first-env-cm
        behavior: merge
        envs:
        - env-vars
      - name: second-env-cm
        behavior: merge
        envs:
        - env-vars
    

    在搜索的帮助下,我找到了this github issue,我会说同样的问题。然后是changes in code 的拉取请求。我们可以看到在kustomize 期间,渲染合并行为被更改为寻找currentId 而不是originalId。知道我们可以分别处理精确的“预渲染”配置映射。

    【讨论】:

      猜你喜欢
      • 2021-10-25
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多