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

Add OATU2 specification draft [WIP] #69

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

anadahz
Copy link
Member

@anadahz anadahz commented Aug 15, 2016

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.

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
Copy link
Member

@darkk darkk Aug 18, 2016

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.

Copy link
Member Author

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.

Copy link
Member

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)
Copy link
Member

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.

Copy link
Member Author

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
Copy link
Contributor

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?

Copy link
Member Author

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.

Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants