Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

As an Admin, during the Eclipse Che installation flow, I want to have a possibility to optionally install the kubernetes-image-puller for faster workspace startup #18133

Closed
ibuziuk opened this issue Oct 19, 2020 · 8 comments
Assignees
Labels
area/image-puller Issues related to image-puller https://github.com/che-incubator/kubernetes-image-puller kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system.
Milestone

Comments

@ibuziuk
Copy link
Member

ibuziuk commented Oct 19, 2020

Is your task related to a problem? Please describe.

Currently, kubernetes-image-puller is the operator which is installed and managed separately from the Eclipse Che operator - https://www.eclipse.org/che/docs/che-7/administration-guide/caching-images-for-faster-workspace-start/

Need to explore the possibility of making kubernetes-image-puller as an optional dependency of the Eclipse Che operator.

Describe the solution you'd like

The installation flow could be the following:

  • Admin installs Eclipse Che operator via OperatorHub
  • During the CheCluster CR creation there should be an option to enable k8s-image-puller (via both yaml an UI) similar to how the OpenShift oAuth / TLS mode are currently managed.

image

  • If kubetenets-image-puller option is enabled Eclipse Che operator should create the KubernetesImagePuller with the set of images for pre-pulling that is relevant for the current version of Eclipse Che e.g. for version 7.20.0 :
apiVersion: che.eclipse.org/v1alpha1
kind: KubernetesImagePuller
metadata:
  name: image-puller
spec:
  daemonsetName: k8s-image-puller
  images: >-
    java11-maven=quay.io/eclipse/che-java11-maven:7.20.0;che-theia=quay.io/eclipse/che-theia:7.20.0

Describe alternatives you've considered

Manage Eclipse Che and Image Puller operators separately as it currently works today - https://www.eclipse.org/che/docs/che-7/administration-guide/caching-images-for-faster-workspace-start/

Additional context

N/A

@ibuziuk ibuziuk added kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system. team/hosted-che area/image-puller Issues related to image-puller https://github.com/che-incubator/kubernetes-image-puller labels Oct 19, 2020
@ibuziuk ibuziuk added this to the 7.22 milestone Oct 19, 2020
@ibuziuk ibuziuk changed the title As an Admin during the Eclipse Che instalation flow I want to have a possibility to optionally install kubernetes image puller for faster workspace startup As an Admin during the Eclipse Che instalation flow I want to have a possibility to optionally install the kubernetes-image-puller for faster workspace startup Oct 19, 2020
@ibuziuk ibuziuk changed the title As an Admin during the Eclipse Che instalation flow I want to have a possibility to optionally install the kubernetes-image-puller for faster workspace startup As an Admin, during the Eclipse Che instalation flow, I want to have a possibility to optionally install the kubernetes-image-puller for faster workspace startup Oct 19, 2020
@tomgeorge tomgeorge self-assigned this Oct 21, 2020
@tomgeorge
Copy link
Contributor

Is this going to install the image puller operator? Or can we assume it is installed already?

We could also do this via helm without the KubernetesImagePuller CR.

@ibuziuk
Copy link
Member Author

ibuziuk commented Oct 22, 2020

@tomgeorge we should not expect that operator for image puller is installed.

We could also do this via helm without the KubernetesImagePuller CR.

That's an interesting idea. I'm not sure how difficult will it be to make the image puller operator an optional dependency of the che operator, so potential solution indeed could be using image-puller Helm charts / OpenShift templates in the Eclipse Che / CRW operators @l0rd wdyt?

@tomgeorge
Copy link
Contributor

If we install the kubernetes image puller operator, we can either install it in it's own namespace, or install it in eclipse-che.

In it's own namespace

  • requires more permissions for che-operator
  • predictable location, guards against multiple KubernetesImagePuller CRs and operator pods
  • potentially makes the kubernetes image puller operator less flexible

In eclipse-che

  • should be able to create KubernetesImagePuller CRs in it's own namespace
  • possible to have multiple image puller operator pods and CRs in different namespaces
  • increased "locality" of information pertaining to the Che installation in total

The other option is Helm which I haven't tried yet. I think the che-operator could make a CronJob with the chart in the file system that runs helm install ...

@ibuziuk
Copy link
Member Author

ibuziuk commented Oct 26, 2020

I personally would opt for the own namespace for the image puller operator to make the installation more predictable.

@ibuziuk ibuziuk changed the title As an Admin, during the Eclipse Che instalation flow, I want to have a possibility to optionally install the kubernetes-image-puller for faster workspace startup As an Admin, during the Eclipse Che installation flow, I want to have a possibility to optionally install the kubernetes-image-puller for faster workspace startup Oct 26, 2020
@nickboldt
Copy link
Contributor

As per video walkthru https://drive.google.com/file/d/1eu28GAgGzTjY31JGhspCHaxeKiYzXKp9/view it seems like this solution requires the k8s image puller operator, not just the k8s image puller image.

Is this a hard requirement? Adding a second operator + metadata images to the BOM for CRW 2.6 would be a fair amount of work and would make CRW involve releasing two operators in every release, doubling the amount of operator-based testing we have to aleady do.

@tomgeorge
Copy link
Contributor

Is this a hard requirement?

From a UX experience, no, as the user could just not enable the image puller. But that is not a super great answer.

We decided to use the image puller operator and OLM because it seemed like something that you could expect many users to have available to them (OLM), and those APIs will install everything (Deployments, Service accounts, RBAC, etc.) for you automatically as part of the Subscription and InstallPlan it creates for a ClusterServiceVersion.

This isn't the only way to install this, though. We had talked about having the che operator creating a Job that runs helm install on the kubernetes image puller helm chart. We could also have the che operator deploy the image puller in some hard-coded way.

@l0rd @davidfestal Do you have any opinions on this?

would make CRW involve releasing two operators in every release, doubling the amount of operator-based testing we have to aleady do.

Do you definitely need to downstream the image puller operator? The che operator and image puller operator are released independently today, if the were downstreamed, would they need to be released in lockstep?

@ibuziuk
Copy link
Member Author

ibuziuk commented Nov 18, 2020

Do you definitely need to downstream the image puller operator?

Same question here, both image-puller and image-puller-operator are UBI based https://issues.redhat.com/browse/CRW-875 (what is more, upstream image-puller operator is already reffered in the CRW docs https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/2.5/html/administration_guide/caching-images-for-faster-workspace-start_crw as the recommnded way of caching images for faster workspace start)

@nickboldt So, I do not understand what is expected to be downstreamed at this point (the whole excercise with the UBI switch meant to be done to remove the need of doing any downstreaming)

@ibuziuk
Copy link
Member Author

ibuziuk commented Dec 9, 2020

PR is merged. Closing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/image-puller Issues related to image-puller https://github.com/che-incubator/kubernetes-image-puller kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

3 participants