Skip to content

API Reference

Packages

metal.ironcore.dev/v1alpha1

Package v1alpha1 contains API Schema definitions for the metal.ironcore.dev API group

Package v1alpha1 contains API Schema definitions for the metal v1alpha1 API group.

Resource Types

BMC

BMC is the Schema for the bmcs API

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringBMC
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec BMCSpec
status BMCStatus

BMCAccess

BMCAccess defines the access details for the BMC.

Appears in:

FieldDescriptionDefaultValidation
protocol ProtocolProtocol specifies the protocol to be used for communicating with the BMC.
address stringAddress is the address of the BMC.
bmcSecretRef LocalObjectReferenceBMCSecretRef is a reference to the BMCSecret object that contains the credentials
required to access the BMC.

BMCPowerState

Underlying type: string

BMCPowerState defines the possible power states for a BMC.

Appears in:

FieldDescription
OnOnPowerState the system is powered on.
OffOffPowerState the system is powered off, although some components may
continue to have AUX power such as management controller.
PausedPausedPowerState the system is paused.
PoweringOnPoweringOnPowerState A temporary state between Off and On. This
temporary state can be very short.
PoweringOffPoweringOffPowerState A temporary state between On and Off. The power
off action can take time while the OS is in the shutdown process.
UnknownUnknownPowerState indicates that power state is unknown for this BMC.

BMCSecret

BMCSecret is the Schema for the bmcsecrets API

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringBMCSecret
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
immutable booleanImmutable, if set to true, ensures that data stored in the Secret cannot
be updated (only object metadata can be modified).
If not set to true, the field can be modified at any time.
Defaulted to nil.
data object (keys:string, values:integer array)Data contains the secret data. Each key must consist of alphanumeric
characters, '-', '_' or '.'. The serialized form of the secret data is a
base64 encoded string, representing the arbitrary (possibly non-string)
data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
stringData object (keys:string, values:string)stringData allows specifying non-binary secret data in string form.
It is provided as a write-only input field for convenience.
All keys and values are merged into the data field on write, overwriting any existing values.
The stringData field is never output when reading from the API.
type SecretTypeUsed to facilitate programmatic handling of secret data.
More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types

BMCSpec

BMCSpec defines the desired state of BMC

Appears in:

FieldDescriptionDefaultValidation
bmcUUID stringBMCUUID is the unique identifier for the BMC as defined in Redfish API.Optional: {}
endpointRef LocalObjectReferenceEndpointRef is a reference to the Endpoint object that contains the network access information for the BMC.
Deprecated: The Endpoint resource is deprecated. Specify the network access inline via
access (an InlineEndpoint carrying the MAC address and IP) instead of referencing an
Endpoint object.
Optional: {}
access InlineEndpointEndpoint specifies inline network access details for the BMC.Optional: {}
bmcSecretRef LocalObjectReferenceBMCSecretRef is a reference to the BMCSecret object that contains the credentials
required to access the BMC.
protocol ProtocolProtocol specifies the protocol to be used for communicating with the BMC.
consoleProtocol ConsoleProtocolConsoleProtocol specifies the protocol to be used for console access to the BMC.
hostname stringHostname is the hostname of the BMC.

BMCState

Underlying type: string

BMCState defines the possible states of a BMC.

Appears in:

FieldDescription
EnabledBMCStateEnabled indicates that the BMC is enabled and functioning correctly.
ErrorBMCStateError indicates that there is an error with the BMC.
PendingBMCStatePending indicates that there is an error connecting with the BMC.

BMCStatus

BMCStatus defines the observed state of BMC.

Appears in:

FieldDescriptionDefaultValidation
macAddress stringMACAddress is the MAC address of the BMC.Pattern: ^([0-9A-Fa-f]\{2\}[:-])\{5\}([0-9A-Fa-f]\{2\})$
ip IPIP is the IP address of the BMC.Format: ip
Schemaless: {}
Type: string
manufacturer stringManufacturer is the name of the BMC manufacturer.
model stringModel is the model number or name of the BMC.
sku stringSKU is the stock keeping unit identifier for the BMC.
serialNumber stringSerialNumber is the serial number of the BMC.
firmwareVersion stringFirmwareVersion is the version of the firmware currently running on the BMC.
state BMCStateState represents the current state of the BMC.
kubebuilder:validation:Enum=Enabled;Error;Pending
Pending
powerState BMCPowerStatePowerState represents the current power state of the BMC.
lastResetTime TimeLastResetTime is the timestamp of the last reset operation performed on the BMC.
conditions Condition arrayConditions represents the latest available observations of the BMC's current state.

