Docker镜像未使用Helm图表使用标签“ latest”从docker hub提取最新镜像

时间:2019-07-02 06:18:10

标签: docker kubernetes

当前,我使用jenkins,docker和kubernetes实现了一个测试CI / CD管道。我正在使用kubernetes掌舵图添加我的kubernetes资源并使用dokerhub作为图像存储库。当我检查已部署的api的输出时,其未使用修改后的更改进行更新。

当我检查Jenkins的控制台输出时,它成功显示了所有内容。但是最新的Docker镜像并未通过使用标签“ latest”来获取。直到我得到了较旧的输出。

在我的掌舵图中,我按如下所示添加了values.yaml,

imageCredentials:
  name: helmchartrepository
  registry: <my-registry-name>
  username: <my-username>
  password: <my-password>

image:
  repository: <my-repository>
  tag: latest
  pullPolicy: Always

我的deployment.yaml引用这些值,如下所示,

enter image description here

NB:即使我使用的配置是通过使用“ latest”从存储库中提取最新图像,但仍无法获得修改后的图像。而且也没有错误。唯一的问题是从dockerhub映像存储库中提取最新的docker映像。

有人可以帮助我解决此错误吗?

2 个答案:

答案 0 :(得分:2)

date: "{{ .Release.Time.Seconds }}"下的deployment中添加template/metadata/labels并设置imagePullPolicy: Always。 Helm将检测部署对象中的更改,并每次提取最新映像:

template:
    metadata:
      labels:
        app.kubernetes.io/name: {{ .Values.app.frontendName }}
        app.kubernetes.io/instance: {{ .Release.Name }}
        date: "{{ .Release.Time.Seconds }}"

运行helm upgrade releaseName ./my-chart升级您的版本

答案 1 :(得分:0)

Helm无法了解图像是否已更新。由于您使用的是最新的固定标签。您可以在元数据中添加一些标签,例如日期或时间戳,以识别更改。