Using External Images in CI
The ci-operator
config only allows referencing an image in the form of namespace/name:tag
, it does not allow the specification of arbitrary Docker pull specs. In order
to use external images, they need to be mirrored to QCI.
Mirror Public Images
If the source image is open to the public, we can mirror it to QCI by adding it into the configuration file in
the core-services/image-mirroring
folder of openshift/release
repository.
The above stanza indicates the image gcr.io/k8s-staging-boskos/boskos:latest
is pushed to QCI as quay.io/openshift/ci:ci_boskos_latest
and
registry.ci.openshift.org/ci/ci-tools-build-root:1.21
as quay.io/openshift/ci:ci_ci-tools-build-root_1.21
. The target of the mapping
supplementalCIImages
is of the form namespace/name:tag
and the source is specified either by image
or a reference of an imagestreamtag
on app.ci
. The latter kind of source is useful when the source image is on app.ci
, e.g., the output of a buildConfig
.
It takes a couple of hours to complete the mirroring after the change on the configuration file is merged.
Once the target image lands on QCI, it can be referenced in ci-operator’s config file as follows:
Warning
- We cannot mirror images from
docker.io
due to rate limiting constraints. Please, instead, push up an image to quay and mirror that to QCI. - Before DPTP-3915 is in place, the target should be chosen carefully to avoid overriding existing images in QCI. It can be verified by pulling the targeting image from QCI.
Mirror Private Images
It is not supported at the moment to mirror external private images to the central CI registry.