Skip to content

Loading images

This section presents how to load the HCL DX 9.5 images into your container image repository, tag them to fit your repository structure, and push them to your repository, so that all Nodes in your Kubernetes cluster can deploy HCL Digital Experience 9.5 Pods.

To use HCL Digital Experience 9.5 in your Kubernetes cluster, you have to make the container images available to all nodes of your cluster. Usually this is done by providing them through a container image repository.

Depending on your cloud provider, there may be different types of default container image repositories already configured. Refer to the documentation of your cloud provider for setup and use of such platform container image repository.

It is assumed that you have a repository configured and running, and is technically reachable from all your Kubernetes cluster nodes.

Tip

In the following guidance, the docker CLI is used as a command reference. Tools like Podman may also be used, but are not described in this documentation. The procedure for the use of such tools are the same.

Retrieving container images

You can either directly pull the HCL DX images from the HCL Harbor container image registry, or download the HCL Digital Experience 9.5 package, unpack it locally and load the images into your container registry. In both cases, you can load the images to your own container registry for others in your organization to access.

Configure the Helm chart image pull secret

It is possible to have your Kubernetes deployment pull images directly from a container registry. This requires all of your cluster nodes to be able to reach the container registry.

Ensure that you have configured your deployment to authenticate to the container registry, as described in Using ImagePullSecrets.

Tip

If you configure your deployment to use the HCL Harbor container registry you do not need to retrieve, re-tag and push the images manually. This is very handy for quick deployments or if you do not have a local container image registry. The steps to do this are described in the Using ImagePullSecrets page.

Pull directly from Harbor container registry

To access the harbor container registry, you need to log in with docker. This can easily be done using the following command:

docker login hclcr.io
# Enter your harbor username and CLI secret to login

You can obtain the CLI secret from harbor by navigating to your User Profile in HCL Harbor. You can copy it from the field called CLI secret.

After a successful login, you will see the message:

    Login Succeeded

You can now pull images from the Harbor container registry.

From HCL Digital Experience 9.5 package

The HCL Digital Experience 9.5 Container Update packages are provided in a compressed .zip file, that can easily be unzipped using a utility of your choice. Refer to the latest Container file listing topic for a list of the files contained in the .zip archive.

Unzip the archive.

To load the individual image files, you may use the following command, replacing the name of each image you would like to load. You will have to run this command multiple times to load all images.

# Command to load container image into local repository
# docker load < image-file-name.tar.gz
docker load < hcl-dx-core-image-v95_CFXXX_XXXXXXXX-XXXX.tar.gz

If you want to load all DX 9.5 CFxxx image files via one command, use the following command:

# Command to load all images at once
# Since HCL Digital Experience images are all containing the word "images", 
# we can filter for fitting tar.gz files
ls -f | grep image | xargs -L 1 docker load -i

This loads all images to your local repository, ready for further usage.

You may verify if the loading is successful with the following command:

# List all images
docker images

# Command output (minified, example)
REPOSITORY                                    TAG                                   IMAGE ID       CREATED         SIZE
hcl/dx/remote-search                          v95_CF195_20210514-1708               e4c46618f404   4 weeks ago     2.25GB
hcl/dx/cloud-operator                         v95_CF195_20210515-0201               62cc304706a3   4 weeks ago     220MB
hcl/dx/core                                   v95_CF195_20210514-1708               36e30c620cdd   4 weeks ago     6.29GB
hcl/dx/openldap                               v1.1.0-master_20210514_1621013302     a5519e06dd17   4 weeks ago     772MB
hcl/dx/image-processor                        v1.8.0_20210514-1712                  d5d99d86f81a   4 weeks ago     507MB
hcl/dx/digital-asset-manager                  v1.8.0_20210514-1711                  19c8b76b1cad   4 weeks ago     547MB
hcl/dx/digital-asset-management-operator      v95_CF195_20210514-1714               bc0f5638817a   4 weeks ago     218MB
hcl/dx/content-composer                       v1.8.0_20210514-1707                  62b7b54d3895   4 weeks ago     427MB
hcl/dx/postgres                               v1.8.0_20210514-1708                  d94672f395ad   4 weeks ago     498MB
hcl/dx/ringapi                                v1.8.0_20210514-1709                  505eebb52ebf   4 weeks ago     397MB

