ARMImageBuildingConsole

Revision 3 as of 2010-05-26 20:40:15

Clear message

Summary

Infrastructure to build images with a web UI.

XXX expansion needed!

Release Note

?

Rationale

It is desirable to be able to create images on a reference system for sharing with others or releasing, aiding reproducibility and reducing unpredictability. For this reason, we will provide a system which can be set up for image building on request, allowing developers to trigger daily builds or milestone builds on the reference hardware.

User stories

Project lead Boris wants to build the final version of the operating system for his internet tablet to send to the factory and build onto 100,000 units of hardware. He goes to the image building console, selects the final configuration and clicks go. A few minutes later, the image is available for download.

Assumptions

XXX something about a virtualization approach for ARM?

XXX something about depending on launchpad vs not

Design

It's probably possible to use qemu to build images on intel hardware should we want to (will be very slow though, obviously).

Building images will chew up a lot of disk space very quickly.

There is a need to store a manifest -- a record of what went into the image.

Web UI for creating builds and seeing the logs etc.

Be able to go from image to the configuration that created it.

Implementation

Based on Launchpad?

OEM services have done lots of Canonical-internal development here, at the very least we should talk to them about that, if we can't reuse it for some reason.

Migration

Would we want to migrate OEM services to using our new infrastructure?

Test/Demo Plan

-

Unresolved issues

TBD

If image building requires root then building in the build farm will require some kind of virtualization for ARM. Even if image building doesn't require root, this is probably a good idea in any case (unless we trust live-helper a lot). Do we block on this? (Essentially, Launchpad would need to support ARM ppas).

There is a spec about image building without root, although the gobby notes for that spec seem to talk about rootstock, not live-helper. Presumably, changes to not require root would require hacking live-helper a bit.

Actions

This is from the gobby notes, but they are (a) a bit vague and (b) not assigned to anyone, so I don't know how to weave them into the spec.

  • virtual ppa infrastructure needed for ARM because image building requires building parts as root
    • virtualized QEMU is possible but slow.
  • add support for ARM bootloaders to live-helper
  • write a proposal for image building service (DB, web ui, etc.)
  • Look into livehelper 2
  • Investigate easier config for live-helper
  • Simplification of live-helper usage (configuration) for common targets.


CategorySpec