Setup Custom Image Registry
In this article, you will learn how to set up a custom image registry to install or upgrade Release. A custom image registry can either be public (not password protected) or private (password protected).
The xl kube
installer has a question (Select type of image registry:
) to choose the default or custom public or private registry, which can be used to perform the setup on a custom image registry and image repository.
Important: This topic covers how to set up the custom image registry for you to install Release. Note that, for Deploy and Release runners, the steps are the same. Only the prerequisite images will vary.
Here's a detailed step-by-step.
Step 1 — Get Prerequisite Images
As a prerequisite, you must ensure that following images are available in the custom repository in your custom registry for version 24.1.x:
Note: The image versions may not match the latest release. We recommend checking the values.yaml for the most up-to-date versions.
docker.io/xebialabs/xl-release:<version>
docker.io/library/busybox:stable
docker.io/xebialabs/release-operator:<version>
docker.io/bitnami/os-shell:12-debian-12-r16
docker.io/xebialabs/xl-client:<version>
For nginx
docker.io/bitnami/nginx:1.26.0-debian-12-r1
docker.io/bitnami/nginx-ingress-controller:1.10.1-debian-12-r5
For haproxy
quay.io/jcmoraisjr/haproxy-ingress:v0.14.6
For embedded postgresql
docker.io/bitnami/postgresql:15.6.0-debian-12-r7
For embedded rabbitmq
docker.io/bitnami/rabbitmq:3.12.13-debian-12-r2
Step 2 — Push Images to Custom Image Registry
Note: Before pushing a Docker image to a registry, it's important to ensure that you're logged into the Docker registry.
For example:
You can create a Docker registry called myrepo_host
to push the Docker image xl-release
to the repository myrepo
. To do so, run the following command:
docker pull docker.io/xebialabs/xl-release:24.1.x
docker tag docker.io/xebialabs/xl-release:24.1.x myrepo_host/myrepo/xl-release:24.1.x
docker push myrepo_host/myrepo/xl-release:24.1.x
Examples
Custom Public Registry
The following example lists the questions asked when you select a custom public registry:
? Select type of image registry: public [Custom Public Registry (Uses a specific custom registry)]
? Enter the custom docker image registry name (eg: <imageRegistryName> from <imageRegistryName>/<repositoryName>/<imageName>:<tagName>): docker.io
? Enter the repository name for the application and operator images (eg: <repositoryName> from <repositoryName>/<imageName>:<tagName>): xebialabsunsupported
Custom Private Registry
The following example lists the questions asked when you select a custom private registry:
? Select type of image registry: private [Custom Private Registry - Password protected (Uses a specific custom registry with password)]
? Enter the custom docker image registry name (eg: <imageRegistryName> from <imageRegistryName>/<repositoryName>/<imageName>:<tagName>): docker.io
? Provide the custom docker image registry secret: private-registry
? Enter the repository name for the application and operator images (eg: <repositoryName> from <repositoryName>/<imageName>:<tagName>): [? for help] (xebialabsunsupported)
Note: It's required to create a secret when you use a private image registry.
Run the following command:
kubectl create secret docker-registry regcred \
--docker-server=myrepo_host \
--docker-username=<reg-user> \
--docker-password=<reg-password> \
-n digitalai