<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi!</p>
<p>1. You might be looking for the "operation-target": "memory"
parameter for the reservation commands.
<a class="moz-txt-link-freetext" href="https://kea.readthedocs.io/en/latest/arm/hooks.html#the-operation-target-parameter">https://kea.readthedocs.io/en/latest/arm/hooks.html#the-operation-target-parameter</a></p>
<p>2. ISC is aware of MySQL and PostgreSQLhook libraries missing
from 2.7.7 Docker images and up. Kea 3.0.0 will have this fixed.
Reverting to 2.7.6 or setting up the Cloudsmith repo inside the
container and installing packages with `apk add isc-kea-mysql
isc-kea-pgsql` can help.</p>
<p>Thanks!<br>
Andrei<br>
</p>
<div class="moz-cite-prefix">On 22/05/2025 17:58, Matt Crum via
Kea-users wrote:<br>
</div>
<blockquote type="cite"
cite="mid:PH0PR16MB47330E970B32E5EADCE57C53AA99A@PH0PR16MB4733.namprd16.prod.outlook.com">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator"
content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:12.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#467886;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:683019990;
mso-list-type:hybrid;
mso-list-template-ids:411749780 -1693441888 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
{mso-level-start-at:10;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Aptos",sans-serif;
mso-fareast-font-family:Aptos;
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-18.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div class="WordSection1">
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We’re rewriting some code to use the newly
available subnet/host hooks, testing with the ISC Kea 2.7.8
Docker image with a simple JSON backend, aiming to reduce the
amount of whole-file operations that we need to do.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The host-cmds hooks are proving difficult
to use - couple of questions if anyone can help (please):<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">1: JSON Configuration<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I cannot get the write (add/del/update)
host-cmds hooks to work with a basic JSON configuration;
despite this snippet in the latest documentation “These
commands can also modify hosts from the JSON configuration
independently from the hosts database. The changes provided in
the JSON configuration are volatile and can be made permanent
by sending the <a
href="https://kea.readthedocs.io/en/latest/arm/ctrl-channel.html#std-isccmd-config-write"
moz-do-not-send="true"><b>config-write</b></a> command.” (<a
href="https://kea.readthedocs.io/en/latest/arm/hooks.html#libdhcp-host-cmds-so-host-commands"
moz-do-not-send="true" class="moz-txt-link-freetext">https://kea.readthedocs.io/en/latest/arm/hooks.html#libdhcp-host-cmds-so-host-commands</a>).
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I always get “host database not available,
cannot update host” or similar when trying to use it. Do we
know of a way to manage reservations in a JSON backend,
without having to resort to whole configuration file
operations? Do I have to specifically set hosts-database to
empty or something (it’s not mentioned in the configuration
file at all at the moment)?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Note that the subnet-cmds hooks do support
updating the JSON configuration; I’d ideally fall back to
using these to manage reservations in each subnet, but it
isn’t supported.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">2: Docker and PGSQL<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I tried to enable a hosts backend running
on Postgres, but the kea4 Docker container does not come with
the PGSQL hook - same with MySQL. Is this going to be
available in the v3 Docker release / is there a way to install
it in the container using apk commands, so I can test in the
meantime? <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">As things stand, I’m unable to test the
writeable host-cmds using the Kea Docker image. The get
commands work OK with a JSON backend.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Any questions, let me know.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks<span
style="font-size:9.0pt;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
CONFIDENTIALITY NOTICE: This message is intended for the use of
the individual or entity to which it is addressed and may contain
information that is confidential, privileged, and exempt from
disclosure under applicable law. If the recipient of this message
is not the intended recipient, you are hereby notified that any
reading, printing, copying, dissemination, distribution,
disclosure, or forwarding of this communication is strictly
prohibited. If you have received this communication in error,
please contact the sender immediately and delete it from your
system. Thank You.
<div style="font-size:9pt; font-family: 'Calibri',sans-serif;">
<div>
<p style="MsoNormal"><span lang="EN"
style="font-size:10.0pt;font-family:"Helvetica",sans-serif;
color:white;mso-themecolor:background1;mso-ansi-language:EN">--PCNdcV.12</span></p>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
</body>
</html>