Skip to content

Add metalman RAID1 and HTTP boot support#418

Draft
imiller31 wants to merge 5 commits into
Azure:mainfrom
imiller31:ismille/metalman-software-raid-netboot
Draft

Add metalman RAID1 and HTTP boot support#418
imiller31 wants to merge 5 commits into
Azure:mainfrom
imiller31:ismille/metalman-software-raid-netboot

Conversation

@imiller31

Copy link
Copy Markdown
Contributor

Summary

  • add metalman PXE install mode support for RAID1 machine images with explicit target disks
  • extend netboot artifacts and installer flow for mirrored root installs and production-safe disk resolution
  • support UEFI HTTPClient boot through DHCP and make the default netboot image use GRUB for HTTP boot while keeping shim for PXE/TFTP
  • expand metalman smoke coverage for Raw/PXE, RAID1/PXE, and RAID1/HTTP paths

Validation

  • SMOKE_TMP_ROOT=/var/tmp SMOKE_INSTALL_MODE=Raw SMOKE_BOOT_PROTOCOL=HTTP python3 hack/smoke-metalman.py
  • SMOKE_TMP_ROOT=/var/tmp SMOKE_INSTALL_MODE=RAID1 SMOKE_BOOT_PROTOCOL=HTTP python3 hack/smoke-metalman.py
  • go test ./internal/metalman/dhcp ./internal/metalman/netboot ./internal/metalman/redfish ./api/machina/v1alpha3
  • python3 -m py_compile hack/smoke-metalman.py
  • sh -n images/netboot/assets/init
  • git diff --check
  • make metalman

Notes

  • Draft while we do final human review and decide whether any GB300-specific netboot image tuning is still needed.
  • Reviewer subagent found no actionable issues in the current diff.

Comment thread api/machina/v1alpha3/machine_types.go Outdated
// when set and otherwise falls back to targetDisk or automatic selection.
// Examples: /dev/nvme0n1, /dev/sda, /dev/disk/by-id/...
// +optional
TargetDisks []string `json:"targetDisks,omitempty"`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's either remove the TargetDisk field or swap this one into its place. It was just merged yesterday so barely a breaking change at all

Comment thread api/machina/v1alpha3/machine_types.go Outdated
// +kubebuilder:validation:Enum=Raw;RAID1
// +kubebuilder:default=Raw
// +optional
Mode string `json:"mode,omitempty"`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe RAIDMode instead? In case some modes can be combined in the future.

@@ -1,8 +1,8 @@
#!/bin/sh

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This script is getting pretty complex - time for a go binary? Doesn't need to be in this PR although it might help with testing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants