Skip to content

Add BMCSettings type and controller #287

@nagadeesh-nagaraja

Description

@nagadeesh-nagaraja

Summary

Create a out-of-band-Management Settings CRD (named BMCSetting) for BMC settings and implement the controller for it.

for each vendor, the settings might be different.
Example for Dell:
redfish/v1/Managers/iDRAC.Embedded.1/Oem/Dell/DellAttributes/System.Embedded.1

will need enhancement to the bmc interface in the repo to be able to get, check and set bmc attributes for a given vendor.

Basic example

  • user provides the settings as key value pair for strings.
  • Controller gets the current values of the attributes provided by the user through redfish APIs
    • note: the APIs are different for each vendor
    • might be useful to make a local copy of the setting attributes if vendor does not provide a straightforward list. to avoid calling multiple BMC API calls.
  • Controller checks the possible attributes, its type, values allowed, based on best effort basis from the attribute type.
  • Controller sets the attributes with redfish APIs.
    • note: the APIs are different for each vendor

Example CRD Spec

apiVersion: metal.ironcore.dev/v1alpha1
kind: BMCSettings
metadata:
  labels:
    app.kubernetes.io/name: metal-operator
    app.kubernetes.io/managed-by: kustomize
  name: bmcsetting-sample
spec:
  serverRef:
    name: server-01  # References an existing Server resource
  BMCSettingsSpec:
    version: 2.10.2
    settings:
      key1 : value1
      key2: value2
  BMCRef:
    name: BMC-01  # References an existing BMC resource
 serverRefList:
   - name: server-01
   - name: server-02
  serverMaintenancePolicyType:  # Policy an defined in  ServerMaintenance resource
  serverMaintenanceRef:
    name: server-maintenance-01  # References an existing ServerMaintenance resource
status:
  state: "InProgress"  # overallStatus. Possible values: Pending, InProgress, Applied, Failed

Motivation

Provide Ability to set BMC settings (outOfBandManagers Settings through controller)

Sub-issues

Metadata

Metadata

Projects

Status

In progress

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions