Как обеспечить, чтобы изображение в конфигурации развертывания извлекалось только из потока изображений?

Я использую OpenShift 4.11. Я настроил ImageStream следующим образом:

      kind: ImageStream
apiVersion: image.openshift.io/v1
metadata:
  name: my-image
spec:
  lookupPolicy:
    local: true
  tags:
    - name: latest
      annotations: null
      from:
        kind: DockerImage
        name: 'my.repository.local/my-image:latest'
      importPolicy:
        scheduled: true
      referencePolicy:
        type: Source

Я ссылаюсь на это изображение как «my-image:latest» всвойство шаблона контейнера DeploymentConfig:

      kind: DeploymentConfig
apiVersion: apps.openshift.io/v1
metadata:
  name: some-app
spec:
  strategy:
    type: Rolling
    ...
  triggers:
    - type: ConfigChange
    - type: ImageTrigger
      imageChangeParams:
        automatic: true
        containerNames:
          - some-app
        from:
          kind: ImageStreamTag
          name: my-image:latest
  replicas: 2
    app: some-app
  template:
    metadata:
      labels:
        app: some-app
    spec:
      containers:
        - imagePullPolicy: Always
          image: my-image:latest

(секрет получения изображения, ограничения ресурсов и т. д. опущены)

Неполное имя изображения является проблематичным. Если я забуду сначала создать поток изображений, OpenShift попытается загрузить изображение из реестра по умолчанию, которым в моем случае является Docker Hub. Docker Hub не только затем получает вызов API, раскрывающий внутреннее имя образа компании, но также существует риск того, что образ действительно существует там, и мы запускаем код, который не собирались выполнять.

Есть ли способ заставить OpenShift либо брать изображение в DeploymentConfig из потока изображений, либо вообще не пытаться его разрешить?

Я не могу отключить доступ к Docker Hub глобально (это нужно другим проектам), но если я могу настроить это для каждого пространства имен, это тоже сработает.

Я попытался установить пустое имя изображения (не разрешено) или указать несуществующее имя изображения из внутреннего реестра, надеясь, что ImageTrigger заменит ссылку, но это происходит только тогда, когда тег обновляется в потоке, а не если он уже существует.

0 ответов

Другие вопросы по тегам