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

Decide what features devworkspace-che-client should have #19219

Closed
JPinkney opened this issue Mar 5, 2021 · 2 comments
Closed

Decide what features devworkspace-che-client should have #19219

JPinkney opened this issue Mar 5, 2021 · 2 comments
Assignees
Labels
kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system. sprint/current
Milestone

Comments

@JPinkney
Copy link
Contributor

JPinkney commented Mar 5, 2021

Is your task related to a problem? Please describe.

Right now we have a new typescript library for managing devworkspaces and devworkspace templates but it has some che specific code. If we ever want to contribute the devworkspace-client to the cncf then we have to make the library more general and extract che specific functionality to a devworkspace-che-client library. This issue is to list all the features that we should have in the devworkspace-che-client

For example,

  • devworkspace-che-client should take care of creating projects/namespaces instead of that being done in devworkspace-client
  • potentially we can extract devworkspacetemplate creation/ownerref specifying from the dashboard into devworkspace-che-client so chectl can re-use this functionality

Describe the solution you'd like

Have two librarys, a generic devworkspace/devworkspacetemplate library for typescript and a che specific devworkspace/devworkspacetemplate library

Describe alternatives you've considered

None

Additional context

@JPinkney JPinkney added kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system. area/dev-workspace-client labels Mar 5, 2021
@sleshchenko
Copy link
Member

Have two librarys, a generic devworkspace/devworkspacetemplate library for typescript and a che specific devworkspace/devworkspacetemplate library

For time being, until we don't need two libraries, we just may separate DevWorkspace and Che DevWorkspace logic into separate interfaces.
Che DevWorkspaces will reuse DevWorkspace interface.

@sleshchenko
Copy link
Member

So, on call with Florent and Josh we agreed that:

  • we need to have separate interfaces for DevWorkspace and Che DevWorkspace logic;

DevWorkspace client would handle some basic CRUD for devworkspaces and devworkspace templates (along with tricky ownerRef logic we have on dashboard now)

Che DevWorkspace should provide an ability to resolve the DevWorkspace and DevWorkspaceTemplates where input is (devfile or repo URL).
There is a place for DevWorkspaceTemplate resolver logic, which is editor dependent, where Che Theia can provide their implementation and let Che DevWorkspace lib keep theia plugins/sidecars free.

So, Che Theia contributes DevWorkspace Templates into DevWorkspace depending on the .folder/* files (like che-theia-plugins.yaml file or .vscode/extensions.json)
Che Theia can as a first step consume devfile url and if it’s GITHUB url, it resolves needed files from there.
The draft from Florent https://gist.github.com/benoitf/fd11011cc3f89629ce7256ca5ecead47

Eventually, that resolve logic will be done by DevWorkspace Resolver component, which will do git projects cloning and will be able to access cloned project file system, instead of SVC http API.

@sleshchenko sleshchenko added this to the 7.28 milestone Mar 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/task Internal things, technical debt, and to-do tasks to be performed. severity/P1 Has a major impact to usage or development of the system. sprint/current
Projects
None yet
Development

No branches or pull requests

2 participants