Installing Image Puller using the Che Operator

This section describes how to use the Che Operator to install the Image Puller, which is a community-supported feature in the technology preview state.

Prerequisites
Procedure
  1. Enable Image Puller in the CheCluster Custom Resource by setting .spec.imagePuller.enable to true:

    apiVersion: org.eclipse.che/v1
    kind: CheCluster
    metadata:
      name: eclipse-che
    spec:
      # ...
      imagePuller:
        enable: true
  2. Configure Image Puller in the CheCluster Custom Resource:

    apiVersion: org.eclipse.che/v1
    kind: CheCluster
    metadata:
      name: eclipse-che
    spec:
      ...
      imagePuller:
        enable: true
        spec:
            configMapName: <kubernetes-image-puller>
            daemonsetName: <kubernetes-image-puller>
            deploymentName: <kubernetes-image-puller>
            images: java11-maven=quay.io/eclipse/che-java11-maven:nightly;che-theia=quay.io/eclipse/che-theia:next;java-plugin-runner=eclipse/che-remote-plugin-runner-java8:latest;
Default images
  • The Che Operator populates the .spec.imagePuller.spec.images field with default images used for workspace startup (Theia images, plug-in broker images, sidecar plug-in images), provided that no images were added to this field before creating the CheCluster Custom Resource. The Che Operator updates the default images in the .spec.imagePuller.spec.images field after every rollout update of Che. However, if images were added to the .spec.imagePuller.spec.images field before creating the CheCluster Custom Resource, the Che Operator will not add default images.

  • If user-provided images are added to the .spec.imagePuller.spec.images field after creating the CheCluster Custom Resource, the Che Operator will still update default images on subsequent Che rollout updates. Non-default images remain unchanged in the .spec.imagePuller.spec.images field after rollout updates.

Verification
  • Kubernetes or OpenShift creates a kubernetes-image-puller-operator Subscription.

  • The eclipse-che namespace contains a Kubernetes Image Puller Operator ClusterServiceVersion:

    $ kubectl get clusterserviceversions
  • The eclipse-che namespace contains these deployments: kubernetes-image-puller and kubernetes-image-puller-operator.

    $ kubectl get deployments
  • The Kubernetes Image Puller Operator creates a KubernetesImagePuller Custom Resource:

    $ kubectl get kubernetesimagepullers
Uninstalling Image Puller using Che Operator
  1. Edit the CheCluster Custom Resource and set .spec.imagePuller.enable to false.

  2. Edit the CheCluster Custom Resource and set the .spec.imagePuller.spec to configure the optional Image Puller parameters for the Che Operator.