Caching images for faster workspace start

To improve the start time performance of Che workspaces, use the Image Puller, a Che-agnostic component that can be used to pre-pull images for Kubernetes or OpenShift clusters. The Image Puller is an additional Kubernetes or OpenShift deployment which creates a DaemonSet that can be configured to pre-pull relevant Che workspace images on each node. These images would already be available when a Che workspace starts, therefore improving the workspace start time.

The Image Puller provides the following parameters for configuration.

Table 1. Image Puller parameters
Parameter Usage Default

CACHING_INTERVAL_HOURS

DaemonSets health checks interval in hours

"1"

CACHING_MEMORY_REQUEST

The memory request for each cached image while the puller is running. See Defining the memory parameters for the Image Puller.

10Mi

CACHING_MEMORY_LIMIT

The memory limit for each cached image while the puller is running. See Defining the memory parameters for the Image Puller.

20Mi

CACHING_CPU_REQUEST

The processor request for each cached image while the puller is running

.05 or 50 millicores

CACHING_CPU_LIMIT

The processor limit for each cached image while the puller is running

.2 or 200 millicores

DAEMONSET_NAME

Name of DaemonSet to create

kubernetes-image-puller

DEPLOYMENT_NAME

Name of the Deployment to create

kubernetes-image-puller

NAMESPACE

Kubernetes namespace or OpenShift project containing DaemonSet to create

k8s-image-puller

IMAGES

Semicolon-separated list of images to pull, in the format <name1>=<image1>;<name2>=<image2>. See Defining the list of images to pull.

NODE_SELECTOR

Node selector to apply to the pods created by the DaemonSet

'{}'

AFFINITY

Affinity applied to pods created by the DaemonSet

'{}'

IMAGE_PULL_SECRETS

List of image pull secrets, in the format pullsecret1;…​ to add to pods created by the DaemonSet. Those secrets need to be in the image puller’s namespace and a cluster administrator must create them.

""