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

Add workspace-like support for block devices #2057

Closed
bobcatfish opened this issue Feb 17, 2020 · 15 comments
Closed

Add workspace-like support for block devices #2057

bobcatfish opened this issue Feb 17, 2020 · 15 comments
Labels
area/api Indicates an issue or PR that deals with the API. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@bobcatfish
Copy link
Collaborator

Expected Behavior

With workspaces, users can declare files they need at Task authoring time, and users can satisfy those requirements at run time with PVCs, emptyDirs, etc.

They should similarly be able to declare when a Task requires a block device, and provide the volume that satisfies this at runtime.

Actual Behavior

If a user wants to use block devices, they have to fall back on using volumes + volumeDevices in Tasks (e.g. similar to this example tho that example is using volumeMounts not volumeDevices). This mixes runtime information in at Task authoring time (the Task is declaring the name and the type of the Volume).

Additional Info

More info about raw block volumes at https://kubernetes.io/blog/2019/03/07/raw-block-volume-support-to-beta/

Taking the example "Using a raw block PVC" from this page, the interface could look like this:

kind: Task
metadata:
  name: blocktask
spec:
  steps:
    - name: my-container
      image: busybox
      command:
        - sleep
        - “3600”
  devices:
  - name: mydevice
    description: some description
    devicePath: /dev/mydevice # unlike mountPath this would be required
---
apiVersion: tekton.dev/v1alpha1
kind: TaskRun
metadata:
  generateName: workspace-volume-
spec:
  taskRef:
    name: blocktask
  devices:
  - name: mydevice # provide the actual block device at runtime
     persistentVolumeClaim:
       claimName: my-pvc

@skaegi plz verify above ^^ :D

And speaking of @skaegi here is the version of this that he originally proposed: #1438 (comment)

@vdemeester
Copy link
Member

/kind feature
/area api

@tekton-robot tekton-robot added kind/feature Categorizes issue or PR as related to a new feature. area/api Indicates an issue or PR that deals with the API. labels Feb 17, 2020
@bobcatfish
Copy link
Collaborator Author

Discussed in beta working group, folks could continue to use podTemplates to accomplish this, even if we went ahead to remove Volumes in #2058, so this isn't a blocker for beta.

@bobcatfish bobcatfish removed this from the Pipelines 1.0/beta 🐱 milestone Feb 18, 2020
@bobcatfish
Copy link
Collaborator Author

... i did NOT mean to close this wow

@bobcatfish bobcatfish reopened this Feb 21, 2020
@skaegi
Copy link
Contributor

skaegi commented Feb 23, 2020

Hmm... after playing with the podTemplate technique one issue is that the definition is in the "taskrun" but the mounting is in the "task". Still a possible workaround but we really should add this support shortly.

@bobcatfish bobcatfish added this to Roadmap in Tekton Pipelines Feb 26, 2020
@tekton-robot
Copy link
Collaborator

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.

/lifecycle rotten

Send feedback to tektoncd/plumbing.

@tekton-robot
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.

/lifecycle stale

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. labels Aug 13, 2020
@bobcatfish
Copy link
Collaborator Author

Interestingly we haven't had any further requests for this since opening the issue, so maybe closing it makes sense until someone really needs it.

@tekton-robot
Copy link
Collaborator

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.

/lifecycle rotten

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 12, 2020
@skaegi
Copy link
Contributor

skaegi commented Oct 7, 2020

If I can get our local provisioner to work as a block storage provider this might become relevant again. I do have use-cases that need block storage but the availability of a "cheap" provisioner is holding this back.

@skaegi
Copy link
Contributor

skaegi commented Oct 22, 2020

I have a concrete use-case for this now. We use a ClusterTask to do image builds that "needs" to run with Block storage. I am doing this behind the scenes with volume and volumeDevices but would like to at least look at modelling in the Task definition as a workspace variation.

@bobcatfish
Copy link
Collaborator Author

Thanks @skaegi !

/remove-lifecycle rotten

@tekton-robot tekton-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Oct 22, 2020
@tekton-robot
Copy link
Collaborator

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale with a justification.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/lifecycle stale

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 20, 2021
@tekton-robot
Copy link
Collaborator

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten with a justification.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/lifecycle rotten

Send feedback to tektoncd/plumbing.

@tekton-robot tekton-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Feb 19, 2021
@tekton-robot
Copy link
Collaborator

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen with a justification.
Mark the issue as fresh with /remove-lifecycle rotten with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/close

Send feedback to tektoncd/plumbing.

@tekton-robot
Copy link
Collaborator

@tekton-robot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen with a justification.
Mark the issue as fresh with /remove-lifecycle rotten with a justification.
If this issue should be exempted, mark the issue as frozen with /lifecycle frozen with a justification.

/close

Send feedback to tektoncd/plumbing.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Tekton Pipelines automation moved this from Roadmap to Closed May 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api Indicates an issue or PR that deals with the API. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
No open projects
Tekton Pipelines
  
Closed
Development

No branches or pull requests

4 participants