Load Images to Your Own Repository

Re-tag images

If you are using a Kubernetes cluster that is not configured to operate on your local machine, you may need to push the HCL Digital Experience 9.5 container images to a remote repository.

To do so, you need to re-tag the images to point to your remote repository.

Warning

Do not change the version tags of the DX 9.5 images, because they are used for uniquely identifying which versions of DX applications are running in your cluster.

You may re-tag any image using the following command:

# Re-tag an existing loaded image
# docker tag OLD_IMAGE_PATH:VERSION NEW_IMAGE_TAG:VERSION

# Example command for DX Core:
docker tag dx/core:v95_CF195_20210514-1708 my/test/repository/dx/core:v95_CF195_20210514-1708

If you want to prefix all HCL Digital Experience 9.5 container images with your repository structure, you may use the following command:

# Command to prefix all HCL Digital Experience container images
# export the prefix for the repository structure, without tailing slash
export REMOTE_REPO_PREFIX="my/test/repository"

# First we list all HCL Digital Experience 9.5 Images, then we remove the first line containing the header
# Then we execute the docker tag command, prefixing each image with the $REMOTE_REPO_PREFIX
docker images dx/* | tail -n +2 | awk -F ' ' '{system("docker tag " $1 ":" $2 " $REMOTE_REPO_PREFIX/" $1 ":" $2) }'

The output may be verified by using the following command:

# List all images
docker images

# Command output (minified, example)

REPOSITORY                                                    TAG                                  IMAGE ID       CREATED         SIZE
hcl/dx/remote-search                                          v95_CF195_20210514-1708              e4c46618f404   4 weeks ago     2.25GB
my/test/repository/hcl/dx/remote-search                       v95_CF195_20210514-1708              e4c46618f404   4 weeks ago     2.25
hcl/dx/cloud-operator                                         v95_CF195_20210515-0201              62cc304706a3   4 weeks ago     220MB
my/test/repository/hcl/dx/cloud-operator                      v95_CF195_20210515-0201              62cc304706a3   4 weeks ago     220MB
hcl/dx/core                                                   v95_CF195_20210514-1708              36e30c620cdd   4 weeks ago     6.29GB
my/test/repository/hcl/dx/core                                v95_CF195_20210514-1708              6e30c620cdd    4 weeks ago     6.29GB
hcl/dx/openldap                                               v1.1.0-master_20210514_1621013302    a5519e06dd17   4 weeks ago     772MB
my/test/repository/hcl/dx/openldap                            v1.1.0-master_20210514_1621013302    a5519e06dd17   4 weeks ago     772MB
hcl/dx/image-processor                                        v1.8.0_20210514-1712                 d5d99d86f81a   4 weeks ago     507MB
my/test/repository/hcl/dx/image-processor                     v1.8.0_20210514-1712                 d5d99d86f81a   4 weeks ago     507MB
hcl/dx/digital-asset-manager                                  v1.8.0_20210514-1711                 19c8b76b1cad   4 weeks ago     547MB
my/test/repository/hcl/dx/digital-asset-manager               v1.8.0_20210514-1711                 19c8b76b1cad   4 weeks ago     547MB
hcl/dx/digital-asset-management-operator                      v95_CF195_20210514-1714              bc0f5638817a   4 weeks ago     218MB
my/test/repository/hcl/dx/digital-asset-management-operator   v95_CF195_20210514-1714              bc0f5638817a   4 weeks ago     218MB
my/test/repository/hcl/dx/content-composer                    v1.8.0_20210514-1707                 62b7b54d3895   4 weeks ago     427MB
hcl/dx/content-composer                                       v1.8.0_20210514-1707                 62b7b54d3895   4 weeks ago     427MB 
hcl/dx/postgres                                               v1.8.0_20210514-1708                 d94672f395ad   4 weeks ago     498MB
my/test/repository/hcl/dx/postgres                            v1.8.0_20210514-1708                 d94672f395ad   4 weeks ago     498MB
hcl/dx/ringapi                                                v1.8.0_20210514-1709                 505eebb52ebf   4 weeks ago     397MB
my/test/repository/hcl/dx/ringapi                             v1.8.0_20210514-1709                 505eebb52ebf   4 weeks ago     397MB

Push to repository

You may use the following command to push the container images to your repository:

# Push the new tagged images
# docker push NEW_IMAGE_TAG:VERSION
# Example command for core:
docker push my/test/repository/dx/core:v95_CF195_20210514-1708

If you want to push all your locally processed images, use the following command:

# Command to push all HCL Digital Experience images to a remote repository
# export the prefix for the repository structure, without tailing slash
export REMOTE_REPO_PREFIX="my/test/repository"

# Push the images, first we filter for the ones necessary
# Second we execute a docker push for each image
docker images $REMOTE_REPO_PREFIX/dx/* | awk -F ' ' '{system("docker push " $1 ":" $2)}'

After running this command, Docker goes ahead and pushes the images to your remote repository. After the push, the container images are now ready for use by your Kubernetes cluster.

Adjust deployment configuration

After you have successfully prepared all DX 9.5 images, you need to configure the images inside your custom-values.yaml.

The following syntax may be used to define the correct image configuration for your environment:

Note

If deploying to a Hybrid environment, with DX 9.5 Container Update CF198 or later, the Core needs to be set as false, since Core is already installed to an On-premise Server.

Note

From CF205 onwards, the image name and tag configuration of the Helm Chart is pre-filled using the default image names and matching version tags for the respective version of DX. You might need to re-adjust these if you have renamed/re-tagged the images in your local container image repository.

If you want to use the HCL Harbor container registry, ensure to configure your target repository accordingly and have the ImagePullSecret configured:

images:
  # Configure the HCL Harbor registry repository
  repository: "hclcr.io"
  # Use the image pull secret configured before
  imagePullSecrets:
    - name: "dx-harbor"
# Fill in the values fitting to your configuration
# Ensure to use the correct image version tags
images:
    repository: "my/test/repository"
    # Image tag for each application
    tags:
    contentComposer: "v95_CFXXX_XXXXXXXX-XXXX"
    core: "v95_CFXXX_XXXXXXXX-XXXX"
    digitalAssetManagement: "vX.X.X_XXXXXXXX-XXXX"
    imageProcessor: "vX.X.X_XXXXXXXX-XXXX"
    openLdap: "vX.X.X_XXXXXXXX-XXXX"
    persistence: "vX.X.X_XXXXXXXX-XXXX"
    remoteSearch: "v95_CFXXX_XXXXXXXX-XXXX"
    ringApi: "vX.X.X_XXXXXXXX-XXXX"
    runtimeController: "vX.X.X_XXXXXXXX-XXXX"
    # Image name for each application
    names:
    contentComposer: "dx/content-composer"
    core: "dx/core"
    digitalAssetManagement: "dx/digital-asset-manager"
    imageProcessor: "dx/image-processor"
    openLdap: "dx/openldap"
    persistence: "dx/postgres"
    remoteSearch: "dx/remote-search"
    ringApi: "dx/ringapi"
    runtimeController: "dx/runtime-controller"

Additional Tasks

If your remote repository requires access credentials, it is necessary to configure an ImagePullSecret to allow your cluster nodes to have proper access to the HCL DX 9.5 container images. This is also required if you want to use the HCL Harbor container registry directly.

Please refer to Using ImagePullSecrets topic for instructions on how to configure this.