Skip to main content

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

Hello.
We had a meeting today and discussed further steps on this issue. Thank you all who participated, it was quite productive!
To sum up what was decided:
- chectl should be able to deploy Eclipse Che of the same version or any previous one (if possible). To deploy newer versions of Che user have to update chectl first.
- to install previous versions of Eclipse Che, chectl may need to download templates from GitHub.
- to make the process smooth for users, chectl should check for updates automatically, but not update silently.
- If chectl finds out that a newer version is available, a warning message will be printed when a user executes ANY chectl command except deploy and update.
- for the deploy and update commands an interactive prompt will appear and ask users if they want to install a newer version (a flag for non-interactive scenario will be added too).
Said above means that there is no more need in the compatibility file described in the previous letter.

On Thu, Jan 21, 2021 at 11:38 AM Mykola Morhun <mmorhun@xxxxxxxxxx> wrote:
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



--

Mykola Morhun

Software engineer

Red Hat


Back to the top