Skip to content

Non-deterministic static IP assignment failure in DHCP-less IPA boot #1010

Description

@aydinhus

Environment

  • Component: Metal3 / Ironic (IPA - Ironic Python Agent)
  • Network configuration method: preprovisioningNetworkDataName (static IP, no DHCP)
  • Reproduced on: Multiple physically separate environments, different deployments, and different hardware vendors

Problem Description

In a DHCP-less environment, static network parameters are passed via preprovisioningNetworkDataName. Both the inspection and provisioning phases perform their own IPA boot, and the failure can occur independently in either or both — with no correlation between them. A successful inspection does not predict a successful provisioning boot, and vice versa.

The failure is non-deterministic: retrying with identical configuration can succeed or fail unpredictably on each attempt.


Steps to Reproduce

  1. Set up a DHCP-less environment.
  2. Configure preprovisioningNetworkDataName with a valid static network secret (IP, gateway, DNS, etc.).
  3. Trigger provisioning and observe IPA boot logs across multiple attempts for both phases.
  4. Observe that static network configuration is applied inconsistently, independently in each phase, with no apparent pattern.

Kernel Parameters Attempted

The following extraKernelParams were tested in various combinations:

ipa-inspection-dhcp-all-interfaces=0
ipa-inspection-dhcp-wait-timeout=0
ipa-hardware-initialization-delay=30

None produced consistent results.


Workaround

Shortened relevant timeout values to ~6 minutes to allow faster retry cycles. Does not address the root cause.


Expected Behavior

Static network configuration should be reliably applied on every IPA boot — in both inspection and provisioning phases.


Actual Behavior

Static network configuration is applied intermittently on a per-boot basis. The per-phase independence of failures suggests a race condition or timing issue within the IPA network initialization sequence, rather than an issue with how network data is passed from Metal3/Ironic.


Additional Context

  • Observed across multiple physically separate environments, different deployments, and different hardware vendors — ruling out environment- or hardware-specific causes.
  • Any insights into the ordering or timing of network configuration application during IPA boot would be appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageIndicates an issue lacks a `triage/foo` label and requires one.triage/needs-informationIndicates an issue needs more information in order to work on it.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions