Installing Image Puller on OpenShift by using the CLI
You can install the Kubernetes Image Puller on OpenShift by using OpenShift oc management tool.
| If the ImagePuller is installed with the  | 
- 
An active ocsession with administrative permissions to the OpenShift cluster. See Getting started with the OpenShift CLI.
- 
Gather a list of relevant container images to pull by following the doc: Retrieving the default list of images for Kubernetes Image Puller 
- 
Define the memory requests and limits parameters to ensure pulled containers and the platform have enough memory to run. When defining the minimal value for CACHING_MEMORY_REQUESTorCACHING_MEMORY_LIMIT, consider the necessary amount of memory required to run each of the container images to pull.When defining the maximal value for CACHING_MEMORY_REQUESTorCACHING_MEMORY_LIMIT, consider the total memory allocated to the DaemonSet Pods in the cluster:(memory limit) * (number of images) * (number of nodes in the cluster) Pulling 5 images on 20 nodes, with a container memory limit of 20Mirequires2000Miof memory.
- 
Clone the Image Puller repository and get in the directory containing the OpenShift templates: git clone https://github.com/che-incubator/kubernetes-image-puller cd kubernetes-image-puller/deploy/openshift 
- 
Configure the app.yaml,configmap.yamlandserviceaccount.yamlOpenShift templates using following parameters:Table 1. Image Puller OpenShift templates parameters in app.yamlValue Usage Default DEPLOYMENT_NAMEThe value of DEPLOYMENT_NAMEin the ConfigMapkubernetes-image-pullerIMAGEImage used for the kubernetes-image-pullerdeploymentquay.io/eclipse/kubernetes-image-pullerIMAGE_TAGThe image tag to pull latestSERVICEACCOUNT_NAMEThe name of the ServiceAccount created and used by the deployment kubernetes-image-pullerTable 2. Image Puller OpenShift templates parameters in configmap.yamlValue Usage Default CACHING_CPU_LIMITThe value of CACHING_CPU_LIMITin the ConfigMap.2CACHING_CPU_REQUESTThe value of CACHING_CPU_REQUESTin the ConfigMap.05CACHING_INTERVAL_HOURSThe value of CACHING_INTERVAL_HOURSin the ConfigMap"1"CACHING_MEMORY_LIMITThe value of CACHING_MEMORY_LIMITin the ConfigMap"20Mi"CACHING_MEMORY_REQUESTThe value of CACHING_MEMORY_REQUESTin the ConfigMap"10Mi"DAEMONSET_NAMEThe value of DAEMONSET_NAMEin the ConfigMapkubernetes-image-pullerDEPLOYMENT_NAMEThe value of DEPLOYMENT_NAMEin the ConfigMapkubernetes-image-pullerIMAGESThe value of IMAGESin the ConfigMap{}NAMESPACEThe value of NAMESPACEin the ConfigMapk8s-image-pullerNODE_SELECTORThe value of NODE_SELECTORin the ConfigMap"{}"Table 3. Image Puller OpenShift templates parameters in serviceaccount.yamlValue Usage Default SERVICEACCOUNT_NAMEThe name of the ServiceAccount created and used by the deployment kubernetes-image-pullerKIP_IMAGEThe image puller image to copy the sleep binary from quay.io/eclipse/kubernetes-image-puller:latest
- 
Create an OpenShift project to host the Image Puller: oc new-project <k8s-image-puller> 
- 
Process and apply the templates to install the puller: oc process -f serviceaccount.yaml | oc apply -f - oc process -f configmap.yaml | oc apply -f - oc process -f app.yaml | oc apply -f - 
- 
Verify the existence of a <kubernetes-image-puller> deployment and a <kubernetes-image-puller> DaemonSet. The DaemonSet needs to have a Pod for each node in the cluster: oc get deployment,daemonset,pod --namespace <k8s-image-puller>
- 
Verify the values of the <kubernetes-image-puller> ConfigMap.oc get configmap <kubernetes-image-puller> --output yaml