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

Improve Eclipse Che deploying with chectl #18022

Closed
tolusha opened this issue Oct 2, 2020 · 14 comments
Closed

Improve Eclipse Che deploying with chectl #18022

tolusha opened this issue Oct 2, 2020 · 14 comments
Assignees
Labels
area/chectl Issues related to chectl, the CLI of Che kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system.
Milestone

Comments

@tolusha
Copy link
Contributor

tolusha commented Oct 2, 2020

Is your enhancement related to a problem? Please describe.

  • 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).
@tolusha tolusha added kind/enhancement A feature request - must adhere to the feature request template. severity/P2 Has a minor but important impact to the usage or development of the system. area/chectl Issues related to chectl, the CLI of Che labels Oct 2, 2020
@tolusha tolusha added this to the 7.21 milestone Oct 2, 2020
@tolusha tolusha added severity/P1 Has a major impact to usage or development of the system. and removed severity/P2 Has a minor but important impact to the usage or development of the system. labels Oct 2, 2020
@skabashnyuk
Copy link
Contributor

@tolusha do we need to maintain somewhere a matrix of compatible chectl and che versions?

@tolusha tolusha modified the milestones: 7.21, Backlog - Deploy Oct 5, 2020
@tolusha tolusha removed this from the Backlog - Deploy milestone Oct 21, 2020
@l0rd
Copy link
Contributor

l0rd commented Dec 7, 2020

cc @sympatheticmoose

@tolusha tolusha added this to the 7.25 milestone Dec 16, 2020
@tolusha tolusha mentioned this issue Dec 24, 2020
79 tasks
@mmorhun mmorhun self-assigned this Jan 12, 2021
@tolusha tolusha modified the milestones: 7.25, 7.26 Jan 13, 2021
@tolusha tolusha mentioned this issue Jan 18, 2021
54 tasks
@benoitf
Copy link
Contributor

benoitf commented Jan 21, 2021

I was wondering why we don't just pull/cache/execute the binary of chectl matching the one specified by the user ?
as for each tagged version of che we have a corresponding chectl binary.

@mmorhun
Copy link
Contributor

mmorhun commented Jan 21, 2021

@benoitf thank you for the question. We've considered this method, but decided not to use it because it has some downsides:

  • chectl binary is relatively large (33.8 Mb for the latest one)
  • the downloaded archive has a lot of small files which makes extracting process time consuming
  • taking into account binaries size, we need to implement some cleanup for already downloaded versions
  • we need to have superstructure for chectl which will download, unpack and run chectl of needed version

@nickboldt
Copy link
Contributor

nickboldt commented Jan 25, 2021

Concerns from downstream...

  1. Telemetry
  • right now the product version of crwctl does not support updating between chectl/crwctl versions; this is intentional because we want end users to download a new version from https://developers.redhat.com/products/codeready-workspaces/download so we can collect metrics around # of downloads per CRW version and OCP version.
  • if we make it possible for crwctl 2.7 to install crw 2.9, we lose the ability to collect these numbers
  1. Airgap
  • For offline/airgapped installs, if chectl/crwctl is now expected to call into GH to fetch newer templates, it'll fail when airgapped.
  • Will chectl/crwctl fall back to the embedded templates when no network found?
  1. Product restriction / test scenarios
  • For crwctl, can we disable this call-home feature and ONLY use what's embedded? It'll be harder to validate install scenarios if we need to worry about 3 or 4x more permutations:
  • crwctl 2.7 + CRW 2.7
  • crwctl 2.7 + CRW 2.8
  • crwctl 2.7 + CRW 2.9
  • crwctl 2.8 + CRW 2.8
  • crwctl 2.8 + CRW 2.9
  • crwctl 2.8 + CRW 2.10
    vs. just
  • crwctl 2.7 + CRW 2.7
  • crwctl 2.8 + CRW 2.8

@tsmaeder
Copy link
Contributor

so we can collect metrics around # of downloads per CRW version and OCP version.

That is not a valid reason to make chectl more awkward to use, IMO. Chectl can collect metrics, let's use that capability.

@mmorhun
Copy link
Contributor

mmorhun commented Jan 25, 2021

@nickboldt

if we make it possible for crwctl 2.7 to install crw 2.9, we lose the ability to collect these numbers

My changes doesn't effect downstream behaviour.

For offline/airgapped installs, if chectl/crwctl is now expected to call into GH to fetch newer templates, it'll fail when airgapped.

Only chectl will query GH, crwctl will not.

Will chectl/crwctl fall back to the embedded templates when no network found?

I think we should be able to use embedded templates then (if offline flag is given). Otherwise it doesn't make sense because we need to download docker images, etc.

For crwctl, can we disable this call-home feature and ONLY use what's embedded?

That's how it is implemented: for chectl only. I'd foreseen these problems when was implementing the feature =)

@mmorhun
Copy link
Contributor

mmorhun commented Jan 29, 2021

After discussion on this issue we agreed that:

  • 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).

@tsmaeder
Copy link
Contributor

If chectl finds out that a newer version is available

A newer version of Che or chectl?

ANY chectl command except deploy and update

I understand the "update" part, but if you "deploy", shouldn't you be warned you install an old version of Che?

@mmorhun
Copy link
Contributor

mmorhun commented Jan 29, 2021

A newer version of Che or chectl?

When we do a release we release both: Che and chectl.

shouldn't you be warned you install an old version of Che?

For deploy and update commands it will be interactive prompt. Not just warning, but question which stops execution and waits for user answer. It will not let user install older version unless it is what the user really wants.

@tsmaeder
Copy link
Contributor

A newer version of Che or chectl?

When we do a release we release both: Che and chectl.

Yes, but what are you checking? We might make the release cycles different in the future.

@l0rd
Copy link
Contributor

l0rd commented Jan 29, 2021 via email

@tsmaeder
Copy link
Contributor

Yes, but what are you checking? We might make the release cycles different in the future.

Aside from the background resoning: technically, are we checking for a new release of Che or of Chectl? These are different artifacts.

@tolusha tolusha changed the title [chectl] Deploying Eclipse Che should not depend on a specific version of chectl [chectl] Improve Eclipse Che deploying with chectl Jan 29, 2021
@tolusha tolusha changed the title [chectl] Improve Eclipse Che deploying with chectl Improve Eclipse Che deploying with chectl Jan 29, 2021
@mmorhun
Copy link
Contributor

mmorhun commented Feb 1, 2021

After the discussion I've changed the strategy and now check only for newer chectl version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/chectl Issues related to chectl, the CLI of Che kind/enhancement A feature request - must adhere to the feature request template. severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

7 participants