[lxc-devel] [lxc/lxc] 5b99af: Reduce duplication in new style configs

GitHub noreply at github.com
Tue Jun 24 20:41:07 UTC 2014


  Branch: refs/heads/master
  Home:   https://github.com/lxc/lxc
  Commit: 5b99af0079813347d90c935ea540ed7f96dcea38
      https://github.com/lxc/lxc/commit/5b99af0079813347d90c935ea540ed7f96dcea38
  Author: Stéphane Graber <stgraber at ubuntu.com>
  Date:   2014-06-24 (Tue, 24 Jun 2014)

  Changed paths:
    M config/templates/Makefile.am
    M config/templates/archlinux.common.conf.in
    M config/templates/archlinux.userns.conf.in
    M config/templates/centos.common.conf.in
    M config/templates/centos.userns.conf.in
    A config/templates/common.conf.in
    M config/templates/debian.common.conf.in
    M config/templates/debian.userns.conf.in
    M config/templates/fedora.common.conf.in
    M config/templates/fedora.userns.conf.in
    M config/templates/gentoo.common.conf.in
    M config/templates/gentoo.moresecure.conf.in
    M config/templates/gentoo.userns.conf.in
    M config/templates/opensuse.common.conf.in
    M config/templates/opensuse.userns.conf.in
    M config/templates/oracle.common.conf.in
    M config/templates/oracle.userns.conf.in
    M config/templates/plamo.common.conf.in
    M config/templates/plamo.userns.conf.in
    M config/templates/ubuntu.common.conf.in
    M config/templates/ubuntu.userns.conf.in
    A config/templates/userns.conf.in
    M configure.ac
    M hooks/clonehostname

  Log Message:
  -----------
  Reduce duplication in new style configs

This is a rather massive cleanup of config/templates/*

As new templates were added, I've noticed that we pretty much all share
the tty/pts configs, some capabilities being dropped and most of the
cgroup configuration. All the userns configs were also almost identical.

As a result, this change introduces two new files:
 - common.conf.in
 - userns.conf.in

Each is included by the relevant <template>.<type>.conf.in templates,
this means that the individual per-template configs are now overlays on
top of the default config.

Once we see a specific key becoming popular, we ought to check whether
it should also be applied to the other templates and if more than 50% of
the templates have it set to the same value, that value ought to be
moved to the master config file and then overriden for the templates
that do not use it.

This change while pretty big and scary, shouldn't be very visible from a
user point of view, the actual changes can be summarized as:
 - Extend clonehostname to work with Debian based distros and use it for
   all containers.
 - lxc.pivotdir is now set to lxc_putold for all templates, this means
   that instead of using /mnt in the container, lxc will create and use
   /lxc_putold instead. The reason for this is to avoid failures when the
   user bind-mounts something else on top of /mnt.
 - Some minor cgroup limit changes, the main one I remember is
   /dev/console now being writable by all of the redhat based containers.
   The rest of the set should be identical with additions in the per-distro
   ones.
 - Drop binfmtmisc and efivars bind-mounts for non-mountall based
   unpriivileged containers as I assumed they got those from copy/paste
   from Ubuntu and not because they actually need those entries. (If I'm
   wrong, we probably should move those to userns.conf then).

Additional investigation and changes to reduce the config delta between
distros would be appreciated. In practice, I only expect lxc.cap.drop
and lxc.mount.entry to really vary between distros (depending on the
init system, the rest should be mostly common.

Diff from the RFC:
 - Add archlinux to the mix
 - Drop /etc/hostname from the clone hook

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>




More information about the lxc-devel mailing list