Description
Our gateway deployment currently uses ISC DHCP and custom service overrides in roles/dhcp/tasks/main.yml with config template roles/dhcp/templates/dhcp.conf.
ISC DHCP is aging and should be replaced with Kea for better maintainability, future package support, and cleaner operations.
Goals
- Replace
isc-dhcp-server with kea-dhcp4-server on gateways.
- Preserve existing lease behavior and address ranges.
- Keep static lease integration currently sourced from
dhcp-static.
- Provide a safe phased rollout with rollback path.
Scope
- Create a new role (or migrate existing
dhcp role) for Kea install and configuration.
- Generate
kea-dhcp4.conf from Ansible variables currently used by the DHCP role:
dhcp_range
ffsh_ipv4_address
- Replace ISC service management and overrides with Kea service management.
- Ensure the gateway still serves DHCP on
bat0.
- Keep tagging and playbook behavior compatible with current deployment flow in
setup.yml.
Implementation Outline
- Add Kea package installation and service enable/restart tasks.
- Add Kea config template equivalent to current subnet/range/router/DNS behavior.
- Migrate static lease input:
- Option A: render Kea reservations directly from source data.
- Option B: keep
dhcp-static repo but transform output into Kea-compatible reservations include.
- Add config validation step before restart to prevent broken rollout.
- Stop and disable
isc-dhcp-server once Kea is validated.
Acceptance Criteria
- Fresh gateway deploy results in active
kea-dhcp4 service.
- Existing clients receive leases within configured range.
- Static reservations still work.
- DHCP traffic remains bound to
bat0 network behavior expected today.
- No dependency on
isc-dhcp-server after migration.
gw-services and operational docs reflect the new DHCP service name.
Rollout Plan
- Implement role and test on one non-critical gateway first.
- Run a side-by-side validation window (functional checks and logs).
- Roll out host by host with current serial deployment strategy.
- Keep rollback task path to reinstall and restore ISC DHCP config if needed.
Risks and Notes
- Static reservation migration is the most sensitive part.
- Service naming and monitoring checks must be updated where they reference
isc-dhcp-server.
- Config syntax and option naming differ between ISC and Kea, so direct template copy is not enough.
Description
Our gateway deployment currently uses ISC DHCP and custom service overrides in
roles/dhcp/tasks/main.ymlwith config templateroles/dhcp/templates/dhcp.conf.ISC DHCP is aging and should be replaced with Kea for better maintainability, future package support, and cleaner operations.
Goals
isc-dhcp-serverwithkea-dhcp4-serveron gateways.dhcp-static.Scope
dhcprole) for Kea install and configuration.kea-dhcp4.conffrom Ansible variables currently used by the DHCP role:dhcp_rangeffsh_ipv4_addressbat0.setup.yml.Implementation Outline
dhcp-staticrepo but transform output into Kea-compatible reservations include.isc-dhcp-serveronce Kea is validated.Acceptance Criteria
kea-dhcp4service.bat0network behavior expected today.isc-dhcp-serverafter migration.gw-servicesand operational docs reflect the new DHCP service name.Rollout Plan
Risks and Notes
isc-dhcp-server.