REST Resource: projects.locations.deliveryPipelines.automations

资源:Automation

Cloud Deploy API 中的 Automation 资源。

Automation 可以自动执行交付流水线中手动驱动的操作,包括目标之间的版本提升、发布修复以及发布部署策略推进。Automation 旨在减少持续交付流程中的人工干预。

JSON 表示法
{
  "name": string,
  "uid": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "etag": string,
  "suspended": boolean,
  "serviceAccount": string,
  "selector": {
    object (AutomationResourceSelector)
  },
  "rules": [
    {
      object (AutomationRule)
    }
  ]
}
字段
name

string

仅限输出。Automation 的名称。格式为 projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/automations/{automation}

uid

string

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

description

string

可选。Automation 的说明。长度上限为 255 个字符。

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"

annotations

map (key: string, value: string)

可选。用户注释。这些属性只能由用户设置和使用,Cloud Deploy 不能进行设置和使用。注解必须满足以下限制条件:

  • 注解是键值对。
  • 有效的注解键包含两个部分:可选的前缀和名称,以正斜线 (/) 分隔。
  • 名称段为必填项,且不得超过 63 个字符,以字母数字字符 ([a-z0-9A-Z]) 开头和结尾,中间可以有短划线 (-)、下划线 (_)、点 (.) 和字母数字字符。
  • 前缀是可选的。如果指定,前缀必须是 DNS 子网域:一系列以点(.) 分隔的 DNS 标签,总长度不超过 253 个字符,后跟斜杠 (/)。

如需了解详情,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set

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

labels

map (key: string, value: string)

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

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

另外,键和值不得超过 63 个字符。

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

etag

string

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

suspended

boolean

可选。暂停后,系统会停止执行自动化操作。

serviceAccount

string

必需。用于创建 Cloud Deploy 发布和发布资源的用户管理的 IAM 服务帐号的电子邮件地址。

selector

object (AutomationResourceSelector)

必需。要应用自动化操作的选定资源。

rules[]

object (AutomationRule)

必需。与 Automation 资源相关联的自动化规则列表。必须至少有一个规则,并且每个交付流水线最多只能有 250 条规则。注意:此处规则的顺序与执行顺序不同。

AutomationResourceSelector

AutomationResourceSelector 用于选择要应用自动化操作的资源。

JSON 表示法
{
  "targets": [
    {
      object (TargetAttribute)
    }
  ]
}
字段
targets[]

object (TargetAttribute)

包含有关目标的属性。

TargetAttribute

包含选择目标的条件。

JSON 表示法
{
  "id": string,
  "labels": {
    string: string,
    ...
  }
}
字段
id

string

Target 的 ID。此字段的值可以是以下值之一:* 目标名称的最后一部分。只需使用该 ID 即可确定引用*“*”的定位,即一个地理位置中的所有定位。

labels

map (key: string, value: string)

目标标签。

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

AutomationRule

AutomationRule 定义自动化 activity。

JSON 表示法
{

  // Union field rule can be only one of the following:
  "promoteReleaseRule": {
    object (PromoteReleaseRule)
  },
  "advanceRolloutRule": {
    object (AdvanceRolloutRule)
  },
  "repairRolloutRule": {
    object (RepairRolloutRule)
  }
  // End of list of possible types for union field rule.
}
字段
联合字段 rule。Automation 规则的配置。rule 只能是下列其中一项:
promoteReleaseRule

object (PromoteReleaseRule)

可选。PromoteReleaseRule 会自动将版本从当前目标提升到指定目标。

advanceRolloutRule

object (AdvanceRolloutRule)

可选。AdvanceRolloutRule 将自动推进成功完成的发布。

repairRolloutRule

object (RepairRolloutRule)

可选。RepairRolloutRule会自动修复失败的发布。

PromoteReleaseRule

PromoteRelease 规则会自动将版本从当前目标提升到指定目标。

JSON 表示法
{
  "id": string,
  "wait": string,
  "destinationTargetId": string,
  "condition": {
    object (AutomationRuleCondition)
  },
  "destinationPhase": string
}
字段
id

string

必需。规则的 ID。此 ID 在此规则所属的 Automation 资源中必须是唯一的。格式为 [a-z]([a-z0-9-]{0,61}[a-z0-9])?

wait

string (Duration format)

可选。版本在升级到下一个目标之前需要暂停的时长。

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

destinationTargetId

string

