Spinnaker 构建不会在重新推送现有标签(如最新标签)时触发

Spinnaker build does not trigger on a re-push of an existing tag (like latest)

Spinnaker 文档说推送到 Docker 注册表将触发 Spinnaker Build。

我们已将自动触发器配置为 Docker 注册表 (AWS ECR)

然而,我们使用的标签是:latest

文档中写着Leave the Tag field blank. This will trigger on all new tags, but will not trigger on a re-push of an existing tag (like latest)

我想知道没有重新部署重推或同标签推送的原因是什么?

现有图像标记的 re-push 不能与 Docker 注册表的自动触发器配合使用的原因是部署可重复性。

作为 Spinnaker 存储库的维护者,他们在对问题的评论中提到:Spinnaker not triggering pipeline when new image is released to Docker registry:

This is the intended behavior for the docker registry triggers, since deploying from the same tag is not reproduceable. See more here. https://github.com/spinnaker/spinnaker/issues/2037#issuecomment-392570341

DevOps的角度看问题。 大三角帆 - 和 DevOps in general - prefers what is called "immutable infrastructure". Ref: search for "immutable" on Spinnaker homepage。不可变基础设施在维基百科上还没有我能找到的定义。代替维基百科定义,下面是一些关于不可变基础设施的参考 material,可在 Google:

上找到

对于这个问题的范围来说,只关注不可变基础设施的部署再现性方面就足够了。 可变图像或可变标签(latest 是可变标签)使部署重现性具有挑战性。 (现在只是 运行 docker run golang:latest go version,几周后就会明白我的意思。)因此,可变标签与使部署可重现、基础设施不变性和一般的 DevOps 相冲突。