From 9ce47b2fff74e943a1a63cf56a19708b41e5195b Mon Sep 17 00:00:00 2001
From: Pierre Riteau <pierre@stackhpc.com>
Date: Fri, 30 Sep 2022 13:26:23 +0200
Subject: [PATCH] Remove dhcp-sequential-ip in ironic dnsmasq config

With this option enabled, dnsmasq can offer the same IP address to
multiple hosts when their requests are close to each other. Remove this
option in order to use the built-in hashing mechanism which will
allocate random IP addresses, which should be less likely to conflict.

Closes-Bug: #1991390
Change-Id: I09a9fa2d0c54635b899ad7906cc2e2e4580ef5ad
---
 ansible/roles/ironic/templates/ironic-dnsmasq.conf.j2       | 1 -
 ...onic-dnsmasq-no-dhcp-sequential-ip-13256d6a55e9027f.yaml | 6 ++++++
 2 files changed, 6 insertions(+), 1 deletion(-)
 create mode 100644 releasenotes/notes/ironic-dnsmasq-no-dhcp-sequential-ip-13256d6a55e9027f.yaml

diff --git a/ansible/roles/ironic/templates/ironic-dnsmasq.conf.j2 b/ansible/roles/ironic/templates/ironic-dnsmasq.conf.j2
index beddbdeea..f7eb73eb6 100644
--- a/ansible/roles/ironic/templates/ironic-dnsmasq.conf.j2
+++ b/ansible/roles/ironic/templates/ironic-dnsmasq.conf.j2
@@ -13,7 +13,6 @@ dhcp-range=set:{{ tag }},{{ item.range }},{{ lease_time }}
 dhcp-option=tag:{{ tag }},option:router,{{ item.routers }}
 {% endif %}
 {% endfor %}
-dhcp-sequential-ip
 
 {% if api_address_family == 'ipv6' %}
 {# TODO(yoctozepto): IPv6-only support - DHCPv6 PXE support #}
diff --git a/releasenotes/notes/ironic-dnsmasq-no-dhcp-sequential-ip-13256d6a55e9027f.yaml b/releasenotes/notes/ironic-dnsmasq-no-dhcp-sequential-ip-13256d6a55e9027f.yaml
new file mode 100644
index 000000000..03bada6b5
--- /dev/null
+++ b/releasenotes/notes/ironic-dnsmasq-no-dhcp-sequential-ip-13256d6a55e9027f.yaml
@@ -0,0 +1,6 @@
+---
+fixes:
+  - |
+    Removes the ``dhcp-sequential-ip`` configuration option from
+    ``ironic_dnsmasq`` to avoid a race condition offering the same IP address
+    to multiple hosts being inspected at the same time.
-- 
GitLab