bifrost/releasenotes/notes/override-dhcp-boot-6659585b75d58757.yaml
Mark Goddard 92eb477798 Allow undionly.kpxe boot option to be overridden
As an operator, I may wish to provide DHCP boot options for hosts not
managed by bifrost using the bifrost dnsmasq server.

If a dhcp-boot configuration option is provided to dnsmasq via a file in
/etc/dnsmasq.d/, and the server is not booted via iPXE, it will be
overridden by the undionly.kpxe option added by bifrost in
/etc/dnsmasq.conf.

This occurs because the negated tag match !ipxe used in the
/undionly.kpxe dhcp-boot entry will match all hosts not using iPXE. The
dhcp-boot entries are processed in order and the last matching entry
wins. Since the config-dir option appears before the dhcp-boot options,
user-provided options are processed first and are therefore overridden.

The solution here is fairly simple - use a positive match for the ipxe
tag:

dhcp-boot=tag:ipxe,http://host:port/boot.ipxe
dhcp-boot=/undionly.kpxe

An entry with a tag will always win over the entry without a tag
specified, so it is now possible to add a rule to override
undionly.kpxe.

Change-Id: Ic0637e14504def73fbc0333eee9dc2456c57c32e
Closes-Bug: #1675367
2017-03-27 11:21:52 +01:00

18 lines
735 B
YAML

---
fixes:
- |
Allows ``undionly.kpxe`` boot option to be overridden.
As an operator, I may wish to provide DHCP boot options for hosts not
managed by bifrost using the bifrost dnsmasq server.
Previously, if a ``dhcp-boot`` configuration option was provided to dnsmasq
via a file in ``/etc/dnsmasq.d/``, and the server was not booted via iPXE,
the option would have been overridden by the ``undionly.kpxe`` option added
by bifrost in ``/etc/dnsmasq.conf``.
Bifrost now supports user-provided ``dhcp-boot`` options in
``/etc/dnsmasq.d``. These should be specified with an appropriate set of
tags to match against to ensure that the rule overrides the default rule
configured by bifrost.