The Kubernetes Image Puller repository contains OpenShift templates for deploying on OpenShift.
Alternatively, you can use Helm for deploying the Kubernetes Image Puller to OpenShift.
-
An OpenShift cluster to install to.
-
The
ocbinary.
The following parameters are available to further configure the OpenShift templates:
| Value | Usage | Default |
|---|---|---|
|
The value of |
|
|
Image used for the |
|
|
The image tag to pull |
|
|
The name of the ServiceAccount used by the deployment (created as part of installation) |
|
|
The value of |
|
|
The value of |
|
|
The value of |
|
|
The value of |
|
See [kubernetes-image-puller-configuration] for more information about configuration values, such as DAEMONSET_NAME, CACHING_INTERVAL_HOURS, and CACHING_MEMORY_REQUEST.
Installing
-
Clone the
kubernetes-image-pullerrepository:$ git clone https://github.com/che-incubator/kubernetes-image-puller $ cd kubernetes-image-puller
-
Log into the OpenShift cluster and create a namespace to deploy the puller into:
$ oc login -u username -p password https://openshift-cluster-api:6443 $ oc create namespace k8s-image-puller
-
Process and apply the templates:
$ for template in $(ls deploy/openshift); \ do oc process -f deploy/openshift/$template | oc apply -f -; done deployment.apps/kubernetes-image-puller created configmap/k8s-image-puller created role.rbac.authorization.k8s.io/create-daemonset created rolebinding.rbac.authorization.k8s.io/create-daemonset created serviceaccount/k8s-image-puller created
To set different values than the defaults, use:
$ oc process -p <parameterName>=<value> -f deploy/openshift/<template> | oc apply -f -
Verifying the installation
-
Confirm that a new deployment,
kubernetes-image-puller, and a DaemonSet (named based on the value of theDAEMONSET_NAMEparameter) exist. The DaemonSet needs to have a Pod for each node in the cluster:$ oc get deployment,daemonset,pod --namespace k8s-image-puller deployment.extensions/kubernetes-image-puller 1/1 1 1 2m19s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.extensions/kubernetes-image-puller 1 1 1 1 1 <none> 2m10s NAME READY STATUS RESTARTS AGE pod/kubernetes-image-puller-5495f46497-mkd4p 1/1 Running 0 2m18s pod/kubernetes-image-puller-n8bmf 3/3 Running 0 2m10s -
Check that the
ConfigMapnamedk8s-image-pullerhas the values you specified in your parameter substitution, or that they contain the default values:$ oc get configmap k8s-image-puller --output yaml apiVersion: v1 data: CACHING_INTERVAL_HOURS: "1" CACHING_MEMORY_LIMIT: 20Mi CACHING_MEMORY_REQUEST: 10Mi DAEMONSET_NAME: kubernetes-image-puller IMAGES: | java11-maven=quay.io/eclipse/che-java11-maven:nightly; che-theia=eclipse/che-theia:next; java-plugin-runner=eclipse/che-remote-plugin-runner-java8:latest; NAMESPACE: k8s-image-puller NODE_SELECTOR: '{}' kind: ConfigMap metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","data":{"CACHING_INTERVAL_HOURS":"1","CACHING_MEMORY_LIMIT":"20Mi","CACHING_MEMORY_REQUEST":"10Mi","DAEMONSET_NAME":"kubernetes-image-puller","IMAGES":"java11-maven=quay.io/eclipse/che-java11-maven:nightly; che-th eia=eclipse/che-theia:next; java-plugin-runner=eclipse/che-remote-plugin-runner-java8:latest;\n","NAMESPACE":"k8s-image-puller","NODE_SELECTOR":"{}"},"kind":"ConfigMap","metadata":{"annotations":{},"name":"k8s-image-puller","namespace":"k 8s-image-puller"},"type":"Opaque"} creationTimestamp: 2020-02-17T22:40:13Z name: k8s-image-puller namespace: k8s-image-puller resourceVersion: "72250" selfLink: /api/v1/namespaces/k8s-image-puller/configmaps/k8s-image-puller uid: 76430ed6-51d6-11ea-9c19-52fdfc072182