创建交付流水线和目标

本页面介绍了如何创建交付流水线和目标,这些目标描述了 Cloud Deploy 将在何处以及如何部署应用。如需了解交付流水线和目标的 YAML 文件结构,请参阅配置文件架构

关于交付流水线和目标

您的交付流水线描述了部署目标进展。您可以在交付流水线所在的同一个文件或一个或多个单独的文件中定义这些目标。

创建交付流水线和目标定义文件或文件后,请对每个文件运行 gcloud deploy apply,以将它们注册为 Cloud Deploy 资源。

定义交付流水线和目标

此处介绍了交付流水线和目标配置文件的结构。

您可以随时调用此文件。按照惯例,包含目标定义的交付流水线配置命名为 clouddeploy.yaml,引用在一个或多个单独的文件中定义的目标的付流水线配置命名为 delivery-pipeline.yaml

目标可以指向 GKEGKE EnterpriseCloud Run。在交付流水线中,所有目标必须引用相同的运行时类型(例如,所有 GKE 或所有 GKE Enterprise)。

使用 Google Cloud 控制台创建交付流水线和目标

您可以使用 Google Cloud 控制台创建新的交付流水线和目标。这对于试用 Cloud Deploy 非常有用,但不适用于生产工作负载。(您还可以使用 Google Cloud 控制台创建版本。)

如需创建交付流水线,请执行以下操作:

  1. 交付流水线页面中,点击创建

  2. 提供名称(或保留默认值)和说明(可选)。

  3. 选择您的区域。

  4. 选择运行时环境。

    对于 GKE,请选择 Google Kubernetes Engine,或选择 Cloud Run(如果要部署到的运行时)。

  5. 新建目标下,提供名称(或保留默认值)。

  6. 如果您需要对此目标进行批准,请选中需要批准才能发布复选框。

  7. 如果您要对此目标使用 Canary 部署策略,请选中启用 Canary 复选框。

  8. 点击完成

  9. 点击添加目标,然后针对您要创建的每个其他目标执行以下步骤。

  10. 所有目标都完成后,点击创建以创建交付流水线和目标资源。

注册交付流水线和目标

如果您使用 Google Cloud 控制台创建流水线和目标,则无需执行此操作。

如需向 Cloud Deploy 注册交付流水线,请针对每个单独的定义文件运行一次 gcloud deploy apply。也就是说,如果您在三个文件中定义了三个目标,则需要运行该命令四次:一次用于交付流水线,一次用于每个目标。

以下命令将注册交付流水线及其在同一文件中定义的目标。

gcloud deploy apply --file=PIPELINE_CONFIG \
                    --region=LOCATION \
                    --project=PROJECT

您现在有了一个交付流水线,可用于管理版本部署以及在同一项目和区域中的任何交付流水线可以使用的目标资源。

单文件示例

此示例中的命令将注册一个交付流水线和一些目标,它们在同一文件中定义:

gcloud deploy apply --file=clouddeploy.yaml --region=us-central1

使用单独文件的示例

对于此示例,在三个单独的文件中定义了三个目标,因此运行四个命令:

gcloud deploy apply --file=delivery-pipeline.yaml --region=us-central1 && \
gcloud deploy apply --file=target_dev.yaml --region=us-central1 && \
gcloud deploy apply --file=target_staging.yaml --region=us-central1 && \
gcloud deploy apply --file=target_prod.yaml --region=us-central1

除非您设置了默认值(使用 gcloud config set deploy/region [REGION]),否则必须使用 --region 标志。交付流水线和流水线引用的所有目标的区域必须相同。

使用 Terraform 创建交付流水线和目标

您还可以使用 Google Cloud Terraform 提供程序创建交付流水线目标资源。

Google Cloud Beta 版 Terraform 提供方可能支持预览版 Cloud Deploy 功能。

修改现有流水线和目标

您可以稍后修改任何交付流水线或目标配置,并运行 gcloud deploy apply 以更新流水线或目标资源。但是,这些更改不会影响任何现有版本,因为它们由原始交付流水线管理

需要手动批准部署

如需要求手动批准给定目标,请在目标定义中添加以下属性:

requireApproval: true

默认值为 false。如果您在交付流水线配置中省略此属性,或者没有为它提供值,则部署到此目标不需要批准。(但是,尝试提升到目标的调用方仍然需要 clouddeploy.rollouts.create IAM 权限。)

您甚至可以要求手动批准第一个目标。使用 CLI 创建版本时,对于第一个目标,系统会自动创建 rollout。如果需要审批,Cloud Deploy 会创建 rollout,但在批准之前会处于待发布状态。

后续步骤