Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[che-dev] Separate chectl version and Eclipse Che version to deploy

Hello.

Currently I am working on the issue [1].
Its goal is to make chectl able to deploy Eclipse Che of a different version than chectl itself.

The current problems are:
- to deploy specific version of Eclipse Che it is needed to install the same version of `chectl`
- to update Eclipse Che to another version it is needed to update `chectl` to this version first
- it is not possible to deploy nightly version of Eclipse Che using stable version of `chectl` and vice versa
- it is needed to update `chectl` every time when templates changed

To solve those issues we have to:
- download templates for the corresponding version of Eclipse Che before deploying/updating
- specify version of Eclipse Che to deploy via flag (default: latest stable)
- handle the case when chectl have to be updated before deploying/updating Eclipse Che (that's quite a rare case).
  For this purpose we need to host a file (in the `chectl` repository) which binds Eclipse Che version and the minimal version of `chectl`.
  This file isn't supposed to be changed often and structure of this file might be:

```yaml
helm:
  '7.10.0':
    stable: 7.10.1
    nightly: 20200217-next.1234abc
operator:                               # <- installer type
  '7.28.2':                             # <- Eclipse Che version to deploy
    stable: 7.28.2                      # <- minimal stable version of chectl that is required to install 7.28.2 version of Eclipse Che
                                        #    basically it means that all versions from 7.13.0 to 7.28.1 can be deployed with chectl at least 7.13.0 version
    nightly: 20211115-next.abcd123      # <- minimal nightly version    
  '7.13.0':
    stable: 7.13.0
    nightly: 20200702-next.edf123a
olm:
  '7.17.0':
    stable: '7.17.0'
    nightly:20200506-next.9830ea8
```      


To explain it better, let's consider the following user scenarios.

I. User has chectl 7.25.0 and wants to deploy Eclipse Che 7.29.1 by executing `chectl server:deploy --platform=minikube --installer=operator --version=7.29.1`.
So, `chectl` will:
1. check if templates exist and download them if they don't
2. check that to install version 7.29.1 it is required to have `chectl` 7.28.2 at least and ask user to update `chectl` first

II. User has chectl 7.25.0 and wants to deploy Eclipse Che 7.27.0 by executing `chectl server:deploy --platform=minikube --installer=operator --version=7.27.0`.
So, `chectl` will:
1. check if templates exist and download them if they don't
2. check that to install version 7.27.0 it is required to have `chectl` 7.13.0 at least and will proceed installation

If anyone has any concerns/suggestions about the solution please let us know.

[1] https://github.com/eclipse/che/issues/18022

--

Mykola Morhun

Software engineer

Red Hat


Back to the top