# NOTE(yoctozepto): ironic-dnsmasq is used to deliver DHCP(v6) service # DNS service is disabled: port=0 interface={{ ironic_dnsmasq_interface }} bind-interfaces {% for item in ironic_dnsmasq_dhcp_ranges %} {% set tag = item.tag | default('range_' ~ loop.index) %} {% set lease_time = item.lease_time | default(ironic_dnsmasq_dhcp_default_lease_time) %} dhcp-range=set:{{ tag }},{{ item.range }},{{ lease_time }} {% if item.routers is defined %} dhcp-option=tag:{{ tag }},option:router,{{ item.routers }} {% endif %} {% endfor %} {% if api_address_family == 'ipv6' %} {# TODO(yoctozepto): IPv6-only support - DHCPv6 PXE support #} {# different options must be used here #} {% else %}{# ipv4 #} dhcp-option=option:tftp-server,{{ api_interface_address }} dhcp-option=option:server-ip-address,{{ api_interface_address }} dhcp-option=210,/var/lib/ironic/tftpboot/ {% if ironic_dnsmasq_serve_ipxe | bool %} dhcp-match=ipxe,175 dhcp-match=set:efi,option:client-arch,7 dhcp-match=set:efi,option:client-arch,9 # Client is already running iPXE; move to next stage of chainloading dhcp-option=tag:ipxe,option:bootfile-name,{{ ironic_http_url }}/inspector.ipxe # Client is PXE booting over EFI without iPXE ROM, # send EFI version of iPXE chainloader dhcp-option=tag:efi,tag:!ipxe,option:bootfile-name,{{ ironic_dnsmasq_uefi_ipxe_boot_file }} {% endif %} dhcp-option=option:bootfile-name,{{ ironic_dnsmasq_boot_file }} {% endif %}{# ipv6/ipv4 #} log-async log-facility=/var/log/kolla/ironic/dnsmasq.log {% if ironic_logging_debug | bool %} log-dhcp {% endif %} {% if ironic_inspector_pxe_filter == 'dnsmasq' %} dhcp-hostsdir=/etc/dnsmasq/dhcp-hostsdir {% endif %}