Affects Version/s: None
Fix Version/s: None
Finalized architecture and breakdown (please note task order):
In our new application-based onboarding (
MEN-2363) we take the user through creating a new Mender Artifact using the single-file-install Update Module. Unfortunately this is hard because the user needs to install mender-artifact and the Update Module generator script to use it, and the workstation operating systems may vary.
We therefore decided to add support to the Mender Server to create Mender Artifacts for application updates. The primary target for this now is to make onboarding easier, however it will likely be used by users beyond onboarding in the beginning for creating simple application-based updates. Down the road we will also support delta updates, which requires the server to generate deltas. Technically it may make sense to use the same feature/API for delta update generation down the line as well as it will also be provided as an Update Module (though the use case is different).
Finally, and possibly technically related, we are planning to support generation of disk (.sdimg) images later as well. This will use mender-convert, likely running inside a docker container and will be much more resource-intensive. Maybe it will be a completely different service, but it would seem like we need ability to run CLI commands and there are some other similarities as well.
User value (why)
- Easier to complete onboarding
- Easy to generate simple application based Artifacts in for early stages of product development
- It is possible to upload a single (application) file to the Mender server and generate an Aritfact (using the Single File Update Module)
- Required parameters are taken as inputs: Artifact name, Device types compatible (have reasonable default/tip – also see MEN-2460), File destination directory (on the devices)
- Onboarding is updated to use this feature (instead of directing the user to download mender-artifact)
- There is a limit on the file size for performance reasons (especially for HM)
- We should probably allow tens of MB to support application updates. 100 MB should be more than enough, but we can go lower if needed.
- In the future, this feature can be extended to support more update modules