可选。此 Release 部署到的流水线中阶段的 ID。如果未指定,则默认为促销流程的下一阶段。此字段的值可以是以下值之一:

  • 目标名称的最后一部分。只需使用该 ID 即可确定目标是否为流水线中定义的促销序列中的阶段之一。
  • “@next”:提升序列中的下一个目标。
condition

object (AutomationRuleCondition)

仅限输出。有关 Automation 规则状态的信息。

destinationPhase

string

可选。此操作创建的发布的开始阶段。默认为第一阶段。

AutomationRuleCondition

AutomationRuleCondition 包含与 Automation 规则相关的条件。

JSON 表示法
{
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  }
}
字段
targetsPresentCondition

object (TargetsPresentCondition)

可选。有关规则中枚举目标的详细信息。

AdvanceRolloutRule

rollouts.advance 自动规则会自动将成功的发布推进到下一阶段。

JSON 表示法
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "wait": string,
  "condition": {
    object (AutomationRuleCondition)
  }
}
字段
id

string

必需。规则的 ID。此 ID 在此规则所属的 Automation 资源中必须是唯一的。格式为 [a-z]([a-z0-9-]{0,61}[a-z0-9])?

sourcePhases[]

string

可选。仅当阶段名称与列表中的任意一项匹配后继续。此值必须由小写字母、数字和连字符组成,以字母开头并以字母或数字结尾,长度上限为 63 个字符。也就是说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

wait

string (Duration format)

可选。发布完成后的等待时间。

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

condition

object (AutomationRuleCondition)

仅限输出。有关 Automation 规则状态的信息。

RepairRolloutRule

RepairRolloutRule自动化规则会自动修复失败的Rollout

JSON 表示法
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "jobs": [
    string
  ],
  "repairModes": [
    {
      object (RepairMode)
    }
  ],
  "condition": {
    object (AutomationRuleCondition)
  }
}
字段
id

string

必需。规则的 ID。此 ID 在此规则所属的 Automation 资源中必须是唯一的。格式为 [a-z]([a-z0-9-]{0,61}[a-z0-9])?

sourcePhases[]

string

可选。在这些阶段中,作业在失败时会被自动修复。仅当阶段名称与列表中的任意一项匹配后才继续;如果未指定,则适用于所有阶段。此值必须由小写字母、数字和连字符组成,以字母开头并以字母或数字结尾,长度上限为 63 个字符。也就是说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

jobs[]

string

可选。要修复的作业。仅当作业名称与列表中的任意一项匹配后才继续;如果未指定或为空,则适用于所有作业。包含该作业的阶段必须与 sourcePhase 中指定的阶段 ID 一致。此值必须由小写字母、数字和连字符组成,以字母开头并以字母或数字结尾,长度上限为 63 个字符。也就是说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

repairModes[]

object (RepairMode)

必需。定义失败作业的自动修复操作类型。

condition

object (AutomationRuleCondition)

仅限输出。有关“Automation”规则状态的信息。

RepairMode

修复操作的配置。

JSON 表示法
{

  // Union field mode can be only one of the following:
  "retry": {
    object (Retry)
  },
  "rollback": {
    object (Rollback)
  }
  // End of list of possible types for union field mode.
}
字段
联合字段 mode。要执行的修复操作。mode 只能是下列其中一项:
retry

object (Retry)

可选。重试失败的作业。

rollback

object (Rollback)

可选。回滚 Rollout

重试

重试失败的作业。

JSON 表示法
{
  "attempts": string,
  "wait": string,
  "backoffMode": enum (BackoffMode)
}
字段
attempts

string (int64 format)

必需。重试总次数。如果设置为 0,则会跳过重试;最小值为 1,最大值为 10。

wait

string (Duration format)

可选。首次重试的等待时间。默认值为 0,最大值为 14 天。

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

backoffMode

enum (BackoffMode)

可选。等待时间增加的方式。默认值为线性。如果 wait 为 0,系统会忽略退避模式。

回滚

回滚 Rollout

JSON 表示法
{
  "destinationPhase": string
}
字段
destinationPhase

string

可选。Rollout 的起始阶段 ID。如果未指定,Rollout 将在稳定阶段启动。

方法

create

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

delete

删除单个 Automation 操作资源。

get

获取单个 Automation 的详细信息。

list

列出指定项目和位置中的自动化操作。

patch

更新单个 Automation 资源的参数。