openshift imagestream不跟踪私人docker repo

时间:2017-07-27 15:25:19

标签: image docker openshift openshift-origin

我有一个如下定义的图像流,带有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

如果还有其他配置,请告诉我

1 个答案:

答案 0 :(得分:3)

读:

  

6:如何告诉系统定期导入我的标签?什么时候我们   正在使用外部注册表,我们希望能够   定期重新导入图像以获取最新的安全更新等。   为此,我们将为oc标签命令使用--scheduled标志   这样:

     

oc tag docker.io/python:3.6.0 python:3.6 --scheduled

     

这将通知系统此特定图像流标记   应定期检查更新。目前,这个时期是   群集范围的设置,默认情况下,设置为15分钟。

     

只有指向外部docker注册表的图像流标记才可以   定期检查更新。

     

要删除定期检查,请重新运行上面的命令,但省略    - 计划的旗帜。这会将其行为重置为默认值