Skip to content

Add support for multi-system BMCs #823

@damyan

Description

@damyan

When meeting a BMC with multiple systems, the metal-operator seems to take a random (first?) one to populate the BMC status.

Proposal: create system heuristics, based on which the server object shall be created out of the right system, ignore all the rest systems

Current behavior:

curl -sku "$u:$p" https://$BMC_URL/redfish/v1/Systems/ | jq .Members
[
  {
    "@odata.id": "/redfish/v1/Systems/1"
  },
  {
    "@odata.id": "/redfish/v1/Systems/HGX_Baseboard_0"
  }
]
kubectl get bmc ai-wdf4a-1 -o yaml
apiVersion: metal.ironcore.dev/v1alpha1
kind: BMC
metadata:
  name: foo
  uid: 89fb09fc-dd12-4a9f-86da-834ae9ae3858
  […]
spec:
  bmcSecretRef:
    name: ai-wdf4a-1
  consoleProtocol:
    name: SSH
    port: 22
  endpointRef:
    name: foo
  protocol:
    name: Redfish
    port: 443
status:
  conditions:
  - lastTransitionTime: "2026-04-22T14:21:26Z"
    message: BMC is connected
    reason: BMCConnected
    status: "True"
    type: Ready
  ip: […]
  lastResetTime: "1970-01-01T00:00:00Z"
  macAddress: [BMC_MAC_ADDRESS]
  powerState: Unknown
  state: StandbyOffline
kubectl get servers ai-wdf4a-1-system-0 -o yaml
apiVersion: metal.ironcore.dev/v1alpha1
kind: Server
metadata:
  creationTimestamp: "2026-04-22T14:21:31Z"
  generation: 5
  name: foo-system-0
  ownerReferences:
  - apiVersion: metal.ironcore.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: BMC
    name: ai-wdf4a-1
    uid: 89fb09fc-dd12-4a9f-86da-834ae9ae3858
  resourceVersion: "88976872"
  uid: 5ea93962-861d-41b2-a180-36369fc6ad42
spec:
  bmcRef:
    name: foo
  systemURI: /redfish/v1/Systems/HGX_Baseboard_0
  systemUUID: ""
status:
  state: Initial
kubectl get servers ai-wdf4a-1-system-1 -o yaml
apiVersion: metal.ironcore.dev/v1alpha1
kind: Server
metadata:
  creationTimestamp: "2026-04-22T14:21:31Z"
  generation: 5
  name: foo-system-1
  ownerReferences:
  - apiVersion: metal.ironcore.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: BMC
    name: foo
    uid: 89fb09fc-dd12-4a9f-86da-834ae9ae3858
  resourceVersion: "88976873"
  uid: 2d96bb22-d292-4702-b311-f65543f6ad81
spec:
  bmcRef:
    name: foo
  systemURI: /redfish/v1/Systems/1
  systemUUID: 00000000-0000-0000-0000-[BMC_MAC_ADDRESS]
status:
  state: Initial

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions