Use docker images from a custom registry

Using images from a private Docker registry may be useful in different situations: it may be related to storing images inside of a company, for privacy and security reasons, etc. In such cases, Percona XtraDB Cluster Operator allows to use a custom registry, and the following instruction illustrates how this can be done by the example of the Operator deployed in the OpenShift environment.

  1. First of all login to the OpenShift and create project.

    $ oc login
    Authentication required for https://192.168.1.100:8443 (openshift)
    Username: admin
    Password:
    Login successful.
    $ oc new-project pxc
    Now using project "pxc" on server "https://192.168.1.100:8443".
    
  2. There are two things you will need to configure your custom registry access:

    • the token for your user
    • your registry IP address.

    The token can be find out with the following command:

    $ oc whoami -t
    ADO8CqCDappWR4hxjfDqwijEHei31yXAvWg61Jg210s
    

    And the following one tells you the registry IP address:

    $ kubectl get services/docker-registry -n default
    NAME              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    docker-registry   ClusterIP   172.30.162.173   <none>        5000/TCP   1d
    
  3. Now you can use the obtained token and address to login to the registry:

    $ docker login -u admin -p ADO8CqCDappWR4hxjfDqwijEHei31yXAvWg61Jg210s 172.30.162.173:5000
    Login Succeeded
    
  4. Pull the needed image by its SHA digest:

    $ docker pull docker.io/perconalab/percona-xtradb-cluster-operator@sha256:841c07eef30605080bfe80e549f9332ab6b9755fcbc42aacbf86e4ac9ef0e444
    Trying to pull repository docker.io/perconalab/percona-xtradb-cluster-operator ...
    sha256:841c07eef30605080bfe80e549f9332ab6b9755fcbc42aacbf86e4ac9ef0e444: Pulling from docker.io/perconalab/percona-xtradb-cluster-operator
    Digest: sha256:841c07eef30605080bfe80e549f9332ab6b9755fcbc42aacbf86e4ac9ef0e444
    Status: Image is up to date for docker.io/perconalab/percona-xtradb-cluster-operator@sha256:841c07eef30605080bfe80e549f9332ab6b9755fcbc42aacbf86e4ac9ef0e444
    

    You can find correct names and SHA digests in the current list of the Operator-related images officially certified by Percona.

  5. The following way is used to push an image to the custom registry (into the OpenShift pxc project):

    $ docker tag \
        docker.io/perconalab/percona-xtradb-cluster-operator@sha256:841c07eef30605080bfe80e549f9332ab6b9755fcbc42aacbf86e4ac9ef0e444 \
        172.30.162.173:5000/pxc/percona-xtradb-cluster-operator:1.2.0
    $ docker push 172.30.162.173:5000/pxc/percona-xtradb-cluster-operator:1.2.0
    
  6. Check the image in the OpenShift registry with the following command:

    $ oc get is
    NAME                              DOCKER REPO                                                            TAGS      UPDATED
    percona-xtradb-cluster-operator   docker-registry.default.svc:5000/pxc/percona-xtradb-cluster-operator   1.7.0     2 hours ago
    
  7. When the custom registry image is Ok, put a Docker Repo + Tag string (it should look like docker-registry.default.svc:5000/pxc/percona-xtradb-cluster-operator:1.7.0) into the image: option in deploy/operator.yaml configuration file.

    Please note it is possible to specify imagePullSecrets option for all images, if the registry requires authentication.

  8. Repeat steps 3-5 for other images, and update corresponding options in the deploy/cr.yaml file.

  9. Now follow the standard Percona XtraDB Cluster Operator installation instruction.

Previous topic

Install Percona XtraDB Cluster on OpenShift

Next topic

Deploy Percona XtraDB Cluster with Service Broker

Contact Us

For free technical help, visit the Percona Community Forum.
To report bugs or submit feature requests, open a JIRA ticket.
For paid support and managed or professional services, contact Percona Sales.