BootOrder

BootOrder represents the boot order of the server.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the boot device.
priority integerPriority is the priority of the boot device.
device stringDevice is the device to boot from.

ConditionRequirement

ConditionRequirement defines a specific Server condition and the status value required to trigger the controller's action.

Appears in:

FieldDescriptionDefaultValidation
type stringType of server condition
Following kubebuilder validation is referred from https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Condition
MaxLength: 316
MinLength: 1
requiredStatus ConditionStatusRequiredStatus is status of the condition, one of True, False, Unknown.Enum: [True False Unknown]

ConsoleProtocol

ConsoleProtocol defines the protocol and port used for console access to the BMC.

Appears in:

FieldDescriptionDefaultValidation
name ConsoleProtocolNameName specifies the name of the console protocol.Enum: [IPMI SSH SSHLenovo]
port integerPort specifies the port number used for console access.

ConsoleProtocolName

Underlying type: string

ConsoleProtocolName defines the possible names for console protocols.

Appears in:

FieldDescription
IPMIConsoleProtocolNameIPMI represents the IPMI console protocol.
SSHConsoleProtocolNameSSH represents the SSH console protocol.
SSHLenovoConsoleProtocolNameSSHLenovo represents the SSH console protocol specific to Lenovo hardware.

Endpoint

Endpoint is the Schema for the endpoints API

Deprecated: The Endpoint resource is deprecated. Model the same information inline via BMC.spec.access (an InlineEndpoint carrying the MAC address and IP) instead of creating a separate Endpoint object.

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringEndpoint
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec EndpointSpec
status EndpointStatus

EndpointSpec

EndpointSpec defines the desired state of Endpoint

Appears in:

FieldDescriptionDefaultValidation
macAddress stringMACAddress is the MAC address of the endpoint.
ip IPIP is the IP address of the endpoint.Format: ip
Schemaless: {}
Type: string

EndpointStatus

EndpointStatus defines the observed state of Endpoint

Appears in:

EnforcementMode

Underlying type: string

EnforcementMode specifies how the controller maintains the desired state.

Validation:

  • Enum: [BootstrapOnly Continuous]

Appears in:

FieldDescription
BootstrapOnlyEnforcementModeBootstrapOnly applies configuration only during the first reconcile.
ContinuousEnforcementModeContinuous continuously monitors and enforces the configuration.

IP

IP is an IP address.

Validation:

  • Format: ip
  • Type: string

Appears in:

ImmutableObjectReference

ImmutableObjectReference is a namespaced name reference whose name and namespace cannot be changed once set (the entire reference can still be set or cleared).

Appears in:

FieldDescriptionDefaultValidation
namespace stringNamespace is the namespace of the referenced object.MaxLength: 63
name stringName is the name of the referenced object.MaxLength: 253

IndicatorLED

Underlying type: string

IndicatorLED represents LED indicator states

Appears in:

FieldDescription
UnknownUnknownIndicatorLED indicates the state of the Indicator LED cannot be
determined.
LitLitIndicatorLED indicates the Indicator LED is lit.
BlinkingBlinkingIndicatorLED indicates the Indicator LED is blinking.
OffOffIndicatorLED indicates the Indicator LED is off.

InlineEndpoint

InlineEndpoint defines inline network access configuration for the BMC.

Appears in:

FieldDescriptionDefaultValidation
macAddress stringMACAddress is the MAC address of the endpoint.
ip IPIP is the IP address of the BMC.Format: ip
Schemaless: {}
Type: string

LLDPNeighbor

LLDPNeighbor defines the details of an LLDP neighbor.

Appears in:

FieldDescriptionDefaultValidation
macAddress stringMACAddress is the MAC address of the LLDP neighbor.
portID stringPortID is the port identifier of the LLDP neighbor.
portDescription stringPortDescription is the port description of the LLDP neighbor.
systemName stringSystemName is the system name of the LLDP neighbor.
systemDescription stringSystemDescription is the system description of the LLDP neighbor.

NetworkInterface

NetworkInterface defines the details of a network interface.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the network interface.
ip IPIP is the IP address assigned to the network interface.
Deprecated: Use IPs instead. Kept for backward compatibility, always nil.
Format: ip
Schemaless: {}
Type: string
ips IP arrayIPs is a list of IP addresses (both IPv4 and IPv6) assigned to the network interface.Format: ip
Type: string
macAddress stringMACAddress is the MAC address of the network interface.
carrierStatus stringCarrierStatus is the operational carrier status of the network interface.
neighbors LLDPNeighbor arrayNeighbors contains the LLDP neighbors discovered on this interface.

