【问题标题】:Un-hardcode deploy config image tag name非硬编码部署配置图像标签名称
【发布时间】: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 命令。更大的问题是您是否在部署配置中使用ImageStreamImageChange 触发器。与直接在远程注册表中引用映像的部署配置相比,使用这些可以更灵活地更新部署使用的映像。

标签: kubernetes openshift openshift-3


【解决方案1】:

我听说最好的选择是在您的 yaml DC 配置中使用以下设置:

 imagePullPolicy: "Always"

那么你可以硬编码一些独特的值

image: containers.nabisco.com/cdt-org/cdt-dev:foobarbaz

它总是会拉最新的,而不是使用缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2014-12-12
    • 1970-01-01
    • 2012-06-27
    • 2018-10-29
    • 1970-01-01
    相关资源
    最近更新 更多