Skip to content

Configuration

All plugin behaviour is controlled through PLUGINS_CONFIG in your NetBox configuration:

PLUGINS_CONFIG = {
    "netbox_dhcp_kea_plugin": {
        "top_level_menu": True,
        "menu_name": "DHCP KEA",
        "enable_stork": True,
        "enable_netbox_dns": False,
        "enable_ddns": False,
    },
}

Every setting is optional; omitted keys fall back to their default.

Core settings

Setting Default Description
top_level_menu True Display the plugin as a top-level menu in NetBox's navigation rather than nested under "Plugins".
menu_name "DHCP KEA" Label used for the plugin menu.
enable_stork True Toggle ISC Stork monitoring integration. When False, all Stork-related menu entries, form fields, filters, API endpoints, and UI affordances are hidden.
enable_netbox_dns False Toggle linking of DNS A / AAAA / CNAME records (from netbox-plugin-dns) as IP sources on OptionData. Required for enable_ddns.
enable_ddns False Toggle the optional Kea 3.0+ Dynamic DNS subsystem (D2 daemons, TSIG keys, DDNS domains, DDNS policies). Requires enable_netbox_dns: True.
ddns_secret_backend "plaintext" Backend identifier consulted by TSIGKey.get_secret(). Only "plaintext" is shipped today; "vault" is reserved.
d2_default_control_socket_path "/tmp/kea-dhcp-ddns-ctrl.sock" Pre-fills the control socket field on new D2Daemon rows.
model_defaults (see below) Per-model default values, including reservation modes and lease lifetimes.

Model defaults

Default values for new DHCPServer and Subnet rows can be overridden:

PLUGINS_CONFIG = {
    "netbox_dhcp_kea_plugin": {
        "model_defaults": {
            "Subnet": {
                "valid_lifetime": 3600,
                "max_lifetime": 7200,
                "reservations_global": False,
                "reservations_in_subnet": True,
                "reservations_out_of_pool": True,
                "reservations_only": False,
            },
        },
    },
}

The reservations_* keys under model_defaults.Subnet control the server-level defaults applied to new DHCP servers. Individual subnets inherit from their server and may override per-subnet — see Features — Reservation modes for the inheritance rules.

Disabling optional features

To turn off Stork integration entirely:

PLUGINS_CONFIG = {
    "netbox_dhcp_kea_plugin": {
        "enable_stork": False,
    },
}

When a feature flag is off, the corresponding nav entries, URL patterns, API routes, form fields, and serializer fields are all suppressed. The underlying database tables remain in place but are unused; flipping the flag back on restores access.

Demo data

The plugin ships a generate_kea_demo_data management command that populates a fresh install with realistic example objects. Configure the data quantities through PLUGINS_CONFIG:

PLUGINS_CONFIG = {
    "netbox_dhcp_kea_plugin": {
        "demo_data": {
            "enabled": True,            # Required unless using --force on the CLI
            "vendor_option_spaces": 3,
            "option_definitions_per_space": 5,
            "option_data": 10,
            "client_classes": 5,
            "dhcp_servers": 3,
            "ha_relationships": 1,
            "subnets": 5,
        },
    },
}

See Usage — Demo data for the CLI invocation.