BMCVersion
BMCVersion
represents a BMC Version upgrade operation for a physical server's Manager. It updates the BMC Version on physical server's BMC.
Key Points
BMCVersion
maps a BMC version required for a given server's BMC.BMCVersion
Spec contains the required details to upgrade the BMC to required version.
- Only one
BMCVersion
can be active perBMC
at a time. BMCVersion
starts the version upgrade of the BMC using redfishSimpleUpgrade
API.BMCVersion
handles reboots of BMC.BMCVersion
requests forMaintenance
ifServerMaintenancePolicy
is set to "OwnerApproval".- Once
BMCVersion
moves toFailed
state, It stays in this state unless Manually moved out of this state.
Workflow
- A separate operator (e.g.,
bmcVersionSet
) or user creates aBMCVersion
resource referencing a specificBMC
. - Provided settings are checked against the current BMC version.
- If version is same as on the server's BMC, the state is moved to
Completed
. - If the version needs upgrade,
BMCVersion
checks the current version of BMC and if required version is lower than the requested,BMCVersion
moves the state toFailed
- If "OwnerApproval"
ServerMaintenancePolicy
type is requested andServerMaintenance
is not provided already. It requests one perserver
managed byBMC
and waits for all theserver
to enterMaintenance
state. BMCVersion
issues the BMC upgrade using redfish "SimpleUpgrade" API. and monitors theupgrade task
created by the API.BMCVersion
moves toFailed
state:- If
SimpleUpgade
is issued but unable to get the task to monitor the progress of BMC upgrade - If the
upgrade task
created by SimpleUpgade fails and does not reach completed state. - If the BMC version requested is lower than that of the current BMC version
- If
BMCVersion
moves to reboot the BMC once theupgrade task
has been completed.BMCVersion
verfiy the BMC version post reboot, removes theServerMaintenance
resource if created by self. and transistion toCompleted
state- Any further update to the
BMCVersion
Spec will restart the process.
Example
apiVersion: metal.ironcore.dev/v1alpha1
kind: BMCVersion
metadata:
name: biosversion-sample
spec:
version: 2.10.3
image:
URI: "http://foo.com/dell-idrac-bmc-2.10.3.bin"
transferProtocol: "http"
imageSecretRef:
name: sample-secret
forceUpdate: false
BMCRef:
name: BMC-sample
serverMaintenancePolicy: Enforced