On 10/19/2016 10:33 AM, Dan Sneddon wrote:
I am doing research to support the spec for TripleO deployment on
routed networks . I would like some input on how to represent
multiple subnet ranges for the provisioning network in undercloud.conf.
The Ironic Inspector dnsmasq service is currently configured using the
puppet-ironic module, and the range of IP addresses is taken directly
from undercloud.conf. For example, here is the .erb which configures
/etc/ironic-inspector/dnsmasq.conf if using TFTP :
interface=<%= @dnsmasq_interface %>
dhcp-range=<%= @dnsmasq_ip_range %>,29
dhcp-boot=pxelinux.0,localhost.localdomain,<%= @dnsmasq_local_ip %>
Since there is only one dnsmasqiprange, only a single subnet is
served via DHCP. What I would like to do is extend the undercloud.conf
to support multiple IP ranges, and I'm looking for input on the best
way to represent the data.
I am not sure if we can be fully backwards-compatible here. My gut
feeling is no, unless we leave the existing parameters as-is and add
something like an "additionalinspectionipranges" parameter. The data
that will need to be represented for each subnet is:
- Network subnet
- Start and end of inspection IP range
- Subnet mask (could be determined by parsing cidr, like 172.20.1.0/24)
- Gateway router for the subnet
We could potentially represent this data as a JSON, or as a list of
strings. Here are some potential examples:
additionalinspectionipranges = [
Either of these might get unwieldy depending on the number of networks.
Perhaps we could have a repeating parameter? Something like this:
I would like some feedback about how to represent this data in a way
that it can be easily parsed by Puppet, while remaining readable. Any
suggestions would be very much appreciated.
 - https://review.openstack.org/#/c/377088