Extension to cgroup config file syntax for heterogenous clusters

Many sites I know want different behaviour for the cgroup hook on different nodes. The current syntax is cumbersome (you can exclude vntypes but you can’t include them, to give but one example) and it also allows you to selectively enable and disable sections but does not allow you to change booleans depending on which host/vntype the hook event is processed.

I’ve cobbled up a prototype implementation of a parser that extends the syntax (backward compatibility is, of course, a must), allowing you to enable/disable sections and configure booleans depending on the value of the hostname or the vntype.

The current provisions to support backward compatibility can, BTW, in some cases be used to actually create a rule and then exceptions, something some sites need for e.g. testing.

As a bonus “fnmatch”-style wildcards are now also supported, which allow some sites to forgo defining too many vntypes if their hostnames are arranged in such a way that they can be used to enable or disable features, or if they have common strings in their vntypes (e.g. “gpu”) that can be used for it.

Here’s the design document:

Design looks good to me.