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

Full support for Devfile 2.x spec #17883

Open
sleshchenko opened this issue Sep 16, 2020 · 13 comments
Open

Full support for Devfile 2.x spec #17883

sleshchenko opened this issue Sep 16, 2020 · 13 comments
Labels
area/devfile-spec Issues related to Devfile v2 engine/devworkspace Issues related to Che configured to use the devworkspace controller as workspace engine. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. roadmap/1-year Epics that are planned to complete in the short term (12 months or more)

Comments

@sleshchenko
Copy link
Member

sleshchenko commented Sep 16, 2020

Is your enhancement related to a problem? Please describe.

Currently, devworkspace controller supports only limited of devfile 2.x format. This is epic to track which parts needs to be implemented.

schemaVersion: 2.0.0
metadata:
  name: nodejs-stack
projects:
  - name: project    
    git:
      remotes:                                                           # The only one remote is supported on Che Theia side
        origin: "https://github.com/che-samples/web-nodejs-sample.git"
components:
  - name: editor
    plugin:
      id: eclipse/che-theia/7.1.0
  - name: terminal
    plugin:
      id: eclipse/che-machine-exec-plugin/7.1.0
  - name: typescript-plugin
    plugin:
      id: che-incubator/typescript/1.30.2                                 # patching of plugins configuration are not supported yet
      components:
        - name: "??"
          container:
            memoryLimit: 512Mi
  - name: nodejs
    container:
      image: quay.io/eclipse/che-nodejs10-ubi:nightly
      memoryLimit: 512Mi
      endpoints:
        - name: nodejs
          protocol: http
          targetPort: 3000
      mountSources: true
  - name: cleanup-job
    kubernetes:
      inlined: |
        apiVersion: batch/v1
        kind: Job
        metadata:
          name: pi
        spec:
          template:
            spec:
              containers:
              - name: job
                image: someimage
                command: ["some",  "command", "with", "parameters"]
              restartPolicy: Never
          backoffLimit: 4
  - name: postgres
    kubernetes:                                               # kubernete component is not supported yet
      inlined: |
        kind: Deployment
        metadata:
          name: pi
        spec:
          template:
            spec:
              containers:
              - name: job
                image: someimage
                command: ["some",  "command", "with", "parameters"]
              restartPolicy: Never
          backoffLimit: 4
volumes:                                                    ## volumes are not implemented on that level
  - name: ...
commands:
  - id: download dependencies
    exec:
      component: nodejs
      commandLine: npm install
      workingDir: ${PROJECTS_ROOT}/project/app
      group:
        kind: build                                              # groups are not supported yet
commands:
  - id: cleanup-job
    apply:
      component: cleanup-job 
events:
  postStop:
    - cleanup-job
  preStop: ...
  preStart: ...
  postStart: ...

This issue is not well-described yet. More details will be provided soon.

Devfile 2.0 Feature Supported Issue
Plugin mechanism removed from the spec devfile/api#333
Parent devfiles devfile/devworkspace-operator#346
Allow volumes to be shared across components devfile/devworkspace-operator#237
kubernetes component
projects
starterProjects
Components sourceMapping
Specify size of volume for component devfile/devworkspace-operator#827
Environment variables for a specific command
Commands group (application lifecycle)
Out of main pod containers
Stacks/Devfile matching rules not in the spec yet
Devfile metadata: add a link to an external website
Add lifecycle bindings to bind commands to specific events pre-start only devfile/devworkspace-operator#629
Containers endpoints (routes/ingresses)
New type of command to apply a component
Run exec commands as specified user
hotReloadCapable
image component #21187
outer loop components of type image and kubernetes #21186
@sleshchenko sleshchenko added kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. area/devfile-spec Issues related to Devfile v2 labels Sep 16, 2020
@che-bot che-bot added the status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. label Sep 16, 2020
@tolusha tolusha added engine/devworkspace Issues related to Che configured to use the devworkspace controller as workspace engine. and removed status/need-triage An issue that needs to be prioritized by the curator responsible for the triage. See https://github. labels Sep 16, 2020
@amisevsk
Copy link
Contributor

We should separate the compatibility requirements into two categories: there are parts of the devfile that impact how objects are created on the cluster (e.g. out of pod containers, etc.) and parts that are data to be passed to other components (e.g. commands, projects). For many of the elements listed above, all the devworkspace controller can do is pass data to Theia in a way that Theia will understand.

@l0rd l0rd changed the title [devworkspace] Devfile 2.x support Full support for Devfile 2.x spec Mar 26, 2021
@l0rd l0rd added the roadmap/1-year Epics that are planned to complete in the short term (12 months or more) label Mar 26, 2021
@che-bot
Copy link
Contributor

che-bot commented Oct 12, 2021

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 12, 2021
@l0rd
Copy link
Contributor

l0rd commented Oct 26, 2021

Closing. We will implement missing parts of the spec when there is a real request.

@l0rd l0rd closed this as completed Oct 26, 2021
@vaidotasp
Copy link

@l0rd can you define what "real request" is?

@l0rd
Copy link
Contributor

l0rd commented Jul 27, 2022

@vaidotasp I think it makes sense to re-open this issue so that we can track what's supported and what's not.

I am not sure why I closed it but we are continuously working on supporting the v2 spec (and we have implemented a big part of it already). And we want to prioritize the features that are required in users/customers scenarios (i.e. "real request") rather than guessing what will be useful and what not (for example I would be careful to implement postStop events today as I am not aware of any scenario that would require that).

I have updated the description with what is supported today. We should probably clean it up because there are new fields (i.e. image components) that have been added in the meantime. @amisevsk @AObuchow please have a look.

@l0rd l0rd reopened this Jul 27, 2022
@che-bot che-bot closed this as completed Aug 3, 2022
@l0rd
Copy link
Contributor

l0rd commented Aug 3, 2022

/remove-lifecycle stale

@l0rd l0rd reopened this Aug 3, 2022
@che-bot che-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 3, 2022
@ibuziuk ibuziuk mentioned this issue Nov 21, 2022
68 tasks
@AObuchow
Copy link

@AObuchow
Copy link

@amisevsk correct me if I am wrong, but it seems like the projects and sourceMapping features are supported and can be updated in the table.

Additionally, kubernetes components will be supported once devfile/devworkspace-operator#961 is merged.

@AObuchow
Copy link

components.volume.size is now supported in DWO when using the per-workspace storage strategy. See devfile/devworkspace-operator#1020

@che-bot
Copy link
Contributor

che-bot commented Jul 17, 2023

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 17, 2023
@l0rd
Copy link
Contributor

l0rd commented Jul 17, 2023

/remove-lifecycle stale

@che-bot che-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 17, 2023
@che-bot
Copy link
Contributor

che-bot commented Jan 13, 2024

Issues go stale after 180 days of inactivity. lifecycle/stale issues rot after an additional 7 days of inactivity and eventually close.

Mark the issue as fresh with /remove-lifecycle stale in a new comment.

If this issue is safe to close now please do so.

Moderators: Add lifecycle/frozen label to avoid stale mode.

@che-bot che-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 13, 2024
@amisevsk
Copy link
Contributor

/remove-lifecycle stale

@amisevsk amisevsk added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Jan 15, 2024
@che-bot che-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/devfile-spec Issues related to Devfile v2 engine/devworkspace Issues related to Che configured to use the devworkspace controller as workspace engine. kind/epic A long-lived, PM-driven feature request. Must include a checklist of items that must be completed. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. roadmap/1-year Epics that are planned to complete in the short term (12 months or more)
Projects
None yet
Development

No branches or pull requests

7 participants