Skip to content

Allow to set Ironic node properties. #2978

@synthe102

Description

@synthe102

User Story

As a user I would like to be able to set custom properties in Ironic because some hardware vendor rebrand firmwares, making it impossible for Ironic to correctly guess the vendor without setting properties.vendor.

Detailed Description

I would like to be able to set Ironic's properties either through an annotation or a new field on the BMH CRD.

Annotation:

apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
  annotations:
    properties.metal3.io: '{"vendor":"ami"}'
  name: my-server
spec: {}

CRD :

// BareMetalHostSpec defines the desired state of BareMetalHost.
type BareMetalHostSpec struct {
    Properties map[string]string `json:"properties,omitempty"`
}

Anything else you would like to add:

An example use case it to be able to set the vendor to "ami" on GBx00 Nvidia GPU servers, as the firmware is AMI, but the vendor is reported as Dell, which makes Ironic send the wrong request to set the boot device. Setting the properties.vendor seems more straightforward than patching Ironic to have a more complex vendor detection logic (if it is even possible).

/kind feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featureCategorizes issue or PR as related to a new feature.triage/acceptedIndicates an issue is ready to be actively worked on.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions