RFC: multiple system configurations in a single image

Brad Bishop bradleyb at fuzziesquirrel.com
Tue Nov 28 08:14:32 AEDT 2017

A new use-case for OpenBMC I'm excited to support is multiple system
configurations in a single image.

First, a recap of the current state of affairs.

No support exists in-tree for this use case today.  At the moment  
OpenBMC applications are data-driven using in-memory structures (via
generated source code).  This is the yaml->python->mako pattern you
might be familiar with.

Obviously this pattern alone does not enable multiple configurations to
be supported in a single image so a fundamental change is required.

One proposal that has been made (out in Gerrit) is to replace the YAML
with JSON and parse it on the BMC.

I'll outline what I think the good/not-so-good of this approach are, as
compared to some other yet-to-be-invented idea for achieving the same

  - low complexity
  - removal of python dependency from application build

  - complexity shift from build to runtime (parsing, validation)
  - loss of implementation freedom of choice (adopting the proposed
solution _requires_ json parsing on _all_ platforms using reference
applications, even platforms using single configuration images)

I'd like to hear about any of the following:

- alternative ways to support multiple configurations in a single image
- items missing from the pro/con list above
- thoughts on whether or not the cons listed have any meaningful impact

thx - brad

More information about the openbmc mailing list