提升版本和管理审批

本页介绍了如何将现有 Cloud Deploy 版本提升到交付流水线进展中的下一个目标。

准备工作

本页面假定您已创建版本

提升版本

将版本部署到交付流水线中定义的目标时,您可以将其提升到下一个目标:

gcloud

gcloud deploy releases promote --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

其中:

RELEASE_NAME 是您要提升的版本的名称。

PIPELINE_NAME 是用于管理此版本部署的交付流水线的名称。

REGION 是创建版本所在区域的名称,例如 us-central1。这是必填项。

如需详细了解 gcloud deploy releases promote 命令,请参阅 Google Cloud SDK 参考文档。

控制台

  1. 打开“交付流水线”页面

  2. 点击交付流水线列表中显示的流水线。

    交付流水线详情页面显示交付流水线进展的图形表示。

    Google Cloud 控制台中的交付流水线直观显示

  3. 在交付流水线直观显示中的第一个目标上,点击提升

    此时将显示提升版本对话框。它会显示您要提升到的目标的详细信息。

  4. 点击升级

如果在创建版本后更改了交付流水线或目标,则 Cloud Deploy 会返回一条消息,指示可能不匹配,并提示您确认提升。您可以对该提示响应 n,并检查流水线版本之间的差异,然后再继续。如果您选择仍然提升,则将根据创建版本时定义的交付流水线的部署版本。如需详细了解流水线不匹配,请参阅每个版本的流水线实例

Cloud Deploy 会为进入目的地目标的版本创建 rollout,并将该版本排入队列以进行部署。部署版本后后,交付流水线直观显示会显示以下事实:

Google Cloud 控制台中的交付流水线直观显示

管理交付流水线的批准

您可以要求任何目标获得批准,也可以批准或拒绝发布到该目标的版本。

可通过使用 Pub/Sub 和 Cloud Deploy API,将工作流管理系统(例如 ServiceNow)或其他系统与 Cloud Deploy 集成,来以编程方式管理批准。

需要获得批准

如需要求批准任何目标,请在目标配置中将 requireApproval 设置为 true

     apiVersion: deploy.cloud.google.com/v1
     kind: Target
     metadata:
      name:
     description:
     requireApproval: true

如需了解更多详情,请参阅交付流水线配置

当发布处于待批准状态时,订阅 clouddeploy-approvals Pub/Sub 主题的用户或系统会收到通知,然后可以批准或拒绝发布。

使用并行部署时,您可以将多目标配置为需要审批。如果将应用提升到目标平台遭拒,控制器发布将失败,状态为 APPROVAL_REJECTED,并且系统不会创建子发布。

批准或拒绝发布

每个目标都需要批准才能部署到任何版本。提升到需要批准的目标时,Cloud Deploy 会向 clouddeploy-approvals 主题发布 Pub/Sub 消息。

具有 roles/clouddeploy.approver 角色的任何用户或服务账号都可以批准 Cloud Deploy 发布到需要批准的目标。

您的集成式工作流管理系统(使用服务通知收到需要批准的通知)可以使用 Cloud Deploy API 来批准或拒绝发布。

手动批准或拒绝

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Deploy 交付流水线页面,查看可用交付流水线的列表。

    打开“交付流水线”页面

    Google Cloud 控制台中会显示交付流水线列表。未显示已配置但未向 Cloud Deploy 服务注册的交付流水线。

  2. 点击交付流水线的名称。

    显示流水线直观显示效果。如果批准处于待处理状态,并且您具有 roles/clouddeploy.approver 角色或等效权限,则直观显示包含审核链接。

    交付流水线直观显示,正在等待批准

  3. 点击审核

    此时会显示待批准的发布列表。

    此流水线的发布,正在等待批准

  4. 点击审核

    此时会显示“批准发布”屏幕。

    正在等待批准的发布的详细信息

    清单差异标签页显示从当前部署的版本(如有)到您现在正要批准(或拒绝)的版本的已渲染清单的所有更改。

  5. 点击批准拒绝

    如果您批准,您的应用将部署到目标中。如果您拒绝,则不会部署应用,并且除非重新提升,否则无法获得批准。

gcloud

具有 roles/clouddeploy.approver 角色的用户可以手动批准或拒绝发布。如需批准,请执行以下操作:

gcloud deploy rollouts approve rollout-name --delivery-pipeline=pipeline-name \
                                                                   --region=region \
                                                                   --release=release-name

如需拒绝,请执行以下操作:

gcloud deploy rollouts reject rollout-name --delivery-pipeline=pipeline-name \
                                                                  --region=region \
                                                                  --release=release-name