From 34332dfa7e320d86d316574f9050368e011ef955 Mon Sep 17 00:00:00 2001
From: sarthurdev <965089+sarthurdev@users.noreply.github.com>
Date: Sun, 14 Sep 2025 20:30:27 +0200
Subject: [PATCH] kea: T7821: Update Kea to 3.0
---
debian/control | 5 ++++-
op-mode-definitions/monitor-log.xml.in | 8 ++++----
op-mode-definitions/show-log.xml.in | 8 ++++----
smoketest/scripts/cli/test_service_dhcp-server.py | 1 -
src/conf_mode/service_dhcp-server.py | 4 ++--
src/conf_mode/service_dhcpv6-server.py | 4 ++--
.../override.conf | 0
...p-ddns-server@.service => kea-dhcp-ddns@.service} | 0
.../override.conf | 0
...{kea-dhcp4-server@.service => kea-dhcp4@.service} | 0
.../override.conf | 0
...{kea-dhcp6-server@.service => kea-dhcp6@.service} | 0
src/op_mode/dhcp.py | 12 ++++++------
src/op_mode/restart.py | 4 ++--
14 files changed, 24 insertions(+), 22 deletions(-)
rename src/etc/systemd/system/{kea-dhcp-ddns-server.service.d => kea-dhcp-ddns.service.d}/override.conf (100%)
rename src/etc/systemd/system/{kea-dhcp-ddns-server@.service => kea-dhcp-ddns@.service} (100%)
rename src/etc/systemd/system/{kea-dhcp4-server.service.d => kea-dhcp4.service.d}/override.conf (100%)
rename src/etc/systemd/system/{kea-dhcp4-server@.service => kea-dhcp4@.service} (100%)
rename src/etc/systemd/system/{kea-dhcp6-server.service.d => kea-dhcp6.service.d}/override.conf (100%)
rename src/etc/systemd/system/{kea-dhcp6-server@.service => kea-dhcp6@.service} (100%)
diff --git a/debian/control b/debian/control
index e36e20ebee..add8de1a75 100644
--- a/debian/control
+++ b/debian/control
@@ -221,7 +221,10 @@ Depends:
# For "service dhcp-relay"
isc-dhcp-relay,
# For "service dhcp-server"
- kea,
+ isc-kea-dhcp4,
+ isc-kea-dhcp6,
+ isc-kea-dhcp-ddns,
+ isc-kea-hooks,
# End "service dhcp-server"
# For "service lldp"
lldpd,
diff --git a/op-mode-definitions/monitor-log.xml.in b/op-mode-definitions/monitor-log.xml.in
index 7139ea082f..5cc7db6aa7 100644
--- a/op-mode-definitions/monitor-log.xml.in
+++ b/op-mode-definitions/monitor-log.xml.in
@@ -44,13 +44,13 @@
Monitor last lines of DHCP server log
- journalctl --no-hostname --follow --boot --unit kea-dhcp4-server.service
+ journalctl --no-hostname --follow --boot --unit kea-dhcp4.service
Monitor last lines of DHCP server log on specific vrf
- journalctl --no-hostname --follow --boot --unit "kea-dhcp4-server@$6.service"
+ journalctl --no-hostname --follow --boot --unit "kea-dhcp4@$6.service"
@@ -82,13 +82,13 @@
Monitor last lines of DHCPv6 server log
- journalctl --no-hostname --follow --boot --unit kea-dhcp6-server.service
+ journalctl --no-hostname --follow --boot --unit kea-dhcp6.service
Monitor last lines of DHCPv6 server log on specific vrf
- journalctl --no-hostname --follow --boot --unit "kea-dhcp6-server@$6.service"
+ journalctl --no-hostname --follow --boot --unit "kea-dhcp6@$6.service"
diff --git a/op-mode-definitions/show-log.xml.in b/op-mode-definitions/show-log.xml.in
index 88d69a27c6..8bd4430ec0 100755
--- a/op-mode-definitions/show-log.xml.in
+++ b/op-mode-definitions/show-log.xml.in
@@ -104,13 +104,13 @@
Show log for DHCP server
- journalctl --no-hostname --boot --unit kea-dhcp4-server.service
+ journalctl --no-hostname --boot --unit kea-dhcp4.service
Monitor last lines of DHCP server log on specific vrf
- journalctl --no-hostname --follow --boot --unit "kea-dhcp4-server@$6.service"
+ journalctl --no-hostname --follow --boot --unit "kea-dhcp4@$6.service"
@@ -142,13 +142,13 @@
Show log for DHCPv6 server
- journalctl --no-hostname --boot --unit kea-dhcp6-server.service
+ journalctl --no-hostname --boot --unit kea-dhcp6.service
Monitor last lines of DHCPv6 server log on specific vrf
- journalctl --no-hostname --boot --unit "kea-dhcp6-server@$6.service"
+ journalctl --no-hostname --boot --unit "kea-dhcp6@$6.service"
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py
index 92287431bd..f1abc5216a 100755
--- a/smoketest/scripts/cli/test_service_dhcp-server.py
+++ b/smoketest/scripts/cli/test_service_dhcp-server.py
@@ -33,7 +33,6 @@
PROCESS_NAME = 'kea-dhcp4'
D2_PROCESS_NAME = 'kea-dhcp-ddns'
-CTRL_PROCESS_NAME = 'kea-ctrl-agent'
KEA4_CONF = '/run/kea/kea-dhcp4.conf'
KEA4_D2_CONF = '/run/kea/kea-dhcp-ddns.conf'
KEA4_CTRL = '/run/kea/dhcp4-ctrl-socket'
diff --git a/src/conf_mode/service_dhcp-server.py b/src/conf_mode/service_dhcp-server.py
index a273dff50d..ae03389961 100755
--- a/src/conf_mode/service_dhcp-server.py
+++ b/src/conf_mode/service_dhcp-server.py
@@ -582,9 +582,9 @@ def apply(dhcp):
# if running in vrf, set base diffrently
if argv and len(argv) > 1:
vrf_name = argv[1]
- services = [f'kea-dhcp4-server@{vrf_name}', f'kea-dhcp-ddns-server@{vrf_name}']
+ services = [f'kea-dhcp4@{vrf_name}', f'kea-dhcp-ddns@{vrf_name}']
else:
- services = ['kea-dhcp4-server', 'kea-dhcp-ddns-server']
+ services = ['kea-dhcp4', 'kea-dhcp-ddns']
if not dhcp or 'disable' in dhcp:
for service in services:
diff --git a/src/conf_mode/service_dhcpv6-server.py b/src/conf_mode/service_dhcpv6-server.py
index a5febd303e..1b2f07e435 100755
--- a/src/conf_mode/service_dhcpv6-server.py
+++ b/src/conf_mode/service_dhcpv6-server.py
@@ -289,9 +289,9 @@ def apply(dhcpv6):
# if running in vrf, set base diffrently
if argv and len(argv) > 1:
vrf_name = argv[1]
- service_name = f'kea-dhcp6-server@{vrf_name}.service'
+ service_name = f'kea-dhcp6@{vrf_name}.service'
else:
- service_name = 'kea-dhcp6-server.service'
+ service_name = 'kea-dhcp6.service'
# bail out early - looks like removal from running config
if not dhcpv6 or 'disable' in dhcpv6:
diff --git a/src/etc/systemd/system/kea-dhcp-ddns-server.service.d/override.conf b/src/etc/systemd/system/kea-dhcp-ddns.service.d/override.conf
similarity index 100%
rename from src/etc/systemd/system/kea-dhcp-ddns-server.service.d/override.conf
rename to src/etc/systemd/system/kea-dhcp-ddns.service.d/override.conf
diff --git a/src/etc/systemd/system/kea-dhcp-ddns-server@.service b/src/etc/systemd/system/kea-dhcp-ddns@.service
similarity index 100%
rename from src/etc/systemd/system/kea-dhcp-ddns-server@.service
rename to src/etc/systemd/system/kea-dhcp-ddns@.service
diff --git a/src/etc/systemd/system/kea-dhcp4-server.service.d/override.conf b/src/etc/systemd/system/kea-dhcp4.service.d/override.conf
similarity index 100%
rename from src/etc/systemd/system/kea-dhcp4-server.service.d/override.conf
rename to src/etc/systemd/system/kea-dhcp4.service.d/override.conf
diff --git a/src/etc/systemd/system/kea-dhcp4-server@.service b/src/etc/systemd/system/kea-dhcp4@.service
similarity index 100%
rename from src/etc/systemd/system/kea-dhcp4-server@.service
rename to src/etc/systemd/system/kea-dhcp4@.service
diff --git a/src/etc/systemd/system/kea-dhcp6-server.service.d/override.conf b/src/etc/systemd/system/kea-dhcp6.service.d/override.conf
similarity index 100%
rename from src/etc/systemd/system/kea-dhcp6-server.service.d/override.conf
rename to src/etc/systemd/system/kea-dhcp6.service.d/override.conf
diff --git a/src/etc/systemd/system/kea-dhcp6-server@.service b/src/etc/systemd/system/kea-dhcp6@.service
similarity index 100%
rename from src/etc/systemd/system/kea-dhcp6-server@.service
rename to src/etc/systemd/system/kea-dhcp6@.service
diff --git a/src/op_mode/dhcp.py b/src/op_mode/dhcp.py
index 4d6d092e69..446799ddb2 100755
--- a/src/op_mode/dhcp.py
+++ b/src/op_mode/dhcp.py
@@ -322,9 +322,9 @@ def show_server_pool_statistics(
inet_suffix = '6' if family == 'inet6' else '4'
if vrf:
- service = f'kea-dhcp{inet_suffix}-server@{vrf}.service'
+ service = f'kea-dhcp{inet_suffix}@{vrf}.service'
else:
- service = f'kea-dhcp{inet_suffix}-server.service'
+ service = f'kea-dhcp{inet_suffix}.service'
if not is_systemd_service_running(service):
Warning(stale_warn_msg)
@@ -372,9 +372,9 @@ def show_server_leases(
inet_suffix = '6' if family == 'inet6' else '4'
if vrf:
- service = f'kea-dhcp{inet_suffix}-server@{vrf}.service'
+ service = f'kea-dhcp{inet_suffix}@{vrf}.service'
else:
- service = f'kea-dhcp{inet_suffix}-server.service'
+ service = f'kea-dhcp{inet_suffix}.service'
if not is_systemd_service_running(service):
Warning(stale_warn_msg)
@@ -433,9 +433,9 @@ def show_server_static_mappings(
inet_suffix = '6' if family == 'inet6' else '4'
if vrf:
- service = f'kea-dhcp{inet_suffix}-server@{vrf}.service'
+ service = f'kea-dhcp{inet_suffix}@{vrf}.service'
else:
- service = f'kea-dhcp{inet_suffix}-server.service'
+ service = f'kea-dhcp{inet_suffix}.service'
if not is_systemd_service_running(service):
Warning(stale_warn_msg)
diff --git a/src/op_mode/restart.py b/src/op_mode/restart.py
index 7f50ba6214..29bd690e36 100755
--- a/src/op_mode/restart.py
+++ b/src/op_mode/restart.py
@@ -26,11 +26,11 @@
service_map = {
'dhcp': {
- 'systemd_service': 'kea-dhcp4-server',
+ 'systemd_service': 'kea-dhcp4',
'path': ['service', 'dhcp-server'],
},
'dhcpv6': {
- 'systemd_service': 'kea-dhcp6-server',
+ 'systemd_service': 'kea-dhcp6',
'path': ['service', 'dhcpv6-server'],
},
'dns_dynamic': {