bluerobotics / BlueOS

The open source platform for ROV, USV, robotic system operation, development, and expansion.
https://blueos.cloud/docs/
Other
140 stars 70 forks source link

Extension manager: allow manually uploading a docker image #1614

Open ES-Alexander opened 1 year ago

ES-Alexander commented 1 year ago

Useful for installing to offline / air-gapped systems (discussed here), and for local development.

ES-Alexander commented 2 months ago

We'd need to add an API endpoint for loading an image (like we do in version-chooser), which then imports it into docker, before doing the normal custom extension registration process.

I propose we add a "manual upload" option to the custom registration interface for now, but once #2768 is complete there may be some other relevant interface options available too (e.g. if we want to support users installing official extension versions offline then we'd presumably want a streamlined way for them to be uploaded without needing custom registration, and possibly with key-sign verification to confirm that they're actually legit images)


As an interim workaround it should be possible already to:

  1. Upload the extension's docker image .tar ball to the BlueOS device, using either the File Browser or ssh
    • Probably makes sense to put it in the /usr/blueos/extensions folder (just extensions in the File Browser)
  2. Use the BlueOS Terminal to docker import the image (may need to red-pill to be able to access the docker CLI)
  3. Tag the image with a tag that doesn't exist in the online registry
    • I'm unsure whether it will already have a tag when it's imported
  4. Use the custom extension registration process to register that image + tag combo