如何正确引用Azure DevOps Git子目录以支持Kustomize通过go-getter拉取资源
解决方案
你之前返回404的原因是误用了Azure DevOps网页端的文件浏览路径,go-getter拉取Git资源时遵循标准Git地址规则,不需要套用网页端的/tree///trees/这类路由格式,直接按以下规则构造地址即可:
标准go-getter拉取语法
拉取指定分支的子目录
go-getter "git::https://<pat-user>:<pat-token>@dev.azure.com/<tenant>/<project>/_git/<repo>//base/<folder-i-want>?ref=master" .
拉取指定标签的子目录
go-getter "git::https://<pat-user>:<pat-token>@dev.azure.com/<tenant>/<project>/_git/<repo>//base/<folder-i-want>?ref=test-tag" .
Kustomize 直接引用写法
在微服务仓的kustomization.yaml中可以直接按以下格式引用公共基础配置:
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: # 引用公共仓test-tag版本下的对应子目录配置 - git::https://<pat-user>:<pat-token>@dev.azure.com/<tenant>/<project>/_git/<repo>//base/<folder-i-want>?ref=test-tag
语法规则说明
- 地址开头必须加
git::前缀,强制go-getter将地址识别为Git源,避免和Azure DevOps的HTTPS网页路由混淆 - 仓库克隆地址和目标子目录之间用
//分隔,这是go-getter约定的子目录标识规则 - 版本指定使用
ref参数,支持分支名、标签名、提交哈希三种值,不要使用version参数 - 如果你使用旧版
visualstudio.com域名,规则完全一致,仅替换域名部分即可:go-getter "git::https://<pat-user>:<pat-token>@<tenant>.visualstudio.com/<project>/_git/<repo>//base/<folder-i-want>?ref=master" .
内容的提问来源于stack exchange,提问作者Robert Smith
相关产品推荐
相关产品推荐

