我有一个如下定义的图像流,带有openshift原点。当我在openshift中创建,导入或更新图像流对象时,它将自动获取docker repo中定义的任何标记。当我通过docker(即docker push <private-repo-host-and-port>/myimage
)推送图像时,图像流不会更新为docker中的新图像。我必须手动更新图像流或重新导入它或重新创建它。此外,我还有一个openshift构建设置,它输出到图像流,当构建成功完成时,它将构建的输出图像推送到私有docker repo,但是图像流没有接收到它,除非我重新导入或更新或重新创建图像流 - 它不会自动执行。我有部署配置设置为接收图像流的更新,它确实在图像流更新时触发新部署,但我必须手动更新图像流。
如果基于它的后备私有docker repo更新,我如何让imagestream自动更新?
apiVersion: v1
kind: ImageStream
metadata:
name: isname
namespace: mynamespace
labels:
deployment-id: master
name: isname
namespace: mynamespace
spec:
dockerImageRepository: '<private-repo-host-and-port>/myimage'
tags:
- name: latest
from:
kind: DockerImage
name: '<private-repo-host-and-port>/myimage:latest'
importPolicy:
scheduled: true
如果还有其他配置,请告诉我
答案 0 :(得分:3)
读:
6:如何告诉系统定期导入我的标签?什么时候我们 正在使用外部注册表,我们希望能够 定期重新导入图像以获取最新的安全更新等。 为此,我们将为oc标签命令使用--scheduled标志 这样:
oc tag docker.io/python:3.6.0 python:3.6 --scheduled
这将通知系统此特定图像流标记 应定期检查更新。目前,这个时期是 群集范围的设置,默认情况下,设置为15分钟。
只有指向外部docker注册表的图像流标记才可以 定期检查更新。
要删除定期检查,请重新运行上面的命令,但省略 - 计划的旗帜。这会将其行为重置为默认值