Обновление образа во внешнем реестре докеров не запускает развертывание

Я импортирую следующий шаблон в веб-клиент OpenShift для создания ImageStream, DeploymentConfig & Service.

ImageStream создается из образа Docker, доступного во внешнем реестре Docker.

Кажется, все работает нормально, за исключением того факта, что при изменении образа Docker во внешнем реестре повторное развертывание не происходит.

Возможно ли с помощью Openshift и внешнего реестра запускать автоматическое развертывание при изменении образа Docker во внешнем реестре.

{
    "kind": "Template",
    "apiVersion": "v1",
    "metadata": {
        "name": "test-100"
    },
    "objects": [
        {
            "kind": "ImageStream",
            "apiVersion": "image.openshift.io/v1",
            "metadata": {
                "name": "test-100",
                "creationTimestamp": null,
                "labels": {
                    "app": "test-100"
                },
                "annotations": {
                    "openshift.io/generated-by": "OpenShiftNewApp"
                }
            },
            "spec": {
                "lookupPolicy": {
                    "local": false
                },
                "tags": [
                    {
                        "name": "latest",
                        "annotations": {
                            "openshift.io/imported-from": "artifactory.company.com/docker-dev-local/test/dev/test:latest"
                        },
                        "from": {
                            "kind": "DockerImage",
                            "name": "artifactory.company.com/docker-dev-local/test/dev/test:latest"
                        },
                        "generation": null,
                        "importPolicy": {},
                        "referencePolicy": {
                            "type": ""
                        }
                    }
                ]
            }
        },
        {
            "kind": "DeploymentConfig",
            "apiVersion": "apps.openshift.io/v1",
            "metadata": {
                "name": "test-100",
                "creationTimestamp": null,
                "labels": {
                    "app": "test-100"
                },
                "annotations": {
                    "openshift.io/generated-by": "OpenShiftNewApp"
                }
            },
            "spec": {
                "strategy": {
                    "resources": {}
                },
                "triggers": [
                    {
                        "type": "ConfigChange"
                    },
                    {
                        "type": "ImageChange",
                        "imageChangeParams": {
                            "automatic": true,
                            "containerNames": [
                                "test-100"
                            ],
                            "from": {
                                "kind": "ImageStreamTag",
                                "name": "test-100:latest"
                            }
                        }
                    }
                ],
                "replicas": 1,
                "test": false,
                "selector": {
                    "app": "test-100",
                    "deploymentconfig": "test-100"
                },
                "template": {
                    "metadata": {
                        "creationTimestamp": null,
                        "labels": {
                            "app": "test-100",
                            "deploymentconfig": "test-100"
                        },
                        "annotations": {
                            "openshift.io/generated-by": "OpenShiftNewApp"
                        }
                    },
                    "spec": {
                        "containers": [
                            {
                                "name": "test-100",
                                "image": "artifactory.company.com/docker-dev-local/test/dev/test:latest",
                                "ports": [
                                    {
                                        "containerPort": 8080,
                                        "protocol": "TCP"
                                    },
                                    {
                                        "containerPort": 8443,
                                        "protocol": "TCP"
                                    },
                                    {
                                        "containerPort": 8778,
                                        "protocol": "TCP"
                                    }
                                ],
                                "resources": {}
                            }
                        ]
                    }
                }
            }
        },
        {
            "kind": "Service",
            "apiVersion": "v1",
            "metadata": {
                "name": "test-100",
                "creationTimestamp": null,
                "labels": {
                    "app": "test-100"
                },
                "annotations": {
                    "openshift.io/generated-by": "OpenShiftNewApp"
                }
            },
            "spec": {
                "ports": [
                    {
                        "name": "8080-tcp",
                        "protocol": "TCP",
                        "port": 8080,
                        "targetPort": 8080
                    },
                    {
                        "name": "8443-tcp",
                        "protocol": "TCP",
                        "port": 8443,
                        "targetPort": 8443
                    },
                    {
                        "name": "8778-tcp",
                        "protocol": "TCP",
                        "port": 8778,
                        "targetPort": 8778
                    }
                ],
                "selector": {
                    "app": "test-100",
                    "deploymentconfig": "test-100"
                }
            }
        }
    ]
}

person niklodeon    schedule 19.10.2019    source источник


Ответы (1)


OpenShift не может обнаружить изменения изображения во внешнем реестре. Поэтому вам следует настроить importPolicy.scheduled: true для обновления изображения.

например> вы можете настроить imagePolicy для каждого тега изображения.

apiVersion: v1
kind: ImageStream
metadata:
  name: ruby
spec:
  tags:
  - from:
      kind: DockerImage
      name: openshift/ruby-20-centos7
    name: latest
    importPolicy:
      scheduled: true

По умолчанию интервал составляет 15 минут. Если вы хотите изменить значение, вы можете настроить конфигурацию с /etc/origin/master/master-config.yaml следующим образом.

например,> ScheduledImageImportMinimumIntervalSeconds - интервал времени для импорта потока изображений. См. Конфигурация политики изображений для получения подробной информации о других параметрах.

imagePolicyConfig:
  MaxScheduledImageImportsPerMinute: 10  
  ScheduledImageImportMinimumIntervalSeconds: 1800
  disableScheduledImport: false
  maxImagesBulkImportedPerRepository: 3

Дополнительная информация находится здесь: Автоматически обновлять Образы контейнеров Red Hat в OpenShift 3.11.

person Daein Park    schedule 19.10.2019