【发布时间】:2018-09-21 20:06:51
【问题描述】:
现在我们的 DC(部署配置)已经硬编码了它:
/// dc.yaml
image: containers.nabisco.com/cdt-org/cdt-dev:latest
然后我们推出 dc:
$ oc rollout latest dc/cdtcae-prod-deployment
但是我注意到的一个问题是,有时“最新”标签指的是旧标签,而新标签不会被拉入 - 可能是 OpenShift 或 Kubernetes 的错误或其他问题。
目前,我们希望使用 git commit 哈希来唯一标识部署。
我的问题是 - 有没有办法覆盖/更新图像:上面的行,使用命令行,所以这一行:
image: containers.nabisco.com/cdt-org/cdt-dev:latest
会被这样的东西覆盖:
oc rollout --tag="$my_git_commit_hash" dc/cdtcae-prod-deployment
【问题讨论】:
-
image: containers.nabisco.com/cdt-org/cdt-dev:__TAG__然后sed -i 's/__TAG__/$my_git_commit_hash/' dc.yaml && <rollout_command> -
是的,我知道必须有正确的方法来做到这一点,这不涉及您正确建议的内容。我添加了一个答案,我认为这是这样做的方法。
-
有
oc set image命令。更大的问题是您是否在部署配置中使用ImageStream和ImageChange触发器。与直接在远程注册表中引用映像的部署配置相比,使用这些可以更灵活地更新部署使用的映像。
标签: kubernetes openshift openshift-3