如何通过Kustomize从其他Git仓库创建ConfigMap?
Kustomize能否从外部Git仓库文件生成ConfigMap?
结论
Kustomize的configMapGenerator不支持直接通过Git URL引用外部仓库的文件来生成ConfigMap。
原因
configMapGenerator的files字段仅接受本地文件路径(即和当前kustomization.yaml处于同一本地目录/仓库内的文件)。你尝试用的git::ssh://...格式是Kustomize用来引用外部K8s资源清单(比如其他仓库里的Deployment、Service)的语法,但这个语法并不适用于configMapGenerator的文件引用。
可行替代方案
提前拉取外部文件到本地
可以通过Git子模块或者CI/CD流水线的前置步骤,把外部仓库的目标文件拉取到本地目录,再让configMapGenerator引用本地副本:- 添加Git子模块(如果是长期依赖):
git submodule add ssh://git@bitbucket.company.com:7999/proj/repo-name.git external-config - 修改
kustomization.yaml引用本地文件:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - deployment.yaml configMapGenerator: - name: my-config files: - external-config/config-file.json
- 添加Git子模块(如果是长期依赖):
CI/CD动态生成ConfigMap
在CI/CD流程中,先通过脚本拉取外部仓库的文件内容,直接生成包含该内容的ConfigMap资源清单,再让Kustomize引用这个生成的清单文件。
内容的提问来源于stack exchange,提问作者Alex Rodrigues
相关产品推荐
相关产品推荐