ObjectReference

ObjectReference is the namespaced name reference to an object.

Appears in:

FieldDescriptionDefaultValidation
namespace stringNamespace is the namespace of the referenced object.
name stringName is the name of the referenced object.

Phase

Underlying type: string

Phase defines the possible phases of a ServerClaim.

Appears in:

FieldDescription
BoundPhaseBound indicates that the server claim is bound to a server.
UnboundPhaseUnbound indicates that the server claim is not bound to any server.

Power

Underlying type: string

Power defines the possible power states for a device.

Appears in:

FieldDescription
OnPowerOn indicates that the device is powered on.
OffPowerOff indicates that the device is powered off.

Processor

Processor defines the details of a Processor.

Appears in:

FieldDescriptionDefaultValidation
id stringID is the name of the Processor.
type stringType is the type of the Processor.
architecture stringArchitecture is the architecture of the Processor.
instructionSet stringInstructionSet is the instruction set of the Processor.
manufacturer stringManufacturer is the manufacturer of the Processor.
model stringModel is the model of the Processor.
maxSpeedMHz integerMaxSpeedMHz is the maximum speed of the Processor in MHz.
totalCores integerTotalCores is the total number of cores in the Processor.
totalThreads integerTotalThreads is the total number of threads in the Processor.

Protocol

Protocol defines the protocol and port used for communicating with the BMC.

Appears in:

FieldDescriptionDefaultValidation
name ProtocolNameName specifies the name of the protocol.
port integerPort specifies the port number used for communication.
scheme ProtocolSchemeScheme specifies the scheme used for communication.

ProtocolName

Underlying type: string

ProtocolName defines the possible names for protocols used for communicating with the BMC.

Appears in:

FieldDescription
RedfishProtocolNameRedfish represents the Redfish protocol.
IPMIProtocolNameIPMI represents the IPMI protocol.
SSHProtocolNameSSH represents the SSH protocol.

ProtocolScheme

Underlying type: string

ProtocolScheme is a string that contains the protocol scheme

Appears in:

FieldDescription
httpHTTPProtocolScheme is the http protocol scheme
httpsHTTPSProtocolScheme is the https protocol scheme

Server

Server is the Schema for the servers API

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringServer
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServerSpec
status ServerStatus

ServerBootConfiguration

ServerBootConfiguration is the Schema for the serverbootconfigurations API

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringServerBootConfiguration
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServerBootConfigurationSpec
status ServerBootConfigurationStatus

ServerBootConfigurationSpec

ServerBootConfigurationSpec defines the desired state of ServerBootConfiguration.

Appears in:

FieldDescriptionDefaultValidation
serverRef LocalObjectReferenceServerRef is a reference to the server for which this boot configuration is intended.
image stringImage specifies the boot image to be used for the server.
ignitionSecretRef LocalObjectReferenceIgnitionSecretRef is a reference to the Secret object that contains
the ignition configuration for the server.

ServerBootConfigurationState

Underlying type: string

ServerBootConfigurationState defines the possible states of a ServerBootConfiguration.

Appears in:

FieldDescription
PendingServerBootConfigurationStatePending indicates that the boot configuration is pending and not yet ready.
ReadyServerBootConfigurationStateReady indicates that the boot configuration is ready for use.
ErrorServerBootConfigurationStateError indicates that there is an error with the boot configuration.

ServerBootConfigurationStatus

ServerBootConfigurationStatus defines the observed state of ServerBootConfiguration.

Appears in:

FieldDescriptionDefaultValidation
state ServerBootConfigurationStateState represents the current state of the boot configuration.
conditions Condition arrayConditions represents the latest available observations of the ServerBootConfig's current state.

ServerClaim

ServerClaim is the Schema for the serverclaims API

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringServerClaim
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServerClaimSpec
status ServerClaimStatus

ServerClaimSpec

ServerClaimSpec defines the desired state of ServerClaim.

Appears in:

FieldDescriptionDefaultValidation
power PowerPower specifies the desired power state of the server.
serverRef LocalObjectReferenceServerRef is a reference to a specific server to be claimed.Optional: {}
serverSelector LabelSelectorServerSelector specifies a label selector to identify the server to be claimed.Optional: {}
ignitionSecretRef LocalObjectReferenceIgnitionSecretRef is a reference to the Secret object that contains
the ignition configuration for the server.
userDataRef LocalObjectReferenceUserDataRef references a Secret in the same namespace as this ServerClaim
containing user-data exposed to the claimed server via the metaldata
service. The referenced Secret must be of type metal.ironcore.dev/user-data.
image stringImage specifies the boot image to be used for the server.
tolerations Toleration arrayTolerations allow a ServerClaim to bind to a Server with matching taints.

