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

[FEATURE] Download backing images #3155

Closed
guangbochen opened this issue Oct 15, 2021 · 6 comments
Closed

[FEATURE] Download backing images #3155

guangbochen opened this issue Oct 15, 2021 · 6 comments
Assignees
Labels
area/backing-image Backing image related highlight Important feature/issue to highlight kind/feature Feature request, new feature priority/0 Must be fixed in this release (managed by PO) require/doc Require updating the longhorn.io documentation require/lep Require adding/updating enhancement proposal require/manual-test-plan Require adding/updating manual test cases if they can't be automated
Milestone

Comments

@guangbochen
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Allowing users to download the backing images from UI, so that those images can be shared accordingly.

@guangbochen guangbochen added the kind/feature Feature request, new feature label Oct 15, 2021
@innobead innobead added the priority/0 Must be fixed in this release (managed by PO) label Oct 15, 2021
@innobead innobead added this to the v1.3.0 milestone Oct 15, 2021
@innobead innobead assigned shuo-wu and derekbit and unassigned shuo-wu Oct 19, 2021
@derekbit derekbit assigned shuo-wu and unassigned derekbit Oct 20, 2021
@innobead innobead added the highlight Important feature/issue to highlight label Oct 21, 2021
@innobead
Copy link
Member

Hey team! Please add your planning poker estimate with ZenHub @jenting @PhanLe1010 @shuo-wu @joshimoo

@shuo-wu
Copy link
Contributor

shuo-wu commented Oct 22, 2021

There are 2 major parts of this feature. The 1st one is how we can get the file data:

  • The backing image manager gRPC server can manually split a file into multiple data chunks and send them to the longhorn manager API via a gRPC streaming.
  • The backing image manager gRPC server can rely on a gRPC call launching a temporary HTTP server then return the URL of the HTTP server.
  • Longhorn can use a new CRD to indicate the creation of a backing image "download" pod that launches a HTTP server (then expose the service if necessary).

The 2nd part of this feature is how users can download the data:

  • If the gRPC streaming is applied, we need to create a new HTTP API similar to the support bundle downloading. This new API should be responsible for launching the gRPC streaming, reading the chunks from the streaming, then writing data to the HTTP (streaming) response.
  • If the backing image manager will expose a temporary HTTP server, it means longhorn manager should send the gRPC call to a backing image manager, wait for the HTTP service up, then proxy it.
  • If a dedicated backing image "download" pod can be launched via a new CRD (and its controller), the longhorn manager can use one HTTP API to help create the CR then expose another HTTP API to proxy it.
    Or there is no need to do proxy. Instead, we can directly put the service info in the new CR status, then users themselves are responsible for expose the service.

@joshimoo Can you provide some suggestions about this? I am not sure which one I should apply. Or are there any better ideas?

cc @innobead

@shuo-wu shuo-wu added area/backing-image Backing image related require/lep Require adding/updating enhancement proposal labels Oct 26, 2021
@innobead
Copy link
Member

innobead commented Dec 6, 2021

@shuo-wu will you start this in this sprint? or move to the next sprint?

@longhorn-io-github-bot
Copy link

longhorn-io-github-bot commented May 26, 2022

Pre Ready-For-Testing Checklist

@innobead
Copy link
Member

We only have a doc about creating volumes from backing images, but along with the completeness of backing image functions, it's time to add some other doc to introduce other functions like how to create a backing image from upload/remote download, create a backing image from a volume, download, etc.

@yangchiu
Copy link
Member

yangchiu commented Jun 9, 2022

verified pass on v1.3.0-rc3 by following manual test steps

@yangchiu yangchiu closed this as completed Jun 9, 2022
@innobead innobead changed the title [FEATURE] Allowing users to download backing images [FEATURE] Download backing images Jun 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/backing-image Backing image related highlight Important feature/issue to highlight kind/feature Feature request, new feature priority/0 Must be fixed in this release (managed by PO) require/doc Require updating the longhorn.io documentation require/lep Require adding/updating enhancement proposal require/manual-test-plan Require adding/updating manual test cases if they can't be automated
Projects
None yet
Development

No branches or pull requests

6 participants