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