#amazon-web-services #openshift #amazon-ecr
#amazon-web-services #openshift #amazon-ecr
Вопрос:
У меня есть развертывание openshift с BuildConfig следующим образом:
apiVersion: v1
kind: BuildConfig
metadata:
name: '#OKD_COMPONENT_NAME#'
spec:
output:
to:
kind: ImageStreamTag
name: '#OKD_COMPONENT_NAME#:latest'
runPolicy: SerialLatestOnly
source:
git:
uri: '#CI_REPOSITORY_URL#'
ref: '#CI_COMMIT_REF_NAME#'
type: Git
contextDir: #OKD_COMPONENT_NAME#
strategy:
dockerStrategy:
buildArgs:
- name: "CA_HOSTS_LIST"
value: "get-ca-cert.apps.test.fr:443 get-ca-cert.apps.test.fr:443 get-ca-cert.apps.test.fr:443"
type: Docker
triggers:
- type: ConfigChange
- imageChange: {}
type: ImageChange
В конце сборки openshift создает изображение и помещает его во внутренний реестр.
Проблема в том, что я хочу скопировать эту сборку изображения и перенести ее во внутренний реестр openshift в AWS ECR. Модули openshift должны создаваться с изображениями во внутреннем реестре openshift, но я просто хочу, чтобы копия этого изображения также автоматически помещалась во внутренний реестр в AWS ECR.
Есть ли способ, которым это можно достичь?
Ответ №1:
Я не тестировал это, но oc image mirror
команда может подойти для вашего варианта использования, см. Передача изображений для получения более подробной информации. Эта команда может скопировать изображение из реестра в несколько реестров. Например, показано, как скопировать внутреннее изображение «image: latest» в docker.io
и quay.io
.
oc image mirror docker-registry.default.svc.cluster.local/project/image:latest
docker.io/project/image:stg
quay.io/project/image:prod
Для автоматизации вы можете сделать это с помощью скрипта, который реализует вышеуказанные задачи копирования, используя настройку триггера сборки после фиксации, или для этого вам может потребоваться более сложный процесс сборки, например, конвейер Дженкинса.