我知道我可以使用 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。