Planning OTA work for Jasmine Sprint 4

This is a continuation of https://forum.ostc-eu.org/t/planning-ota-work-for-jasmine-sprint-3/ for the fourth sprint.

We’ve made lots of progress last cycle, which sets the direction for this cycle to follow. I think this iteration should focus on two main topic:

  1. Integration between SystemOTA and RAUC. We need to get the hooks in place, we need to wrap our heads around how we will call RAUC APIs and where RAUC would run unmanaged, as a system service. Here I’m talking more about having a solid vision and understanding of how the whole solution works rather than by implementing it all.

I’ve started two small efforts last iteration that walk towards that: We now have an ARCHITECTURE.md document and I’ve started implementing RAUC boot loader hooks. What is still missing is the precise picture of what we call in RAUC, when, and what the results are.

I would _love _ to have RAUC in CI as we make this journey. Given that RAUC is packaged in Debian and Ubuntu, we could have a test suite which creates a disk image, partitions it, mounts the partitions with a loopback device and handles bulk of the RAUC<->SystemOTA interaction, all from the comfort of a modern Ubuntu system, with all the tools available to make CI practical. This is by no means an excuse not to use our own images, but I think CI with the latest-and-greatest ASOS image will always be more tricky, mainly because of the chicken-and-egg interaction between the OTA stack, the State Operators and the rest of the image. We’ll get there and I hope to use the Alpha-tagged Jasmine release as a starting point to see what our service looks like when dropped into the Jasmine image, by re-packaging the image with the OTA bits injected (so that SystemOTA repository can move while the image is fixed until CI configuration changes)

  1. Get the read-only bits off the whiteboard/blackboard and into our bitbake recipes. We want to make sure our configuration is right. That we have the right kernel options, that the right packages are in. We should also try to put systemd into initrd at this stage. There will be lots of pain points and I’m not sure how to test this aspect much, but it is clear we need to and face the problem head on.

Like before, I’d like to know your opinions and would like to have a call with both @Wojciech_Zmuda and @agherzan, to discuss the finer points.