本文档介绍了自动化规则,即系统可以自动对交付流水线执行的操作。例如,您可以配置交付流水线,以便在适当的情况下自动提升到特定目标。
您只能使用 Cloud Deploy 内置的自动化规则。 本文档中列出了可用的自动化规则。
可用的自动化规则
Cloud Deploy 提供以下自动化规则:
规则 | 说明 |
---|---|
promoteReleaseRule
|
成功后自动将某个版本提升到指定的目标
还能在上一个目标中逐步推出 |
advanceRolloutRule
|
从指定的 阶段进入下一阶段。 |
配置自动化规则
每条自动化规则的配置取决于具体规则。本部分介绍了所有规则共有的配置,以及如何配置每个可用规则。
以下部分介绍了特定于各自动化规则的配置。如需了解自动化本身的配置,请参阅自动化部署。
配置 promoteReleaseRule
自动化规则
promoteReleaseRule
规则会在成功发布到目标后提升您的版本。例如,如果您有三个目标,则可以设置此规则,以便在版本成功部署到第一个目标后,自动将其提升到第二个目标。
配置 promoteReleaseRule
自动化操作时,您可以指定要提升到 (destinationTargetId
) 或 @next
的目标。在 Automation
定义中指定的目标中成功完成发布后,发布即会提升到 destinationTargetId
中指定的目标,间隔时长为 wait
。
您还可以使用 destinationPhase
属性,在预期目标中将版本提升到特定阶段。
rules:
- promoteReleaseRule:
name: "[RULE_NAME]"
wait: [WAIT_TIME]
destinationTargetId: "[TO_TARGET]"
destinationPhase: "[TO_PHASE]"
其中:
[RULE_NAME]
是您要为此规则指定的任何名称。此名称在自动化资源中必须是唯一的。
[WAIT_TIME]
是版本准备好提升后在升级之前等待的时间(分钟)。例如
1m
。m
是必须的。默认值为
0
,表示没有等待时间。最长为20160m
(或 14 天)。[TO_TARGET]
是要提升到的目标的
targetId
。此属性也可以是
@next
,它会自动将版本提升到此自动化配置的selector.targets
属性中指定的目标之后的下一个目标。如果您省略destinationTargetId
的值,这就是默认值。[TO_PHASE]
是要提升到的阶段的阶段名称,例如
canary-25
或stable
。此属性是可选的;如果省略它,则版本会提升到目标中的第一阶段。
配置 advanceRolloutRule
自动化规则
在成功完成一个阶段后,advanceRolloutRule
会自动将您的发布推进到下一阶段。此自动化规则对于 Canary 部署非常有用。例如,如果您在目标上配置了 Canary 部署策略,其阶段为 25%
、50%
和 stable
,则可以配置一条自动化规则,在 50%
阶段结束后自动将阶段推进到 stable
。
配置 advanceRolloutRule
自动化操作时,您需要确定要从 sourcePhase
推进的阶段。
rules:
- advanceRolloutRule:
id: "[RULE]"
sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
wait: [WAIT_TIME]
其中:
[RULE]
是您要为此规则指定的任何名称。此名称在交付流水线中必须是唯一的。
[WAIT_TIME]
是发布准备就绪后等待发布的时长(以分钟为单位)。例如
1m
。m
是必须的。默认值为
0
,表示没有等待时间。最长为20160m
(或 14 天)。["[START_PHASE]", "[START_PHASE]"...]
是自动推进发布流程的一个或多个阶段。 也就是说,当列出的任何阶段成功完成时,发布会自动从该阶段推进到下一阶段。
阶段名称区分大小写。此外,这些阶段名称是可选的;如果您省略
sourcePhases
,则发布中的所有阶段都会自动推进。
后续步骤
请参阅快速入门:自动创建和发布版本。
详细了解 Cloud Deploy 中的部署自动化。