![如何使用 Kustomize 从不同 Git 存储库中的文件创建 configMap](https://linux22.com/image/787474/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Kustomize%20%E4%BB%8E%E4%B8%8D%E5%90%8C%20Git%20%E5%AD%98%E5%82%A8%E5%BA%93%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%20configMap.png)
我知道我可以使用 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。