Google Cloud Deploy使用跨项目Cloud Build私有池失败问题问询
问题根因与修复方案
你遇到的是跨项目私有池配置的常见问题,核心原因和修复步骤如下:
API版本兼容性问题
你当前使用的deploy.cloud.google.com/v1beta1版本的Target资源,仅支持Cloud Deploy所在项目内的私有池配置,跨项目私有池参数会被静默忽略,直接回退到Cloud Deploy项目的默认执行环境。这也是你看不到跨项目作业记录的核心原因。
修复方式:将clouddeploy.yaml的apiVersion修改为稳定版deploy.cloud.google.com/v1。配置拼写与权限漏配
- 你的配置中workerPool资源路径存在拼写错误:cloudddeploy-pool多了一个字母d,需和你在vpchost-project-development项目中实际创建的私有池名称完全匹配,否则Cloud Deploy会因找不到资源触发默认 fallback 逻辑。
- 你遗漏了关键的细粒度权限:Cloud Deploy的服务账号(格式为
service-<CloudDeploy项目数字ID>@gcp-sa-clouddeploy.iam.gserviceaccount.com),必须在私有池所属的vpchost-project-development项目中被授予Cloud Build WorkerPool User角色,仅配置全局权限或其他项目的权限无法生效。
- 配置优先级冲突
如果你同时在DeliveryPipeline层级配置了executionConfig,其优先级高于Target层级的配置,会覆盖你在Target中设置的私有池规则。你可以执行gcloud deploy delivery-pipelines describe <你的流水线名称> --location=europe-west1确认流水线层级没有配置默认执行环境。
验证步骤
修复上述问题后,执行gcloud deploy targets export k8-target --location=europe-west1确认配置已经正确同步到GCP,再重新创建发布版本,即可在私有池所属项目的Cloud Build作业列表中看到对应的RENDER、DEPLOY任务。
内容的提问来源于stack exchange,提问作者insidehustle
相关产品推荐
相关产品推荐

