← Back to team overview

maas-devel team mailing list archive

Kernel command line customisation

 

All the pieces for being able to specify additional per-node kernel
parameters using tags have now landed on trunk.

This should mean that the related bug is fixed, but it would be great
if it got some testing in real scenarios to see if it actually lets
people do the kinds of things they'll want to.

See the bug and linked merge proposals for more details:

<https://bugs.launchpad.net/maas/+bug/1044503>

What's been implemented is:
* A global config setting 'kernel_opts', this is settable both using
the cli and via the web ui.
* Optional per-tag 'kernel_opts' flag, which is settable via the cli
when creating or modifying a tag.
* Feedback in the web ui about what tags and nodes use which opts from where.

No merging of kernel options is done. The last matching tagfor a node
(when ordered by tag name)  with kernel opts set will be used, or the
global config setting if there are no matching tags with opts.

Some rough ideas for how to use the per-tag option setting. Make all
nodes (the definition effectively matches everything) boot with the
extra kernel param "console=ttyS0" appended to the end of the built in
ones:

    maas-cli tag create --name=00-default-console --definition=true \
        --kernel_opts=console=ttyS0

Alternative to the current highbank special case included in the
provisioningserver code:

    maas-cli tag create --name=01-highbank-console \
        --definition="contains(/node/product,'Highbank')"
--kernel_opts=console=tty

If one particular node needs special handling, you can omit the
definition and manually attach the tag:

    maas-cli tag create --name=99-special-snowflake --kernel_opts=OPTS
    maas-cli tag update-nodes 99-special-snowflake --add SYSTEM_ID

Using a naming scheme like this for tags used for kernel options is
something work mentioning. If multiple tags match, it should be
obvious which will 'win' by sorting last.

Martin