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 
BMCVersionmaps a BMC version required for a given server's BMC.BMCVersionSpec contains the required details to upgrade the BMC to required version.
- Only one 
BMCVersioncan be active perBMCat a time. BMCVersionstarts the version upgrade of the BMC using redfishSimpleUpgradeAPI.BMCVersionhandles reboots of BMC.BMCVersionrequests forMaintenanceifServerMaintenancePolicyis set to "OwnerApproval".- Once
BMCVersionmoves toFailedstate, It stays in this state unless Manually moved out of this state. 
Workflow 
- A separate operator (e.g., 
bmcVersionSet) or user creates aBMCVersionresource 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 "OwnerApproval" 
ServerMaintenancePolicytype is requested andServerMaintenanceis not provided already. It requests one perservermanaged byBMCand waits for all theserverto enterMaintenancestate. BMCVersionissues the BMC upgrade using redfish "SimpleUpgrade" API. and monitors theupgrade taskcreated by the API.BMCVersionmoves toFailedstate:- If 
SimpleUpgadeis issued but unable to get the task to monitor the progress of BMC upgrade - If the 
upgrade taskcreated by SimpleUpgade fails and does not reach completed state. - If the BMC version requested is lower than that of the current BMC version
 
- If 
 BMCVersionmoves to reboot the BMC once theupgrade taskhas been completed.BMCVersionverfiy the BMC version post reboot, removes theServerMaintenanceresource if created by self. and transistion toCompletedstate- Any further update to the 
BMCVersionSpec will restart the process. 
Example 
yaml
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
  updatePolicy: Force
  bmcRef:
    name: BMC-sample
  serverMaintenancePolicy: Enforced