Skip to main content
Version: Deploy 23.3

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 Remote 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 23.3.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:23.3.x
  • docker.io/library/busybox:stable
  • docker.io/xebialabs/release-operator:23.3.x
  • gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0

For nginx

  • docker.io/bitnami/nginx:1.22.1-debian-11-r44
  • docker.io/bitnami/nginx-ingress-controller:1.6.4-debian-11-r5

For haproxy

  • quay.io/jcmoraisjr/haproxy-ingress:v0.14.2

For embedded postgresql

  • docker.io/bitnami/postgresql:15.4.0-debian-11-r54
  • docker.io/bitnami/os-shell:11-debian-11-r90

For embedded rabbitmq

  • docker.io/bitnami/rabbitmq:3.12.7-debian-11-r0
  • docker.io/bitnami/os-shell:11-debian-11-r90

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:23.3.x
docker tag docker.io/xebialabs/xl-release:23.3.x myrepo_host/myrepo/xl-release:23.3.x
docker push myrepo_host/myrepo/xl-release:23.3.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