我们不能让云部署作业在另一个项目的私有池中运行渲染或部署,我们可以让它使用托管云部署的项目中的私有池。
按照这里:https://cloud.google.com/deploy/docs/execution-environment#changing_from_the_default_pool_to_a_private_pool和这里:https://cloud.google.com/build/docs/private-pools/set-up-private-pool-environment#setup-private-connection的云部署设置的文档,我已经创建了一个带有以下参数的clouddeploy.yaml:
apiVersion: deploy.cloud.google.com/v1beta1
kind: Target
metadata:
name: k8-target
description: apply development
requireApproval: false
gke:
cluster: projects/development-k8-cluster/locations/europe-west1/clusters/development-k8
executionConfigs:
- privatePool:
workerPool: projects/vpchost-project-development/locations/europe-west1/workerPools/cloudddeploy-pool
usages:
- RENDER
- DEPLOY总结:有一个cloudbuild项目,一个k8s项目和一个clouddeploy项目。然而,无论我做什么,我都不能让云部署作业在另一个项目的私有池中运行渲染或部署。它确实可以运行,但在clouddeploy项目本身中。在部署阶段之前,没有日志或错误。cloudbuild要么在clouddeploy项目中启动,而不是在私有池项目中启动,要么最终超时,管道仍然停滞,因为没有取消功能。
我已经给了clouddeploy服务帐户、cloudbuild服务帐户、自定义服务帐户(在上面的yaml中没有显示)和默认的计算服务帐户:所有者权限、云部署运行者权限、云构建所有者和工作者池用户权限。
来自cloud deploy的请求看起来是空的,除了在提交作业时创建的运行ID:cloud beta deploy releases create。
在选择部署版本之后,该作业将不会执行任何操作,直到超时。
有没有人能看到我做错了什么,或者有没有人成功做到了?
根据其中一位贡献者的评论进行编辑:我希望'privatePool‘字段被填充,并在云部署主机项目或云构建项目中运行作业,但这两个项目中都没有活动。
发布于 2021-11-05 15:59:55
您可以使用另一个项目的私有池,但Cloud Build实例(以及构建和日志的显示位置)将始终位于Cloud Deploy管道所在的项目中
请注意,为了实现这一点,您需要授予跨项目使用该池的权限(请参阅:https://cloud.google.com/deploy/docs/execution-environment#changing_from_the_default_pool_to_a_private_pool下的注释)
要显示日志,您需要确保运行构建的服务帐户在交付管道所在的同一项目中具有日志记录权限。
如果用于构建的服务帐户与Cloud Deploy不在同一项目中,则还需要授予Cloud Deploy使用该服务帐户的act-as权限
https://stackoverflow.com/questions/69829161
复制相似问题