ServerClaimStatus

ServerClaimStatus defines the observed state of ServerClaim.

Appears in:

FieldDescriptionDefaultValidation
phase PhasePhase represents the current phase of the server claim.

ServerPowerState

Underlying type: string

ServerPowerState defines the possible power states for a server.

Appears in:

FieldDescription
OnServerOnPowerState indicates that the system is powered on.
OffServerOffPowerState indicates that the system is powered off, although some components may
continue to have auxiliary power such as the management controller.
PausedServerPausedPowerState indicates that the system is paused.
PoweringOnServerPoweringOnPowerState indicates a temporary state between Off and On.
This temporary state can be very short.
PoweringOffServerPoweringOffPowerState indicates a temporary state between On and Off.
The power off action can take time while the OS is in the shutdown process.

ServerReadinessRule

ServerReadinessRule is the Schema for the serverreadinessrules API

FieldDescriptionDefaultValidation
apiVersion stringmetal.ironcore.dev/v1alpha1
kind stringServerReadinessRule
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServerReadinessRuleSpecspec defines the desired state of ServerReadinessRule
status ServerReadinessRuleStatusstatus defines the observed state of ServerReadinessRule

ServerReadinessRuleSpec

ServerReadinessRuleSpec defines the desired state of ServerReadinessRule

Appears in:

FieldDescriptionDefaultValidation
conditions ConditionRequirement arrayConditions contains a list of the Server conditions that defines the specific
criteria that must be met for taints to be managed on the target Server.
The presence or status of these conditions directly triggers the application or removal of Server taints.
MaxItems: 32
MinItems: 1
enforcementMode EnforcementModeEnforcementMode specifies how the controller maintains the desired state.
enforcementMode is one of BootstrapOnly, Continuous.
"BootstrapOnly" applies the configuration once during initial setup.
"Continuous" ensures the state is monitored and corrected throughout the resource lifecycle.
Enum: [BootstrapOnly Continuous]
taint TaintTaint defines the specific Taint (Key, Value, and Effect) to be managed
on Servers that meet the defined condition criteria.
serverSelector LabelSelectorServerSelector limits the scope of this rule to a specific subset of Servers.

ServerReadinessRuleStatus

ServerReadinessRuleStatus defines the observed state of ServerReadinessRule.

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayconditions represent the current state of the ServerReadinessRule resource.
Each condition has a unique type and reflects the status of a specific aspect of the resource.
Standard condition types include:
- "Available": the resource is fully functional
- "Progressing": the resource is being created or updated
- "Degraded": the resource failed to reach or maintain its desired state
The status of each condition is one of True, False, or Unknown.

ServerReclaimPolicy

Underlying type: string

Appears in:

FieldDescription
Recycle
Retain

ServerSpec

ServerSpec defines the desired state of a Server.

Appears in:

FieldDescriptionDefaultValidation
systemUUID stringSystemUUID is the unique identifier for the server.
systemURI stringSystemURI is the unique URI for the server resource in REDFISH API.
indicatorLED IndicatorLEDIndicatorLED specifies the desired state of the server's indicator LED.
reclaimPolicy ServerReclaimPolicyReclaimPolicy specifies how the server is reclaimed after use.
Can be
- Recycle (default), immediately transitioning the server to Available after use.
- Retain, transitioning the server to Released after use, leaving spec.serverClaimRef set,
transitioning to Available once spec.serverClaimRef is removed.
RecycleEnum: [Recycle Retain]
serverClaimRef ImmutableObjectReferenceServerClaimRef is a reference to a ServerClaim object that claims this server.Optional: {}
bmcRef LocalObjectReferenceBMCRef is a reference to the BMC object associated with this server.
bmc BMCAccessBMC contains the access details for the BMC.
bootConfigurationRef ObjectReferenceBootConfigurationRef is a reference to a BootConfiguration object that specifies
the boot configuration for this server.
bootOrder BootOrder arrayBootOrder specifies the boot order of the server.
taints Taint arrayTaints control which ServerClaims can be bound to this server.
unclaimable booleanUnclaimable, when true, prevents new ServerClaims from being bound to
this Server. Already-bound claims are unaffected.
false

ServerState

Underlying type: string

ServerState defines the possible states of a server.

Appears in:

