BMCSettings 
BMCSettings represents a BMC Setting update operation for a physical server's BMC (compute system). It updates the BMC settings on physical server's BMC.
Key Points 
BMCSettingsmaps a BMC version and settings as map for a given server.- Only one 
BMCSettingscan be active perBMCat a time. BMCSettingsrelated changes are applied once the BMC version matches with the physical server's BMC version.BMCSettingshandles reboots of BMCBMCSettingsrequests forMaintenance,ServerMaintenancePolicyused for maintenance type- Once
BMCSettingsmoves toFailedstate, It stays in this state unless Manually moved out of this state. 
Workflow 
- A separate operator (e.g., 
bmcSettingsSet) or user creates aBMCSettingsresource referencing a specificBMC - Provided settings are checked against the current BMC setting.
 - If settings are same as on the server, the state is moved to 
Applied(even if the version does not match) - If the settings needs update, 
BMCSettingscheck the version of BMC and if required version does not match, it waits for the BMC version to reach the spec version. - If 
ServerMaintenanceis not provided already. it requests one perservermanaged byBMCand waits for all theserverto enterMaintenancestate. - Setting update process is started and the physical server's BMC is rebooted if required.
 BMCSettingsverfiy the setting has been applied and trasistions the state toApplied. removes all theServerMaintenanceresource if created by self.- Any further update to the 
BMCSettingsSpec will restart the process. - If the 
BMCSettingsfails to apply the bmc setting. TheBMCSettingsmoves toFailedstate until Manually moved out of this state. 
Example 
yaml
apiVersion: metal.ironcore.dev/v1alpha1
kind: BMCSettings
metadata:
  name: bmcsettings-sample
spec:
  bmcRef:
    name: sample-bmc
  version: 2.10.3
  settings:
    otherSettings: "123"
    someother: Disabled
  serverMaintenancePolicy: OwnerApproval