<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hello everyone,
<div class=""><br class="">
</div>
<div class="">I am running an HA (hot standby) Kea setup in Kubernetes. I do not want to hard-code service IPs, so I switched to headless services instead, hoping to be able to provide (fest) hostnames in the HA configuration:</div>
<div class=""><br class="">
</div>
<div class="">[…]</div>
<div class="">
<div class="">"parameters": {</div>
<div class="">  "high-availability": [</div>
<div class="">    {</div>
<div class="">      "this-server-name": "secondary",</div>
<div class="">      "mode": "hot-standby",</div>
<div class="">      "heartbeat-interval": 10000,</div>
<div class="">      "max-response-delay": 60000,</div>
<div class="">      "max-ack-delay": 10000,</div>
<div class="">      "max-unacked-messages": 0,</div>
<div class="">      "max-unacked-clients": 0,</div>
<div class="">      "peers": [</div>
<div class="">        {</div>
<div class="">            "name": "primary",</div>
<div class="">            "url": "<a href="http://dhcp-prim-headless-svc:8000" class="">http://dhcp-prim-headless-svc:8000</a>/“,  <- does not seem to be supported</div>
<div class="">            "role": "primary",</div>
<div class="">            "auto-failover": true</div>
<div class="">        },</div>
<div class="">        {</div>
<div class="">            "name": "secondary",</div>
<div class="">            "url": "<a href="http://dhcp-second-headless-svc:8000" class="">http://dhcp-second-headless-svc:8000</a>/“, <- same here</div>
<div class="">            "role": "standby",</div>
<div class="">            "auto-failover": true</div>
<div class="">        }</div>
<div class="">      ]</div>
<div class="">    }</div>
<div class="">  ]</div>
<div class="">}</div>
</div>
<div class="">[…]</div>
<div class=""><br class="">
</div>
<div class="">However, the Kea container fails to start with the error message that the address cannot be resolved:</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">363 18:16:52.313 kea-dhcp4.hooks HOOKS_STD_CALLOUT_REGISTERED hooks library /usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so registered standard callout for hook leases4_committed at address 0x7f20d4739360</div>
<div class="">363 18:16:52.313 kea-dhcp4.ha-hooks HA_CONFIGURATION_FAILED failed to configure High Availability hooks library: bad url '<a href="http://dhcp-prim-headless-svc:8000/': Failed to convert string to address 'dhcp-prim-headless-svc" class="">http://dhcp-prim-headless-svc:8000/':
 Failed to convert string to address 'dhcp-prim-headless-svc</a>': Invalid argument for server primary</div>
<div class="">363 18:16:52.313 kea-dhcp4.hooks HOOKS_LOAD_ERROR 'load' function in hook library /usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so returned error 1</div>
</div>
<div class=""><br class="">
</div>
<div class="">The headless service is perfectly pingable from other containers in the pod, so no DNS general problem there.</div>
<div class=""><br class="">
</div>
<div class="">I also stumbled upon a unit test, indicating that hostnames are not supported in the configuration, <a href="https://gitlab.isc.org/isc-projects/kea/-/blob/master/src/hooks/dhcp/high_availability/tests/ha_config_unittest.cc#L651-L677" class="">https://gitlab.isc.org/isc-projects/kea/-/blob/master/src/hooks/dhcp/high_availability/tests/ha_config_unittest.cc#L651-L677</a>.
 However, the HA design document, <a href="https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/High-Availability-Design,has" class="">https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/High-Availability-Design,</a> clearly *has* hostnames in its showcase
 configuration.</div>
<div class=""><br class="">
</div>
<div class="">So, can someone, kindly, hint me if that’s supported or not? If the latter is the case, I will just open a feature request.</div>
<div class=""><br class="">
</div>
<div class="">For the developers: thanks for the great work, keep it up!</div>
<div class=""><br class="">
</div>
<div class="">Best,</div>
<div class="">   Damyan Y.</div>
<br class="">
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div>
<p class="p1"><span class="s1"><b class="">Damyan Yordanov</b></span><o:p class=""></o:p></p>
<p class="p1"><span class="s1">BTP Core FP R&C Gardener (SE)</span><o:p class=""></o:p></p>
<p class="p2"><span class="s2"><b class="">SAP SE, </b></span><span class="s1">Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany</span></p>
<p class="p1"><span class="s1">T +49 6227 7-65764, M +49 160 90 842 652, <a href="mailto:damyan.yordanov@sap.com" class="">damyan.yordanov@sap.com</a></span></p>
<p class="p1"><br class="">
</p>
<p class="p1"><span style="font-style: normal; font-size: 11px;" class=""><span class="s1">Pflichtangaben/Mandatory Disclosure Statement:<span class="Apple-converted-space"> </span><a href="http://www.sap.com/impressum" class="">www.sap.com/impressum</a></span> </span></p>
<p class="p1"><span style="font-style: normal; font-size: 11px;" class=""><span class="s1">Diese E-Mail kann Betriebs- oder Geschäftsgeheimnisse oder sonstige vertrauliche</span><span class="apple-converted-space"> </span><span class="s1">Informationen enthalten.
 Sollten Sie diese E-Mail irrtümlich erhalten haben, ist</span><span class="apple-converted-space"> </span><span class="s1">Ihnen eine Kenntnisnahme des Inhalts, eine Vervielfältigung oder Weitergabe der</span><span class="apple-converted-space"> </span><span class="s1">E-Mail
 ausdrücklich untersagt. Bitte benachrichtigen Sie uns und vernichten Sie die</span><span class="apple-converted-space"> </span>empfangene E-Mail. Vielen Dank. </span></p>
<p class="p1"><span style="font-style: normal; font-size: 11px;" class=""><span class="s1">This e-mail may contain trade secrets or privileged, undisclosed, or otherwise</span><span class="apple-converted-space"> </span><span class="s1">confidential information.
 If you have received this e-mail in error, you are hereby</span><span class="apple-converted-space"> </span><span class="s1">notified that any review, copying, or distribution of it is strictly prohibited. Please inform</span><span class="apple-converted-space"> </span>us
 immediately and destroy the original transmittal. Thank you for your cooperation.</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br class="">
</body>
</html>