Commit a26965d
committed
feat(dnsmasq): upgrade to Debian forky and add --conf-poll patch
Bump the dnsmasq container to debian:forky-20260623-slim (dnsmasq
2.93-1), which is close enough to our dev tree that both vendored
patches now apply cleanly, and rebase dhcp-allowed-srvids.patch onto
that version.
Add conf-poll.patch, a new dnsmasq feature (--conf-poll /
--conf-poll-interval=<seconds>, default 1s) written to solve a real
problem in our Ironic setup: dnsmasq relies on inotify to notice
changes to --hostsdir, --dhcp-hostsdir and --dhcp-optsdir. When those
directories live on an NFS share and are modified or created by a
different NFS client (i.e. not the machine running dnsmasq itself),
the local kernel never gets an inotify event for it, so dnsmasq
silently keeps serving stale DNS/DHCP data until it's sent a SIGHUP or
restarted.
--conf-poll makes dnsmasq additionally stat() those directories on a
timer (every --conf-poll-interval seconds) and reload anything that's
new, changed, or removed, using the exact same reload logic as an
inotify event or SIGHUP would trigger. It runs alongside inotify, not
instead of it, so on non-NFS setups where inotify works fine it's just
a harmless no-op backup check. It's opt-in and disabled by default, so
existing deployments are unaffected unless the option is explicitly
set. Deleting a file from --dhcp-hostsdir/--dhcp-optsdir intentionally
still does not remove the DHCP config it added, since that already
matches how those two options have always behaved.1 parent 28edf04 commit a26965d
3 files changed
Lines changed: 485 additions & 37 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
31 | | - | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
| 35 | + | |
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
36 | 39 | | |
37 | 40 | | |
38 | | - | |
| 41 | + | |
39 | 42 | | |
40 | 43 | | |
41 | 44 | | |
| |||
0 commit comments