如何使用 Kustomize 从不同 Git 存储库中的文件创建 configMap

如何使用 Kustomize 从不同 Git 存储库中的文件创建 configMap

我知道我可以使用 Kustomize 的 configMapGenerator 从与“kustomization.yaml”文件位于同一 Git 存储库中的文件创建 configmap。

例如:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - deployment.yaml
configMapGenerator:
- name: my-config
  files:
  - config-file.json

但是,是否可以从位于不同 Git 存储库的文件创建 configMap ?

例如:

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - deployment.yaml
configMapGenerator:
- name: my-config
  files:
  - git::ssh://[email protected]:7999/proj/repo-name.git//config-file.json

答案1

我认为您描述的用例的正确方法是定义一个base并创建一个引用远程基础并包含所需文件的特定覆盖,然后合并配置:

# base-project/base/kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - deployment.yaml
configMapGenerator:
- name: my-config
  files:
  - config-file.json

然后在你的其他项目上:

# some-other-project/kustomization.yaml

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - https://bitbucket.company.com/base-project//base?ref=v1.0.0
configMapGenerator:
- name: my-config
  behavior: merge
  files:
  - config-file.json

双斜杠是相关的,ref可以是任何分支或标签(例如main);我使用了 https,但你也可以设置直接 git 引用或使用重写规则,请参阅https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md

相关内容