当您调用 Cloud Deploy 以创建要由交付流水线管理的新版本时,流水线和目标将会对该版本保留其当前状态。您仍然可以修改交付流水线和目标定义文件,但所做的更改仅影响未来的版本。
Cloud Deploy 为何这样做?
为了确保版本可靠且耐用,交付流水线及其关联资源会在创建版本时保留。此保留可以避免最近对交付流水线定义所做的更改影响版本,导致生成的清单无法适应。
这一点为什么非常重要?
如果创建版本后交付流水线发生了更改,Cloud Deploy 会根据之前的流水线定义(即在版本创建时的定义)而不是新定义提供版本。除非您或组织中的其他人期望该版本遵循更新后的流水线行为,否则不会出现这种行为。
这一点什么时候很重要?
当您提升
release
时第一次创建版本时,Cloud Deploy 会截取流水线的快照。该快照(流水线实例)是控制该
release
的部署周期的流水线版本。如果任何人修改流水线,然后您将版本提升到下一个目标,则 Cloud Deploy 会显示一条警告,通知您部署可能无法按预期运行。您可以通过确认或取消提升来做出响应。
gcloud deploy releases promote… WARNING: The delivery pipeline was modified since was created. This release will promote based on the state of the delivery pipeline at the time of release creation. It will not be rolled out to the pipeline in its current state. Promoting will result in . Learn more at: https://cloud.google.com/deploy/docs/pipeline-instances Are you sure you want to promote to ? Y/n
如果确认要继续,则版本将提升到预期的目标集群,并且根据在创建 release
时的定义配置了该目标。也就是说,对目标的更改不会影响该 release
。
当您批准
rollout
时与升级一样,如果您批准
rollout
,并且与版本关联的流水线实例与当前流水线定义之间不匹配,则 Cloud Deploy 会显示一条消息,告知您不匹配。您可以确认或取消批准。当您回滚
release
时。如果交付流水线或目标在
rollout
后发生更改,并且您尝试回滚,则会出现流水线不匹配。Cloud Deploy 会提示您确认您确实要回滚。在这种情况下,我们强烈建议您在回滚之前检查对交付流水线或目标的更改。