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

flist-server: serve flists with docker image conversion support #1497

Open
xmonader opened this issue Dec 17, 2023 · 3 comments
Open

flist-server: serve flists with docker image conversion support #1497

xmonader opened this issue Dec 17, 2023 · 3 comments
Assignees
Milestone

Comments

@xmonader
Copy link
Contributor

xmonader commented Dec 17, 2023

With the recent update of Flist v2 #1467, the flists can now be served from any location using the new self-contained format. However, users lose a crucial feature that was, in fact, overused—the Docker convert feature from the hub.

As a user, I would like to have a single binary (e.g., flist-server) that not only serves the new flists but can also be used to convert Docker images.

To Consider

  • Authorization: How to authorize the caller. I suggest maintaining a list of secrets that can be configured in a TOML file. toml is optional, can be anything

  • Conversion Process: How to handle the conversion. It is recommended to utilize the docker2fl tool (or the library). we should allow the user specify the registry, username, email or token to be able to pull the image from the registry. This enables the users to use their own private registries, which isn't possible in the current version of the hub, and also as a security measure because anyone on the hub can access all of the flists.

  • Backend Store: Consideration for the backend store.

  • Technology: The implementation should be in Rust.

@xmonader xmonader changed the title flist-server: serve flists and image conversion support flist-server: serve flists with docker image conversion support Dec 17, 2023
@xmonader xmonader self-assigned this Dec 27, 2023
@xmonader xmonader added this to the 3.14 milestone Dec 27, 2023
@muhamadazmy
Copy link
Member

Imho the flist-server need to provide the following:

  • The user need to configure a (backend storage) that is supported by rfs and/or docker2fl.
    • This backend is then used during creation of the flist (from a tar upload, or docker conversion)
  • The flist-server also need to allow to server .fl files. Those can also be stored on disk and sever over http, since this does not scale, using an S3 storage (minio or something else) can give us the flexibility to scale or distribute. Again this should be configurable by the user based on the scale of his setup.
  • The server can also be configured to support multiple authentication backends. this can be
    • A configurable set of username/passwords
    • A username/password registration module.
    • Google login, github login, etc...
    • Should we support multiple ways?
  • As a start the authentication module can implement only one module of the above (say configurable list of usernames/passwords)
  • Once you are logged-in the user can see a hub like interface.
  • When the user upload a tar, or does a conversion, the blobs are pushed to backend storage and the fl is pushed to fl storage.

@rawdaGastan
Copy link
Contributor

WIP

  • the api of converting the image to an flist has an error ana I am still debugging it

image

@despiegk
Copy link
Contributor

despiegk commented Feb 1, 2024

suggest to delay to little later, we should do more research

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Verification
Development

No branches or pull requests

5 participants