Могу ли я, чтобы сборка OpenShift запускала синхронизацию ImageStream из внешнего хранилища Docker? - PullRequest
0 голосов
/ 09 октября 2019

У меня есть OpenShift BuildConfig, который создает образ Docker, хранящийся в удаленном хранилище. DeploymentConfig использует OpenShift ImageStream для запуска развертывания, когда доступен новый образ. Мне удалось отправить в удаленное хранилище и синхронизировать ImageStream из удаленного хранилища. Однако, когда я запускаю новую сборку, ImageStream не синхронизируется автоматически с удаленным репо. Новые развертывания используют старый образ, пока это не произойдет. Я обнаружил, что я не могу иметь несколько полей spec.output.to в BuildConfig, или я просто перенесу его в оба места. Я установил поле importPolicy.scheduled: true, но по умолчанию он импортируется только каждые 15 минут, и в этот момент срабатывает триггер развертывания, и развертывается новая версия. Я бы не хотел ждать этого времени. Я бы предпочел не вносить глобальные изменения конфигурации для этого. Я бы с готовностью перешел в локальный репозиторий докеров и перевел его во внешний, если есть способ сделать это.

Как я могу быть уверен во время сборки, что ImageStream синхронизирован, так чторазвертывание запущено?

1 Ответ

0 голосов
/ 18 октября 2019

Мне удалось отправить на удаленный репозиторий и синхронизировать ImageStream с удаленного репозитория

. Чтобы дать хороший ответ, вам помогут дополнительные сведения о том, как вы это сделали. сильно.

Один из способов решения вашей проблемы - пометить реестр Docker несколькими тегами и прослушать один из этих тегов как запланированный imageStreamTag в вашем ImageStream. Это сделает его (в конце концов) развернутым. Вы можете сделать это в своем конвейере CI.

Если вы хотите развернуть его сразу после создания сборки, вам нужно сделать что-то вроде

oc tag my.regisstry/group/name:<myBuildTag> isName:isTagName 
...