Skip to content

Boot Policy Support for MetalAPI #106

@hardikdr

Description

@hardikdr

Summary

This enhancement introduces a new Boot Policy API for ServerClaim objects, enabling precise control over how a machine boots—NetBootOnce, NetBootAlways, or NoBootPreference. This allows users to declaratively influence whether a machine should PXE/HTTP boot only once, always PXE/HTTP boot, or fall back to default behavior.

The change will span multiple parts of the Metal Automation stack, enabling a more predictable and flexible first-boot experience across various environments.


Scope

In Scope

  • Define a BootPolicy field in the ServerClaim API (NetBootOnce, NetBootAlways, NoBootPreference).
  • Adapt the metal-operator to reconcile the BootPolicy setting.
  • Extend ServerBootConfig with new status conditions to track first boot state.
  • Expose a new /bootstate endpoint in the metal-operator that updates a boot-completion signal.
  • Allow the metal-operator to choose the condition to honor for declaring first boot as complete, based on a new configurable flag.
  • Ensure this logic is compatible with existing workflows and doesn't break downstream components.

Out of Scope

  • BIOS-level boot order enforcement (handled elsewhere or via Redfish).
  • Vendor-specific PXE boot flows.

Responsible Areas

  • Metal Automation

Contributors


Acceptance Criteria

  • ServerClaim API supports a new optional bootPolicy field.

  • Metal-operator correctly reconciles this field and reacts accordingly.

  • ServerBootConfig includes new status conditions such as:

    • IPXEScriptFetched
    • IgnitionDataFetched
    • BootStateReceived (from /bootstate endpoint)
  • /bootstate endpoint is implemented in the metal-operator and updates condition reliably.

  • Metal-operator can be configured to choose which boot-completion condition it honors via a flag.

  • All new behaviors are covered by meaningful tests.

  • Clear documentation added for the new API field and its usage.


Action Items

  • Assign labels (area/metal-automation, kind/api-change, kind/enhancement)
  • Set milestone (H2/2025)
  • Assign dependent sub-issues for:
  • Assign an owner to the issue using GitHub’s assignee field
  • Add this issue to the ironcore-dev/roadmap project

Sub-issues

Metadata

Metadata

Assignees

Labels

area/metal-automationAutomation processes within the Metal project.

Projects

Status

Backlog

Status

In Progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions