- 资源: DeliveryPipeline
- 方法
资源: 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 ( |
字段 | |
---|---|
name |
可选。 |
uid |
仅限输出。 |
description |
|
annotations |
用户注释。这些属性只能由用户设置和使用,Cloud Deploy 不能进行设置和使用。 包含一系列 |
labels |
标签是用户和 Cloud Deploy 可以设置和使用的属性。标签必须满足以下限制条件:
此外,键和值均被限制为小于等于 128 个字节。 包含一系列 |
createTime |
仅限输出。流水线的创建时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
updateTime |
仅限输出。流水线的最近更新时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
condition |
仅限输出。有关交付流水线状态的信息。 |
etag |
此校验和由服务器根据其他字段的值计算,并且可能会在更新和删除请求时发送,以确保客户端在继续操作之前拥有最新的值。 |
suspended |
暂停后,用户将无法创建新的版本或发布,但会完成正在进行的发布或发布。 |
联合字段 pipeline 。DeliveryPipeline 的排序配置。pipeline 只能是下列其中一项: |
|
serialPipeline |
SerialPipeline 为 |
SerialPipeline
SerialPipeline 为 DeliveryPipeline
定义了一组顺序的阶段。
JSON 表示法 |
---|
{
"stages": [
{
object ( |
字段 | |
---|---|
stages[] |
每个阶段都会指定 |
阶段
Stage 会指定要部署到的位置。
JSON 表示法 |
---|
{ "targetId": string, "profiles": [ string ], "strategy": { object ( |
字段 | |
---|---|
targetId |
此阶段指向的目标 ID。此字段专门指目标名称的最后一部分。例如,此字段仅为 |
profiles[] |
为此阶段的 |
strategy |
可选。用于向此阶段的 |
deployParameters[] |
可选。在此阶段用于目标的部署参数。 |
策略
策略包含部署策略信息。
JSON 表示法 |
---|
{ // Union field |
字段 | |
---|---|
联合字段 deployment_strategy 。部署策略详情。deployment_strategy 只能是下列其中一项: |
|
standard |
标准部署策略执行单次部署并允许验证部署。 |
canary |
Canary 部署策略为目标提供基于百分比的渐进式部署。 |
标准
“标准”表示标准部署策略。
JSON 表示法 |
---|
{ "verify": boolean, "predeploy": { object ( |
字段 | |
---|---|
verify |
是否验证部署。 |
predeploy |
可选。部署前作业的配置。如果未配置此项,则不会显示部署前作业。 |
postdeploy |
可选。部署后作业的配置。如果未配置此属性,则部署后作业将不会显示。 |
部署前
部署前包含部署前作业配置信息。
JSON 表示法 |
---|
{ "actions": [ string ] } |
字段 | |
---|---|
actions[] |
可选。要在部署前作业执行期间调用的一系列 Skaffold 自定义操作。 |
部署后
部署后包含部署后作业配置信息。
JSON 表示法 |
---|
{ "actions": [ string ] } |
字段 | |
---|---|
actions[] |
可选。部署后作业执行期间要调用的一系列 Skaffold 自定义操作。 |
Canary 版
Canary 代表 Canary 部署策略。
JSON 表示法 |
---|
{ "runtimeConfig": { object ( |
字段 | |
---|---|
runtimeConfig |
可选。部署策略的运行时专用配置。运行时配置用于确定 Cloud Deploy 如何拆分流量以启用渐进式部署。 |
联合字段 mode 。用于 Canary 部署策略的模式。mode 只能是下列其中一项: |
|
canaryDeployment |
为目标配置基于渐进式部署。 |
customCanaryDeployment |
为目标配置基于渐进式部署,但允许在阶段级别进行自定义,其中阶段表示各个百分比部署。 |
RuntimeConfig
RuntimeConfig 包含部署策略的运行时专用配置。
JSON 表示法 |
---|
{ // Union field |
字段 | |
---|---|
联合字段 runtime_config 。运行时配置详细信息。runtime_config 只能是下列其中一项: |
|
kubernetes |
Kubernetes 运行时配置。 |
cloudRun |
Cloud Run 运行时配置。 |
KubernetesConfig
KubernetesConfig 包含 Kubernetes 运行时配置。
JSON 表示法 |
---|
{ // Union field |
字段 | |
---|---|
联合字段 service_definition 。服务定义配置。service_definition 只能是下列其中一项: |
|
gatewayServiceMesh |
Kubernetes Gateway API 服务网格配置。 |
serviceNetworking |
Kubernetes Service 网络配置。 |
GatewayServiceMesh
Kubernetes Gateway API 服务网格配置的相关信息。
JSON 表示法 |
---|
{ "httpRoute": string, "service": string, "deployment": string, "routeUpdateWaitTime": string, "stableCutbackDuration": string } |
字段 | |
---|---|
httpRoute |
必需。Gateway API HTTPRoute 的名称。 |
service |
必需。Kubernetes Service 的名称。 |
deployment |
必需。流量由指定的 HTTPRoute 和 Service 管理的 Kubernetes 部署的名称。 |
routeUpdateWaitTime |
可选。等待路由更新传播所需的时间。可配置时间最长为 3 小时(以秒为单位)。如果未指定,则没有等待时间。 该时长以秒为单位,最多包含九个小数位,以“ |
stableCutbackDuration |
可选。在稳定阶段部署期间,将流量从 Canary 版服务迁移回原始服务所用的时间。如果指定,则必须介于 15 秒到 3600 秒之间。如果未指定,则没有缩减时间。 该时长以秒为单位,最多包含九个小数位,以“ |
ServiceNetworking
有关 Kubernetes Service 网络配置的信息。
JSON 表示法 |
---|
{ "service": string, "deployment": string, "disablePodOverprovisioning": boolean } |
字段 | |
---|---|
service |
必需。Kubernetes Service 的名称。 |
deployment |
必需。流量由指定 Service 管理的 Kubernetes 部署的名称。 |
disablePodOverprovisioning |
可选。是否停用 Pod 超额预配。如果停用 Pod 超量预配,则 Cloud Deploy 会将用于部署策略的 Pod 总数限制为 Deployment 在集群上的 Pod 数量。 |
CloudRunConfig
CloudRunConfig 包含 Cloud Run 运行时配置。
JSON 表示法 |
---|
{ "automaticTrafficControl": boolean, "canaryRevisionTags": [ string ], "priorRevisionTags": [ string ], "stableRevisionTags": [ string ] } |
字段 | |
---|---|
automaticTrafficControl |
Cloud Deploy 是否应代表用户更新 Cloud Run 服务中的流量节以方便流量拆分。对于 CanaryDeployment,必须设置为 true,而对于 CustomCanaryDeployment,则为可选。 |
canaryRevisionTags[] |
可选。Canary 阶段正在进行时添加到 Canary 修订版本的标记列表。 |
priorRevisionTags[] |
可选。Canary 阶段正在进行时添加到先前修订版本的标记列表。 |
stableRevisionTags[] |
可选。在应用稳定阶段后添加到最终稳定修订版本的标记列表。 |
CanaryDeployment
CanaryDeployment 代表 Canary 部署配置
JSON 表示法 |
---|
{ "percentages": [ integer ], "verify": boolean, "predeploy": { object ( |
字段 | |
---|---|
percentages[] |
必需。作为 |
verify |
是否在完成每个百分比部署后运行验证测试。 |
predeploy |
可选。第一阶段的部署前作业的配置。如果未配置,则此阶段不会有部署前作业。 |
postdeploy |
可选。最后一个阶段的部署后作业的配置。如果未配置,则此阶段不会有部署后作业。 |
CustomCanaryDeployment
CustomCanaryDeployment 表示自定义 Canary 部署配置。
JSON 表示法 |
---|
{
"phaseConfigs": [
{
object ( |
字段 | |
---|---|
phaseConfigs[] |
必需。按照执行顺序,Canary 部署中每个阶段的配置。 |
PhaseConfig
PhaseConfig 表示自定义 Canary 部署中某个阶段的配置。
JSON 表示法 |
---|
{ "phaseId": string, "percentage": integer, "profiles": [ string ], "verify": boolean, "predeploy": { object ( |
字段 | |
---|---|
phaseId |
必需。要分配给 |
percentage |
必需。该阶段的部署百分比。 |
profiles[] |
渲染此阶段的清单时使用的 Skaffold 配置文件。这些是对 |
verify |
部署后是否运行验证测试。 |
predeploy |
可选。此阶段的部署前作业的配置。如果未配置,则此阶段不会有部署前作业。 |
postdeploy |
可选。此阶段的部署后作业的配置。如果未配置,则此阶段不会有部署后作业。 |
DeployParameters
DeployParameters 包含部署参数信息。
JSON 表示法 |
---|
{ "values": { string: string, ... }, "matchTargetLabels": { string: string, ... } } |
字段 | |
---|---|
values |
必需。值是键值对中的部署参数。 包含一系列 |
matchTargetLabels |
可选。部署参数会应用于具有匹配标签的目标。如果未指定,部署参数将应用于所有目标(包括多目标的子目标)。 包含一系列 |
PipelineCondition
PipelineCondition 包含与交付流水线相关的所有条件。
JSON 表示法 |
---|
{ "pipelineReadyCondition": { object ( |
字段 | |
---|---|
pipelineReadyCondition |
有关流水线整体状态的详细信息。 |
targetsPresentCondition |
有关流水线中枚举的目标的详细信息。 |
targetsTypeCondition |
有关流水线中枚举的目标是否属于同一类型的详细信息。 |
PipelineReadyCondition
PipelineReadyCondition 包含有关流水线状态的信息。
JSON 表示法 |
---|
{ "status": boolean, "updateTime": string } |
字段 | |
---|---|
status |
如果流水线处于有效状态,则为“true”。否则,“ |
updateTime |
上次更新条件的时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
TargetsTypeCondition
TargetsTypeCondition 包含有关交付管道中定义的目标是否为相同类型的信息。
JSON 表示法 |
---|
{ "status": boolean, "errorDetails": string } |
字段 | |
---|---|
status |
如果目标都是可比较类型,则为 true。例如,如果所有目标都是 GKE 集群,则为 true。如果一些目标是 Cloud Run 目标,而其他目标是 GKE 集群,则此值为 false。 |
errorDetails |
直观易懂的错误消息。 |
方法 |
|
---|---|
|
在给定的项目和位置中创建新的 DeliveryPipeline。 |
|
删除单个 DeliveryPipeline。 |
|
获取单个 DeliveryPipeline 的详细信息。 |
|
获取资源的访问权限控制政策。 |
|
列出给定项目和位置的 DeliveryPipeline。 |
|
更新单个 DeliveryPipeline 的参数。 |
|
创建 Rollout 以回滚指定目标。 |
|
设置指定资源的访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |