-
Notifications
You must be signed in to change notification settings - Fork 1
Description
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
ServerClaimAPI (NetBootOnce,NetBootAlways,NoBootPreference). - Adapt the metal-operator to reconcile the
BootPolicysetting. - Extend ServerBootConfig with new status conditions to track first boot state.
- Expose a new
/bootstateendpoint 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
-
ServerClaimAPI supports a new optionalbootPolicyfield. -
Metal-operator correctly reconciles this field and reacts accordingly.
-
ServerBootConfigincludes new status conditions such as:IPXEScriptFetchedIgnitionDataFetchedBootStateReceived(from/bootstateendpoint)
-
/bootstateendpoint 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/roadmapproject
Sub-issues
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status