Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[che-dev] Propagate image digests for all Eclipse Che images using OLM installer

Hello. In the frame of the issues: https://github.com/eclipse/che/issues/16815 and https://github.com/eclipse/che/issues/14993 we prepared a mechanism to collect and propagate Eclipse Che image digests and store them using the env variables for the released Che version. Notice: we covered only for Che installed via OLM.

Motivation: Main goal or Why do we need that?

Released Che images should be freezed. That's why we should use images with digests instead of tags, because tags can be changed after release. And main goal: we need to have(ideally in one place) the whole list images digest to pre-pull Eclipse Che images in the offline mode.

List pull requests to achieve goal
Pending:
Related pr's(Merged):

How it will work.
 We have a script https://github.com/eclipse/che-operator/blob/912fd52fc438a1917130e1f1d7c74e64c232762a/olm/addDigests.sh . Using this script (and scopeo tool under the hood) we get corresponding image digest by image tag.
There are few places to retrieve Eclipse Che images: Che operator deployment, plugin and devfile registry containers.
Using script we get image digests for che-operator image and default Che images stored in the che operator deployment env(default images have a prefix in the env name to filter them).
Also script fast run plugin and defile registry containers and cat files: external_images.txt .  We parse lists of these images and get digests for them too. Then a full list of all Eclipse Che images we store in the Cluster Service Version file(CSV). We include this full list into two places in the CSV:
  1.  Che operator deployment section using env variables.
  2. "relatedImage" section (needed for some external tools, to prepull images in the offline mode).
So, How will Eclipse Che use image digests instead of tags using CSV file?
Olm uses a CSV file to deploy the Che operator. We included all image digests to Che operator deployment using env variables. When the Che operator is deployed via OLM it will start Eclipse Che installation. Che operator retrieves images from env variables, filter images required for plugin and devfile registries. Then the Che operator propagates image digests to plugin and devfile registry containers using env variables too.  On the devfile and plugin registry containers starting, their entrypoint.sh scripts replaces image tags to image digest in the whole devfiles and plugin meta yamls.

After installation Eclipse Che user can create and launch new workspace from predefined devfile. Eclipse Che will start a workspace, all containers will be created from images with digests.

Back to the top