FieldDescription
InitialServerStateInitial indicates that the server is in its initial state.
DiscoveryServerStateDiscovery indicates that the server is in its discovery state.
AvailableServerStateAvailable indicates that the server is available for use.
ReservedServerStateReserved indicates that the server is reserved for a specific use or user.
ReleasedServerStateReleased indicates that the server is released after use.
ErrorServerStateError indicates that there is an error with the server.
ParkedServerStateParked indicates that the server is parked out of the ServerClaim lifecycle so an
external component can run out-of-band day-2 operations. Parked is an overlay state: while
active, normal state-machine progression, boot, and power healing are suspended.

ServerStatus

ServerStatus defines the observed state of Server.

Appears in:

FieldDescriptionDefaultValidation
manufacturer stringManufacturer is the name of the server manufacturer.
biosVersion stringBIOSVersion is the version of the server's BIOS.
model stringModel is the model of the server.
sku stringSKU is the stock keeping unit identifier for the server.
serialNumber stringSerialNumber is the serial number of the server.
powerState ServerPowerStatePowerState represents the current power state of the server.
indicatorLED IndicatorLEDIndicatorLED specifies the current state of the server's indicator LED.
state ServerStateState represents the current state of the server.
networkInterfaces NetworkInterface arrayNetworkInterfaces is a list of network interfaces associated with the server.
totalSystemMemory QuantityTotalSystemMemory is the total amount of memory in bytes available on the server.
processors Processor arrayProcessors is a list of Processors associated with the server.
storages Storage arrayStorages is a list of storages associated with the server.
conditions Condition arrayConditions represents the latest available observations of the server's current state.

Storage

Storage defines the details of one storage device.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the storage device.
state StorageStateState specifies the state of the storage device.
volumes StorageVolume arrayVolumes is a collection of volumes associated with this storage.
drives StorageDrive arrayDrives is a collection of drives associated with this storage.

StorageDrive

StorageDrive defines the details of one storage drive.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the storage drive.
mediaType stringMediaType specifies the media type of the storage device.
type stringType specifies the type of the storage device.
capacity QuantityCapacity specifies the size of the storage device in bytes.
vendor stringVendor specifies the vendor of the storage device.
model stringModel specifies the model of the storage device.
state StorageStateState specifies the state of the storage device.

StorageState

Underlying type: string

StorageState represents Storage states

Appears in:

FieldDescription
EnabledStorageStateEnabled indicates that the storage device is enabled.
DisabledStorageStateDisabled indicates that the storage device is disabled.
AbsentStorageStateAbsent indicates that the storage device is absent.

StorageVolume

StorageVolume defines the details of one storage volume.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the storage volume.
capacity QuantityCapacity specifies the size of the storage device in bytes.
state StorageStateStatus specifies the status of the volume.
raidType stringRAIDType specifies the RAID type of the associated Volume.
volumeUsage stringVolumeUsage specifies the volume usage type for the Volume.

Taint

Taint represents a taint applied to a Server that restricts which ServerClaims can be bound to it.

Appears in:

FieldDescriptionDefaultValidation
key stringKey is the taint key to be applied to a server.MinLength: 1
value stringValue is the taint value corresponding to the taint key.
effect TaintEffectEffect indicates the effect of the taint on ServerClaims that do not
tolerate the taint.
NoBindEnum: [NoBind Evict]

TaintEffect

Underlying type: string

TaintEffect defines the effect of a taint on a ServerClaim.

Validation:

  • Enum: [NoBind Evict]

Appears in:

FieldDescription
NoBindTaintEffectNoBind prevents new ServerClaims from binding to the server
unless they have a matching toleration.
EvictTaintEffectEvict is reserved for future use. It does not currently trigger
eviction of existing ServerClaims bound to the server.

Toleration

Toleration allows a ServerClaim to tolerate taints on a Server so that the claim can be bound to a server that would otherwise be restricted.

Appears in:

FieldDescriptionDefaultValidation
key stringKey is the taint key that the toleration applies to.MinLength: 1
operator TolerationOperatorOperator represents the key's relationship to the value.Enum: [Equal Exists]
value stringValue is the taint value the toleration matches to.
effect TaintEffectEffect indicates the taint effect to tolerate.Enum: [NoBind Evict]

TolerationOperator

Underlying type: string

TolerationOperator represents a key's relationship to a value in a Toleration.

Validation:

  • Enum: [Equal Exists]

Appears in:

FieldDescription
EqualTolerationOperatorEqual requires that the key and value of the toleration
match those of the taint exactly.
ExistsTolerationOperatorExists matches any taint with the specified key,
regardless of value.
EU and German government funding logos

Funded by the European Union – NextGenerationEU.

The views and opinions expressed are solely those of the author(s) and do not necessarily reflect the views of the European Union or the European Commission. Neither the European Union nor the European Commission can be held responsible for them.