Configuring a Namespace on IBM Container Registry (ICR)

You can use a namespace of IBM Container Registry to host Camel K images.

In order to push images to icr.io, you need to provide valid credentials (secret) to Camel K.

Creating a Namespace

The fast way to obtain a namespace on ICR is by IBM Command line tool:

  • Install IBM Command line tool:

    $ ibmcloud plugin install container-registry -r 'IBM Cloud'
  • Log in to your IBM Cloud account:

    $ ibmcloud login -a https://cloud.ibm.com
  • Ensure that you’re targeting the correct IBM Cloud Container Registry region:

    $ ibmcloud cr region-set us-south
  • Choose a name for your namespace, and create that namespace:

    $ ibmcloud cr namespace-add <my_namespace>

Providing Registry Secret

Once you have a registry namespace, create a secret with the credentials in order for Camel K to access it.

Firstly, make sure to log in to ICR so that the local Docker config file has the credentials for it:

$ ibmcloud cr login

Then create a secret with the Docker config file $HOME/.docker/config.json (or in case of Podman, $XDG_RUNTIME_DIR/containers/auth.json):

$ kubectl create secret generic my-icr-secret --from-file=.dockerconfigjson=$HOME/.docker/config.json --type=kubernetes.io/dockerconfigjson

Now you can proceed to install Camel K with the following command:

$ kamel install --registry <region>.icr.io --organization <my_namespace> --registry-secret my-icr-secret