Hi Guillem et al.
I forgot to update this bugreport with my recent findings, sorry.
We’re now using this, from Ansible as Jinja2 template:
{
"Dhcp4": {
"interfaces-config": {
// set by Ansible
"service-sockets-max-retries": 100,
"service-sockets-retry-wait-time": 7500,
// true aborts the daemon unless ALL
interfaces can be used at startup
// false is safer and so we use it for
monitored VMs
"service-sockets-require-all": {{ nagios_kea_dhcpd4 | default(false) |
ternary('false', 'true') }},
"interfaces": {{ item.networks | dict2items | map(attribute='value') |
selectattr('dhcpd', 'defined') | se>
},
[…]
That is, if the system is monitored anyway, try for a long time
(a few systems have network-manager, which during boot d̲i̲s̲a̲b̲l̲e̲s̲
the already-upped interfaces for half a minute or so again!) to
start all the sockets (here 100 times 7.5 seconds) and then (as
in the current state) keeps running, which is useful if some of
the NICs are plug-in and possibly not available.
If the system is not monitored, "service-sockets-require-all"
makes KEA exit if it cannot fire up all the sockets.
So, it turns out that KEA has both options but not enabled by
default.
I think any wait-until-online support will only move the window
of success or failure, and that the best option is to suggest
to users to modify the config accordingly. (Upstream is informed,
and they may or may not change the default config in future
releases.)
bye,
//mirabilos
--
Thorsten Glaser
Linux / Unix Developer
Tel.: +49 160 91168501
E-Mail: [email protected]
B1 Systems GmbH
Osterfeldstraße 7 / 85088 Vohburg / https://www.b1-systems.de/
GF: Ralph Dehner / Unternehmenssitz: Vohburg / AG: Ingolstadt, HRB 3537