REST Resource: projects.locations.deliveryPipelines

资源: DeliveryPipeline

Cloud Deploy API 中的 DeliveryPipeline 资源。

DeliveryPipeline 定义了 Skaffold 配置可以通过的流水线。

JSON 表示法
{
  "name": string,
  "uid": string,
  "description": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "createTime": string,
  "updateTime": string,
  "condition": {
    object (PipelineCondition)
  },
  "etag": string,
  "suspended": boolean,

  // Union field pipeline can be only one of the following:
  "serialPipeline": {
    object (SerialPipeline)
  }
  // End of list of possible types for union field pipeline.
}
字段
name

string

可选。DeliveryPipeline 的名称。格式为 projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}deliveryPipeline 组成部分必须与 [a-z]([a-z0-9-]{0,61}[a-z0-9])? 一致

uid

string

仅限输出。DeliveryPipeline 的唯一标识符。

description

string

DeliveryPipeline 的说明。长度上限为 255 个字符。

annotations

map (key: string, value: string)

用户注释。这些属性只能由用户设置和使用,Cloud Deploy 不能进行设置和使用。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

labels

map (key: string, value: string)

标签是用户和 Cloud Deploy 可以设置和使用的属性。标签必须满足以下限制条件:

  • 键和值只能包含小写字母、数字字符、下划线和短划线。
  • 所有字符都必须使用 UTF-8 编码,且允许使用国际字符。
  • 键必须以小写字母或国际字符开头。
  • 每项资源最多可包含 64 个标签。

此外,键和值均被限制为小于等于 128 个字节。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

createTime

string (Timestamp format)

仅限输出。流水线的创建时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

仅限输出。流水线的最近更新时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

condition

object (PipelineCondition)

仅限输出。有关交付流水线状态的信息。

etag

string

此校验和由服务器根据其他字段的值计算,并且可能会在更新和删除请求时发送,以确保客户端在继续操作之前拥有最新的值。

suspended

boolean

暂停后,用户将无法创建新的版本或发布,但会完成正在进行的发布或发布。

联合字段 pipelineDeliveryPipeline 的排序配置。pipeline 只能是下列其中一项:
serialPipeline

object (SerialPipeline)

SerialPipeline 为 DeliveryPipeline 定义了一组顺序的阶段。

SerialPipeline

SerialPipeline 为 DeliveryPipeline 定义了一组顺序的阶段。

JSON 表示法
{
  "stages": [
    {
      object (Stage)
    }
  ]
}
字段
stages[]

object (Stage)

每个阶段都会指定 Target 的配置。此列表的顺序决定了推广流程。

阶段

Stage 会指定要部署到的位置。

JSON 表示法
{
  "targetId": string,
  "profiles": [
    string
  ],
  "strategy": {
    object (Strategy)
  },
  "deployParameters": [
    {
      object (DeployParameters)
    }
  ]
}
字段
targetId

string

此阶段指向的目标 ID。此字段专门指目标名称的最后一部分。例如,此字段仅为 my-target(而不是 projects/project/locations/location/targets/my-target)。系统会推断 Target 的位置与包含此 StageDeliveryPipeline 的位置相同。

profiles[]

string

为此阶段的 Target 呈现清单时要使用的 Skaffold 配置文件。

strategy

object (Strategy)

可选。用于向此阶段的 Rollout 的策略。

deployParameters[]

object (DeployParameters)

可选。在此阶段用于目标的部署参数。

策略

策略包含部署策略信息。

JSON 表示法
{

  // Union field deployment_strategy can be only one of the following:
  "standard": {
    object (Standard)
  },
  "canary": {
    object (Canary)
  }
  // End of list of possible types for union field deployment_strategy.
}
字段
联合字段 deployment_strategy。部署策略详情。deployment_strategy 只能是下列其中一项:
standard

object (Standard)

标准部署策略执行单次部署并允许验证部署。

canary

object (Canary)

Canary 部署策略为目标提供基于百分比的渐进式部署。

标准

“标准”表示标准部署策略。

