Skip to main content

Document metadata

Status
Maintained
Approval
Approved
Version
1.0
Classification
PUBLIC
Owner
Lightning IT Documentation Maintainers
Approver
Lightning IT Product Owners
Audience
automation architects, platform operators, network engineers
Last reviewed
Next review
(Semiannual)

DHCP building-block contract

This building block defines the review boundary for a DHCP service. The published Lightning IT role described below expects a container that provides an ISC-style dhcpd command and configuration by default; it does not select or publish that container image. The defaults are not a Kea interface unless a separately reviewed change replaces the command, arguments, configuration, and validation contract.

DHCP operates on shared network state. A syntactically valid configuration can still allocate the wrong address, conflict with another server, or direct clients to the wrong dependency. Network ownership and isolated validation are therefore prerequisites, not follow-up tasks.

Published Lightning IT automation interface

The public lit.supplementary collection release v1.40.0, at immutable commit 9417550, publishes the role lit.supplementary.dhcp_deploy. It renders an ISC-style configuration and a rootful Podman kube-play manifest, then can manage a systemd service. The role fails closed for a runtime run until its production evidence gate is explicit.

The release has no role argument specification. This bounded interface is derived from the immutable defaults and assertions:

VariableType and requirement in v1.40.0Published defaultSensitivity and review note
dhcp_deploy_imageNon-empty string; caller-requiredEmpty stringNot secret; use an approved digest such as registry.example.com/infra/dhcpd@sha256:<digest>
dhcp_deploy_interfacesSequence; at least one entry is required for runtime deploymentEmpty listEnvironment-sensitive because real interface names disclose topology
dhcp_deploy_configString; required when configuration management is enabledEmpty stringSensitive operational data; real pools, options, and reservations must stay private
dhcp_deploy_use_host_networkBoolean; asserted true for the published runtime pathtrueSecurity-relevant because it joins the host network namespace
dhcp_deploy_required_capabilitiesSequenceNET_ADMIN, NET_RAW, NET_BIND_SERVICESecurity-relevant; the role keeps privileged false but these capabilities still require review
dhcp_deploy_production_readyBoolean; must be true for runtime deploymentfalseNot secret; it is an assertion input, not evidence by itself
dhcp_deploy_production_evidenceMapping; every published evidence flag must be true for runtime deploymentAll flags falseMay reference private evidence, but must contain no secret values
dhcp_deploy_production_evidence_referenceNon-empty string for runtime deploymentEmpty stringEnvironment-sensitive; use an authorized record identifier rather than embedding evidence
dhcp_deploy_skip_runtimeBooleanfalseSetting true permits render-only testing and bypasses runtime gates; it is not production acceptance

The bounded interface has no credential variable. Its configuration, evidence reference, interface names, and lease paths can still be sensitive.

Inspect the installed release and exact FQCN without executing it:

ansible-galaxy collection list lit.supplementary
ansible-doc --type role --list lit.supplementary |
sed -n '/^lit\.supplementary\.dhcp_deploy$/p'

The reported collection version must be 1.40.0 for this interface record, but the version string alone does not prove which bytes are installed. The official lit-supplementary-1.40.0.tar.gz release artifact has SHA-256 deee742f5514f170a79a44597cb237cc9daca2b961c16f834eecf88f24835d56; its published release evidence binds that artifact to the commit above. Verify that digest or equivalent approved provenance and stop on any mismatch.

Public boundary

Do not publish real subnets, pools, reservations, relay addresses, client identifiers, hardware addresses, options, lease data, failover peers, control endpoints, or address-management records. Public examples may use only the documentation ranges and names reserved for examples.

Input and output contract

Contract partRequired inputExpected output
ArtifactImmutable implementation version, package or image identity, and dependenciesA verified DHCP service artifact
Allocation scopeAddress-family choice, approved subnets, pools, exclusions, and reservation ownerAllocations constrained to non-overlapping authorized ranges
Client selectionApproved relay mapping, interfaces, classes, and reservation rulesRequests matched only to the intended scope
OptionsOwned values, validation rules, and explicit defaults for each client classOptions delivered exactly as approved
Lease stateBackend, schema compatibility, retention, privacy, and recovery requirementsDurable and access-controlled lease state when required
IntegrationDNS-update, time, address-management, observability, and control-channel contractsBounded dependencies with authenticated access where the implementation allows
Service operationAvailability, capacity, logging, alerting, and maintenance ownershipObservable service with protected client data handled by policy

The source of truth and conflict-resolution owner must be explicit. Automation must not infer free address space merely because a pool is absent from its own configuration.

Prerequisites

  • The network owner has approved every allocation range, exclusion, relay relationship, reservation source, and option owner.
  • An authoritative address-management comparison shows no overlap with another DHCP service, static allocation, or reserved infrastructure range.
  • Broadcast, relay, routing, firewall, and server-listener paths are understood and can be tested without affecting unrelated clients.
  • Lease storage and configuration backends are compatible with the selected artifact and have a tested recovery contract.
  • Clocks, certificate trust, service identities, and protected secret references are available through approved runtime channels.
  • A maintenance plan explains how existing leases behave during change and how a candidate server is prevented from answering prematurely.

Safe validation

First validate the complete generated configuration with the exact selected artifact while all production listeners are disabled. Compare its normalized scope with the approved address plan and review all defaults that the tool adds.

Then use an isolated network segment and disposable client to test discovery, offer, request, renewal, expiry, reservation behavior, expected options, and rejection outside the authorized scope. Exercise dependency and backend failure without attaching the candidate to a live broadcast domain.

After an authorized change, verify service state, listener scope, lease backend health, pool utilization, relay-path behavior, and a controlled client transaction. Stop if more than one uncoordinated service can answer, any pool overlaps, an option differs, or lease-state compatibility is uncertain.

The release includes a dhcp-deploy-basic render-only scenario that sets dhcp_deploy_skip_runtime: true, writes only to the Molecule ephemeral directory, and inspects the rendered configuration, empty lease file, capabilities, host-network setting, image, interface, and mounts. From the reviewed collection checkout, its bounded command is:

molecule test --scenario-name dhcp-deploy-basic

That scenario starts no DHCP listener. It proves rendering for its synthetic documentation subnet only; it does not prove broadcast reachability, renewal, lease persistence, reboot recovery, failover, absence of a rogue server, check-mode support, or runtime idempotence.

Recovery and rollback considerations

Restoring configuration does not recall leases already issued to clients. Recovery must account for active lease lifetimes, client renewal behavior, database schema, DNS updates, and any address-management synchronization.

Keep the prior artifact and configuration, a consistent lease-state backup when required, and a reviewed procedure for removing the candidate from the network. The recovery owner chooses restore, repair, controlled coexistence, or forward correction. Starting an old binary against a newer lease schema is not an assumed rollback.

Evidence and limitations

Retain artifact identity, redacted configuration checksum, approved scope comparison, isolated transaction results, dependency checks, change approval, post-change health, recovery decision, and acceptance. Lease records and real address plans remain private.

This contract does not select DHCPv6, a high-availability mode, a lease backend, dynamic DNS, or an address-management product. The role's default command selects DHCPv4, but that default does not approve an image or a live network. Consult the exact implementation release for supported combinations and upgrade constraints.

The collection is MIT-licensed; the chosen DHCP image and its contents require their own license and redistribution review. This page remains review-candidate and pending until network, DHCP, container-runtime, automation, and product-owner reviewers accept the exact release, variables, L2 test evidence, and recovery plan.

Public references