BMCs¶
The BMC Custom Resource Definition (CRD) represents a Baseboard Management Controller.
It is designed to manage and monitor the state of BMC devices and the systems (servers) they control. The primary
purpose of the BMC resource is to reconcile the BMC state and detect all systems it manages by creating the
corresponding Server
resources.
Example BMC Resource¶
Using endpointRef
:
apiVersion: metal.ironcore.dev/v1alpha1
kind: BMC
metadata:
name: my-bmc
spec:
endpointRef:
name: my-bmc-endpoint
bmcSecretRef:
name: my-bmc-secret
protocol:
name: Redfish
port: 8000
consoleProtocol:
name: SSH
port: 22
Using inline endpoint
:
apiVersion: metal.ironcore.dev/v1alpha1
kind: BMC
metadata:
name: my-bmc-inline
spec:
endpoint:
macAddress: "00:1A:2B:3C:4D:5E"
ip: "192.168.100.10"
bmcSecretRef:
name: my-bmc-secret
protocol:
name: Redfish
port: 8000
consoleProtocol:
name: SSH
port: 22
Usage¶
The BMC CRD is essential for managing and monitoring BMC devices. It is used to:
- Reconcile BMC State: Continuously monitor the BMC's status and update its state.
- Detect Managed Systems: Identify all systems (servers) managed by the BMC and create corresponding
Server
resources. - Automate Hardware Management: Enable automated power control, firmware updates, and health monitoring of physical servers through the BMC.
Reconciliation Process¶
The BMCReconciler
is a controller that processes BMC resources to:
-
Access BMC Device: Uses the
endpointRef
orendpoint
, along withbmcSecretRef
, to establish a connection with the BMC using the specifiedprotocol
. -
Retrieve BMC Information: Gathers details such as manufacturer, model, serial number, firmware version, and power state.
-
Update BMCStatus: Populates the
status
field of the BMC resource with the retrieved information. -
Detect Managed Systems: Identifies all systems (servers) that the BMC manages.
-
Create Server Resources: For each detected system, the
BMCReconciler
creates a correspondingServer
resource to represent the physical server.