-
Notifications
You must be signed in to change notification settings - Fork 20
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
Add OATU2 specification draft [WIP] #69
base: master
Are you sure you want to change the base?
Conversation
A work in progress specification draft for Over The Air Unattended Updates (OTAU2) in Lepidopter probes.
* Atomic software release update | ||
|
||
* On failure, deploy previous working bootloader, kernel | ||
configuration, and filesystems |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SD cards are rather big, so we can afford having previous boot & root untouched, we don't need to update them in-place.
SWUpdate calls it Double copy with fall-back, Chromium OS exploits same idea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Though most SD card image burners do not support archived image copying to an SD card.
Having +16G free disk space is not always that feasible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As we've discussed on IRC, it may be quite safe to burn partition table, /boot
and /
. These three blobs take first ~1Gb of the card and remaining data may be left uninitialised. Moreover, initialization of the /data
on boot may be part of wipe-on-failure strategy.
replaces the filesystem | ||
|
||
* [OPTIONAL] Support for different host roles with a specific configuration set | ||
applicable only to specific hosts or groups (eg: partner probes) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned above configuration should not be handled by the update mechanism and it should be part of the software itself.
Managing the lifecycle of multiple differently configured images is going to be imho too complex to manage in the long run.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hellais By software you mean lepidopter or ooniprobe?
I think you will encounter cases of customization so it's better to have a plan rather than implementing an OTAU system with no roles in mind.
* Support for signing of images and verification of images on | ||
installation | ||
|
||
* Support for a self-hosted deployment server |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wouldn't a self hosted deployment server increase the fingerprint-ability of software we deploy?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bassosimone good point, we can perhaps use a cloud-fronted server were we 'll hand the updated images.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK, China is ok with blocking google cloud. So we may want to use more than one cloud.
Or employ some sort of Domain generation algorithm as a fallback for a blocked cloud & tor.
A work in progress specification draft for Over The Air Unattended
Updates (OTAU2) in Lepidopter probes.
Placed here to enumerate my progress on evaluating the best solution for OTAU2 in hardware (lepidopter) probes.