JSON 表示法
{
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
字段
verify

boolean

是否验证部署。

predeploy

object (Predeploy)

可选。部署前作业的配置。如果未配置此项,则不会显示部署前作业。

postdeploy

object (Postdeploy)

可选。部署后作业的配置。如果未配置此属性,则部署后作业将不会显示。

部署前

部署前包含部署前作业配置信息。

JSON 表示法
{
  "actions": [
    string
  ]
}
字段
actions[]

string

可选。要在部署前作业执行期间调用的一系列 Skaffold 自定义操作。

部署后

部署后包含部署后作业配置信息。

JSON 表示法
{
  "actions": [
    string
  ]
}
字段
actions[]

string

可选。部署后作业执行期间要调用的一系列 Skaffold 自定义操作。

Canary 版

Canary 代表 Canary 部署策略。

JSON 表示法
{
  "runtimeConfig": {
    object (RuntimeConfig)
  },

  // Union field mode can be only one of the following:
  "canaryDeployment": {
    object (CanaryDeployment)
  },
  "customCanaryDeployment": {
    object (CustomCanaryDeployment)
  }
  // End of list of possible types for union field mode.
}
字段
runtimeConfig

object (RuntimeConfig)

可选。部署策略的运行时专用配置。运行时配置用于确定 Cloud Deploy 如何拆分流量以启用渐进式部署。

联合字段 mode。用于 Canary 部署策略的模式。mode 只能是下列其中一项:
canaryDeployment

object (CanaryDeployment)

为目标配置基于渐进式部署。

customCanaryDeployment

object (CustomCanaryDeployment)

为目标配置基于渐进式部署,但允许在阶段级别进行自定义,其中阶段表示各个百分比部署。

RuntimeConfig

RuntimeConfig 包含部署策略的运行时专用配置。

JSON 表示法
{

  // Union field runtime_config can be only one of the following:
  "kubernetes": {
    object (KubernetesConfig)
  },
  "cloudRun": {
    object (CloudRunConfig)
  }
  // End of list of possible types for union field runtime_config.
}
字段
联合字段 runtime_config。运行时配置详细信息。runtime_config 只能是下列其中一项:
kubernetes

object (KubernetesConfig)

Kubernetes 运行时配置。

cloudRun

object (CloudRunConfig)

Cloud Run 运行时配置。

KubernetesConfig

KubernetesConfig 包含 Kubernetes 运行时配置。

JSON 表示法
{

  // Union field service_definition can be only one of the following:
  "gatewayServiceMesh": {
    object (GatewayServiceMesh)
  },
  "serviceNetworking": {
    object (ServiceNetworking)
  }
  // End of list of possible types for union field service_definition.
}
字段
联合字段 service_definition。服务定义配置。service_definition 只能是下列其中一项:
gatewayServiceMesh

object (GatewayServiceMesh)

Kubernetes Gateway API 服务网格配置。

serviceNetworking

object (ServiceNetworking)

Kubernetes Service 网络配置。

GatewayServiceMesh

Kubernetes Gateway API 服务网格配置的相关信息。

JSON 表示法
{
  "httpRoute": string,
  "service": string,
  "deployment": string,
  "routeUpdateWaitTime": string,
  "stableCutbackDuration": string
}
字段
httpRoute

string

必需。Gateway API HTTPRoute 的名称。

service

string

必需。Kubernetes Service 的名称。

deployment

string

必需。流量由指定的 HTTPRoute 和 Service 管理的 Kubernetes 部署的名称。

routeUpdateWaitTime

string (Duration format)

可选。等待路由更新传播所需的时间。可配置时间最长为 3 小时(以秒为单位)。如果未指定,则没有等待时间。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

stableCutbackDuration

string (Duration format)

可选。在稳定阶段部署期间,将流量从 Canary 版服务迁移回原始服务所用的时间。如果指定,则必须介于 15 秒到 3600 秒之间。如果未指定,则没有缩减时间。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

ServiceNetworking

有关 Kubernetes Service 网络配置的信息。

JSON 表示法
{
  "service": string,
  "deployment": string,
  "disablePodOverprovisioning": boolean
}
字段
service

string

必需。Kubernetes Service 的名称。

deployment

string

必需。流量由指定 Service 管理的 Kubernetes 部署的名称。

disablePodOverprovisioning

boolean

可选。是否停用 Pod 超额预配。如果停用 Pod 超量预配,则 Cloud Deploy 会将用于部署策略的 Pod 总数限制为 Deployment 在集群上的 Pod 数量。

CloudRunConfig

CloudRunConfig 包含 Cloud Run 运行时配置。

JSON 表示法
{
  "automaticTrafficControl": boolean,
  "canaryRevisionTags": [
    string
  ],
  "priorRevisionTags": [
    string
  ],
  "stableRevisionTags": [
    string
  ]
}
字段
automaticTrafficControl

boolean

Cloud Deploy 是否应代表用户更新 Cloud Run 服务中的流量节以方便流量拆分。对于 CanaryDeployment,必须设置为 true,而对于 CustomCanaryDeployment,则为可选。

canaryRevisionTags[]

string

可选。Canary 阶段正在进行时添加到 Canary 修订版本的标记列表。

priorRevisionTags[]

string

可选。Canary 阶段正在进行时添加到先前修订版本的标记列表。

stableRevisionTags[]

string

可选。在应用稳定阶段后添加到最终稳定修订版本的标记列表。

CanaryDeployment

CanaryDeployment 代表 Canary 部署配置

JSON 表示法
{
  "percentages": [
    integer
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
字段
percentages[]

integer

必需。作为 Rollout 的一部分进行的部署(基于百分比)。列表应按升序排列,每个整数 n 均为 0 <= n < 100。

verify

boolean

是否在完成每个百分比部署后运行验证测试。

predeploy

object (Predeploy)

可选。第一阶段的部署前作业的配置。如果未配置,则此阶段不会有部署前作业。

postdeploy

object (Postdeploy)

可选。最后一个阶段的部署后作业的配置。如果未配置,则此阶段不会有部署后作业。

CustomCanaryDeployment

CustomCanaryDeployment 表示自定义 Canary 部署配置。

JSON 表示法
{
  "phaseConfigs": [
    {
      object (PhaseConfig)
    }
  ]
}
字段
phaseConfigs[]

object (PhaseConfig)

必需。按照执行顺序,Canary 部署中每个阶段的配置。

PhaseConfig

PhaseConfig 表示自定义 Canary 部署中某个阶段的配置。

JSON 表示法
{
  "phaseId": string,
  "percentage": integer,
  "profiles": [
    string
  ],
  "verify": boolean,
  "predeploy": {
    object (Predeploy)
  },
  "postdeploy": {
    object (Postdeploy)
  }
}
字段
phaseId

string

必需。要分配给 Rollout 阶段的 ID。此值必须由小写字母、数字和连字符组成,以字母开头并以字母或数字结尾,长度上限为 63 个字符。也就是说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

percentage

integer

必需。该阶段的部署百分比。

profiles[]

string

渲染此阶段的清单时使用的 Skaffold 配置文件。这些是对 DeliveryPipeline 阶段指定的配置文件列表的补充。

verify

boolean

部署后是否运行验证测试。

predeploy

object (Predeploy)

可选。此阶段的部署前作业的配置。如果未配置,则此阶段不会有部署前作业。

postdeploy

object (Postdeploy)

可选。此阶段的部署后作业的配置。如果未配置,则此阶段不会有部署后作业。

DeployParameters

DeployParameters 包含部署参数信息。

JSON 表示法
{
  "values": {
    string: string,
    ...
  },
  "matchTargetLabels": {
    string: string,
    ...
  }
}
字段
values

map (key: string, value: string)

必需。值是键值对中的部署参数。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

matchTargetLabels

map (key: string, value: string)

可选。部署参数会应用于具有匹配标签的目标。如果未指定,部署参数将应用于所有目标(包括多目标的子目标)。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

PipelineCondition

PipelineCondition 包含与交付流水线相关的所有条件。

JSON 表示法
{
  "pipelineReadyCondition": {
    object (PipelineReadyCondition)
  },
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  },
  "targetsTypeCondition": {
    object (TargetsTypeCondition)
  }
}
字段
pipelineReadyCondition

object (PipelineReadyCondition)

有关流水线整体状态的详细信息。

targetsPresentCondition

object (TargetsPresentCondition)

有关流水线中枚举的目标的详细信息。

targetsTypeCondition

object (TargetsTypeCondition)

有关流水线中枚举的目标是否属于同一类型的详细信息。

PipelineReadyCondition

PipelineReadyCondition 包含有关流水线状态的信息。

JSON 表示法
{
  "status": boolean,
  "updateTime": string
}
字段
status

boolean

如果流水线处于有效状态,则为“true”。否则,“PipelineCondition”中至少有一个条件处于无效状态。迭代这些条件,查看哪些条件的状态为 = false,以找出流水线存在的问题。

updateTime

string (Timestamp format)

上次更新条件的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

TargetsTypeCondition

TargetsTypeCondition 包含有关交付管道中定义的目标是否为相同类型的信息。

JSON 表示法
{
  "status": boolean,
  "errorDetails": string
}
字段
status

boolean

如果目标都是可比较类型,则为 true。例如,如果所有目标都是 GKE 集群,则为 true。如果一些目标是 Cloud Run 目标,而其他目标是 GKE 集群,则此值为 false。

errorDetails

string

直观易懂的错误消息。

方法

create

在给定的项目和位置中创建新的 DeliveryPipeline。

delete

删除单个 DeliveryPipeline。

get

获取单个 DeliveryPipeline 的详细信息。

getIamPolicy

获取资源的访问权限控制政策。

list

列出给定项目和位置的 DeliveryPipeline。

patch

更新单个 DeliveryPipeline 的参数。

rollbackTarget

创建 Rollout 以回滚指定目标。

setIamPolicy

设置指定资源的访问权限控制政策。

testIamPermissions

返回调用者对指定资源拥有的权限。