post-scripts: Enable systemd-binfmt for first boot. 41/15341/2
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Thu, 9 Jun 2016 18:36:38 +0000 (20:36 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Fri, 10 Jun 2016 19:02:59 +0000 (21:02 +0200)
commit0ab4e02509f91581a4ade9eee78f4279adc8232f
tree1411821fc3fb73efb2c1a0fd281547cdc8eb5404
parenteaf1948214369f3ad4b7fe7639c7d7907ae43195
post-scripts: Enable systemd-binfmt for first boot.

ARMBAND NOTE(S):
- This is a bug fix + a new feature (arch list in a file on FM)
- This is overengineered because:
  * we want to move patching to post-ISO creation, OPNFV style;
  * easier integration with Fuel@OPNFV, using post-install scripts;
  * prepare for true multiarch support on Fuel Master;

IMPORTANT:
This commit introduces the following file on Fuel Master,
containing the list of arch supported for target nodes:
</etc/fuel_openstack_arch>.

This file is created AFTER pre.d OPNFV scripts are ran, also by
bootstrap_admin_node.sh, BEFORE the post.d scripts are executed.
NOTE: Arch format is the same used by dpkg (e.g.: "amd64 arm64")

Based on the number of foreign architectures we should support
(the list of archs in /etc/fuel_openstack_arch minus native arch),
we determine whether cross-builds are expected, in which case
binfmt support should be functional during first Fuel Master boot.

Since systemd-binfmt service has a series of preconditions for
starting, which are tested early during first boot, some of them
are NOT YET true (e.g. no binfmt handlers are present before
qemu-user-static package is installed), so the service is not
automatically started. Of course, this only affects the first boot.

Finally, this commit adds an OPNFV post-install script in
/opt/opnfv/bootstrap/post.d, which starts systemd-binfmt service.

Change-Id: I6dbe4b3ac5a2fd076881d6778ff66b82bb6c7379
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
patches/opnfv-fuel/0031-post-scripts-Enable-systemd-binfmt-for-first-boot.patch [new file with mode: 0644]