diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..95106bf --- /dev/null +++ b/404.html @@ -0,0 +1,663 @@ + + + +
+ + + + + + + + + + + + + + +Packages:
+Package v1alpha1 contains API Schema definitions for the settings.gardener.cloud API group
+Resource Types:
++(Appears on:ServerSpec, ServerStatus) +
+BIOSSettings represents the BIOS settings for a server.
+Field | +Description | +
---|---|
+version + +string + + |
+
+ Version specifies the version of the server BIOS for which the settings are defined. + |
+
+settings + +map[string]string + + |
+
+ Settings is a map of key-value pairs representing the BIOS settings. + |
+
BMC is the Schema for the bmcs API
+Field | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||
+spec + + +BMCSpec + + + |
+
+ + +
|
+||||||||||
+status + + +BMCStatus + + + |
++ | +
+(Appears on:ServerSpec) +
+BMCAccess defines the access details for the BMC.
+Field | +Description | +
---|---|
+protocol + + +Protocol + + + |
+
+ Protocol specifies the protocol to be used for communicating with the BMC. + |
+
+address + +string + + |
+
+ Address is the address of the BMC. + |
+
+bmcSecretRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ BMCSecretRef is a reference to the Kubernetes Secret object that contains the credentials +required to access the BMC. This secret includes sensitive information such as usernames and passwords. + |
+
string
alias)+(Appears on:BMCStatus) +
+BMCPowerState defines the possible power states for a BMC.
+Value | +Description | +
---|---|
"Off" |
+OffPowerState the system is powered off, although some components may +continue to have AUX power such as management controller. + |
+
"On" |
+OnPowerState the system is powered on. + |
+
"Paused" |
+PausedPowerState the system is paused. + |
+
"PoweringOff" |
+PoweringOffPowerState A temporary state between On and Off. The power +off action can take time while the OS is in the shutdown process. + |
+
"PoweringOn" |
+PoweringOnPowerState A temporary state between Off and On. This +temporary state can be very short. + |
+
BMCSecret is the Schema for the bmcsecrets API
+Field | +Description | +
---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+(Optional)
+ Standard object’s metadata. +More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata +Refer to the Kubernetes API documentation for the fields of the +metadata field.
+ |
+
+immutable + +bool + + |
+
+(Optional)
+ Immutable, 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 + +map[string][]byte + + |
+
+(Optional)
+ 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 + +map[string]string + + |
+
+(Optional)
+ 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 + + +Kubernetes core/v1.SecretType + + + |
+
+(Optional)
+ Used to facilitate programmatic handling of secret data. +More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types + |
+
+(Appears on:BMC) +
+BMCSpec defines the desired state of BMC
+Field | +Description | +
---|---|
+endpointRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+(Optional)
+ EndpointRef is a reference to the Kubernetes object that contains the endpoint information for the BMC. +This reference is typically used to locate the BMC endpoint within the cluster. + |
+
+access + + +InlineEndpoint + + + |
+
+(Optional)
+ Endpoint allows inline configuration of network access details for the BMC. +Use this field if access settings like address are to be configured directly within the BMC resource. + |
+
+bmcSecretRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ BMCSecretRef is a reference to the Kubernetes Secret object that contains the credentials +required to access the BMC. This secret includes sensitive information such as usernames and passwords. + |
+
+protocol + + +Protocol + + + |
+
+ Protocol specifies the protocol to be used for communicating with the BMC. +It could be a standard protocol such as IPMI or Redfish. + |
+
+consoleProtocol + + +ConsoleProtocol + + + |
+
+(Optional)
+ ConsoleProtocol specifies the protocol to be used for console access to the BMC. +This field is optional and can be omitted if console access is not required. + |
+
string
alias)+(Appears on:BMCStatus) +
+BMCState defines the possible states of a BMC.
+Value | +Description | +
---|---|
"Enabled" |
+BMCStateEnabled indicates that the BMC is enabled and functioning correctly. + |
+
"Error" |
+BMCStateError indicates that there is an error with the BMC. + |
+
+(Appears on:BMC) +
+BMCStatus defines the observed state of BMC.
+Field | +Description | +
---|---|
+macAddress + +string + + |
+
+ MACAddress is the MAC address of the BMC. +The format is validated using a regular expression pattern. + |
+
+ip + + +IP + + + |
+
+ IP is the IP address of the BMC. +The type is specified as string and is schemaless. + |
+
+manufacturer + +string + + |
+
+ Manufacturer is the name of the BMC manufacturer. + |
+
+model + +string + + |
+
+ Model is the model number or name of the BMC. + |
+
+sku + +string + + |
+
+ SKU is the stock keeping unit identifier for the BMC. + |
+
+serialNumber + +string + + |
+
+ SerialNumber is the serial number of the BMC. + |
+
+firmwareVersion + +string + + |
+
+ FirmwareVersion is the version of the firmware currently running on the BMC. + |
+
+state + + +BMCState + + + |
+
+ State represents the current state of the BMC. + |
+
+powerState + + +BMCPowerState + + + |
+
+ PowerState represents the current power state of the BMC. + |
+
+conditions + + +[]Kubernetes meta/v1.Condition + + + |
+
+(Optional)
+ Conditions represents the latest available observations of the BMC’s current state. + |
+
+(Appears on:ServerSpec) +
+BootOrder represents the boot order of the server.
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the name of the boot device. + |
+
+priority + +int + + |
+
+ Priority is the priority of the boot device. + |
+
+device + +string + + |
+
+ Device is the device to boot from. + |
+
+(Appears on:BMCSpec) +
+ConsoleProtocol defines the protocol and port used for console access to the BMC.
+Field | +Description | +
---|---|
+name + + +ConsoleProtocolName + + + |
+
+ Name specifies the name of the console protocol. +This could be a protocol such as “SSH”, “Telnet”, etc. + |
+
+port + +int32 + + |
+
+ Port specifies the port number used for console access. +This port is used by the specified console protocol to establish connections. + |
+
string
alias)+(Appears on:ConsoleProtocol) +
+ConsoleProtocolName defines the possible names for console protocols.
+Value | +Description | +
---|---|
"IPMI" |
+ConsoleProtocolNameIPMI represents the IPMI console protocol. + |
+
"SSH" |
+ConsoleProtocolNameSSH represents the SSH console protocol. + |
+
"SSHLenovo" |
+ConsoleProtocolNameSSHLenovo represents the SSH console protocol specific to Lenovo hardware. + |
+
Endpoint is the Schema for the endpoints API
+Field | +Description | +||||
---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||
+spec + + +EndpointSpec + + + |
+
+ + +
|
+||||
+status + + +EndpointStatus + + + |
++ | +
+(Appears on:Endpoint) +
+EndpointSpec defines the desired state of Endpoint
+Field | +Description | +
---|---|
+macAddress + +string + + |
+
+ MACAddress is the MAC address of the endpoint. + |
+
+ip + + +IP + + + |
+
+ IP is the IP address of the endpoint. + |
+
+(Appears on:Endpoint) +
+EndpointStatus defines the observed state of Endpoint
++(Appears on:BMCStatus, EndpointSpec, InlineEndpoint, NetworkInterface) +
+IP is an IP address.
+Field | +Description | +
---|---|
+- + + +net/netip.Addr + + + |
++ | +
IPPrefix represents a network prefix.
+Field | +Description | +
---|---|
+- + + +net/netip.Prefix + + + |
++ | +
string
alias)+(Appears on:ServerSpec, ServerStatus) +
+IndicatorLED represents LED indicator states
+Value | +Description | +
---|---|
"Blinking" |
+BlinkingIndicatorLED indicates the Indicator LED is blinking. + |
+
"Lit" |
+LitIndicatorLED indicates the Indicator LED is lit. + |
+
"Off" |
+OffIndicatorLED indicates the Indicator LED is off. + |
+
"Unknown" |
+UnknownIndicatorLED indicates the state of the Indicator LED cannot be +determined. + |
+
+(Appears on:BMCSpec) +
+InlineEndpoint defines inline network access configuration for the BMC.
+Field | +Description | +
---|---|
+macAddress + +string + + |
+
+ MACAddress is the MAC address of the endpoint. + |
+
+ip + + +IP + + + |
+
+ IP is the IP address of the BMC. + |
+
+(Appears on:ServerStatus) +
+NetworkInterface defines the details of a network interface.
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the name of the network interface. + |
+
+ip + + +IP + + + |
+
+ IP is the IP address assigned to the network interface. +The type is specified as string and is schemaless. + |
+
+macAddress + +string + + |
+
+ MACAddress is the MAC address of the network interface. + |
+
string
alias)+(Appears on:ServerClaimStatus) +
+Phase defines the possible phases of a ServerClaim.
+Value | +Description | +
---|---|
"Bound" |
+PhaseBound indicates that the server claim is bound to a server. + |
+
"Unbound" |
+PhaseUnbound indicates that the server claim is not bound to any server. + |
+
string
alias)+(Appears on:ServerClaimSpec, ServerSpec) +
+Power defines the possible power states for a device.
+Value | +Description | +
---|---|
"Off" |
+PowerOff indicates that the device is powered off. + |
+
"On" |
+PowerOn indicates that the device is powered on. + |
+
+(Appears on:BMCAccess, BMCSpec) +
+Protocol defines the protocol and port used for communicating with the BMC.
+Field | +Description | +
---|---|
+name + + +ProtocolName + + + |
+
+ Name specifies the name of the protocol. +This could be a protocol such as “IPMI”, “Redfish”, etc. + |
+
+port + +int32 + + |
+
+ Port specifies the port number used for communication. +This port is used by the specified protocol to establish connections. + |
+
string
alias)+(Appears on:Protocol) +
+ProtocolName defines the possible names for protocols used for communicating with the BMC.
+Value | +Description | +
---|---|
"IPMI" |
+ProtocolNameIPMI represents the IPMI protocol. + |
+
"Redfish" |
+ProtocolNameRedfish represents the Redfish protocol. + |
+
"SSH" |
+ProtocolNameSSH represents the SSH protocol. + |
+
Server is the Schema for the servers API
+Field | +Description | +||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||||||||
+spec + + +ServerSpec + + + |
+
+ + +
|
+||||||||||||||||||
+status + + +ServerStatus + + + |
++ | +
ServerBootConfiguration is the Schema for the serverbootconfigurations API
+Field | +Description | +||||||
---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||
+spec + + +ServerBootConfigurationSpec + + + |
+
+ + +
|
+||||||
+status + + +ServerBootConfigurationStatus + + + |
++ | +
+(Appears on:ServerBootConfiguration) +
+ServerBootConfigurationSpec defines the desired state of ServerBootConfiguration.
+Field | +Description | +
---|---|
+serverRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ ServerRef is a reference to the server for which this boot configuration is intended. + |
+
+image + +string + + |
+
+ Image specifies the boot image to be used for the server. +This field is optional and can be omitted if not specified. + |
+
+ignitionSecretRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ IgnitionSecretRef is a reference to the Kubernetes Secret object that contains +the ignition configuration for the server. This field is optional and can be omitted if not specified. + |
+
string
alias)+(Appears on:ServerBootConfigurationStatus) +
+ServerBootConfigurationState defines the possible states of a ServerBootConfiguration.
+Value | +Description | +
---|---|
"Error" |
+ServerBootConfigurationStateError indicates that there is an error with the boot configuration. + |
+
"Pending" |
+ServerBootConfigurationStatePending indicates that the boot configuration is pending and not yet ready. + |
+
"Ready" |
+ServerBootConfigurationStateReady indicates that the boot configuration is ready for use. + |
+
+(Appears on:ServerBootConfiguration) +
+ServerBootConfigurationStatus defines the observed state of ServerBootConfiguration.
+Field | +Description | +
---|---|
+state + + +ServerBootConfigurationState + + + |
+
+ State represents the current state of the boot configuration. + |
+
ServerClaim is the Schema for the serverclaims API
+Field | +Description | +||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||
+spec + + +ServerClaimSpec + + + |
+
+ + +
|
+||||||||||
+status + + +ServerClaimStatus + + + |
++ | +
+(Appears on:ServerClaim) +
+ServerClaimSpec defines the desired state of ServerClaim.
+Field | +Description | +
---|---|
+power + + +Power + + + |
+
+ Power specifies the desired power state of the server. + |
+
+serverRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ ServerRef is a reference to a specific server to be claimed. +This field is optional and can be omitted if the server is to be selected using ServerSelector. + |
+
+serverSelector + + +Kubernetes meta/v1.LabelSelector + + + |
+
+ ServerSelector specifies a label selector to identify the server to be claimed. +This field is optional and can be omitted if a specific server is referenced using ServerRef. + |
+
+ignitionSecretRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ IgnitionSecretRef is a reference to the Kubernetes Secret object that contains +the ignition configuration for the server. This field is optional and can be omitted if not specified. + |
+
+image + +string + + |
+
+ Image specifies the boot image to be used for the server. + |
+
+(Appears on:ServerClaim) +
+ServerClaimStatus defines the observed state of ServerClaim.
+Field | +Description | +
---|---|
+phase + + +Phase + + + |
+
+ Phase represents the current phase of the server claim. + |
+
string
alias)+(Appears on:ServerStatus) +
+ServerPowerState defines the possible power states for a server.
+Value | +Description | +
---|---|
"Off" |
+ServerOffPowerState indicates that the system is powered off, although some components may +continue to have auxiliary power such as the management controller. + |
+
"On" |
+ServerOnPowerState indicates that the system is powered on. + |
+
"Paused" |
+ServerPausedPowerState indicates that the system is paused. + |
+
"PoweringOff" |
+ServerPoweringOffPowerState indicates a temporary state between On and Off. +The power off action can take time while the OS is in the shutdown process. + |
+
"PoweringOn" |
+ServerPoweringOnPowerState indicates a temporary state between Off and On. +This temporary state can be very short. + |
+
+(Appears on:Server) +
+ServerSpec defines the desired state of a Server.
+Field | +Description | +
---|---|
+uuid + +string + + |
+
+ UUID is the unique identifier for the server. + |
+
+power + + +Power + + + |
+
+ Power specifies the desired power state of the server. + |
+
+indicatorLED + + +IndicatorLED + + + |
+
+ IndicatorLED specifies the desired state of the server’s indicator LED. + |
+
+serverClaimRef + + +Kubernetes core/v1.ObjectReference + + + |
+
+ ServerClaimRef is a reference to a ServerClaim object that claims this server. +This field is optional and can be omitted if no claim is associated with this server. + |
+
+bmcRef + + +Kubernetes core/v1.LocalObjectReference + + + |
+
+ BMCRef is a reference to the BMC object associated with this server. +This field is optional and can be omitted if no BMC is associated with this server. + |
+
+bmc + + +BMCAccess + + + |
+
+ BMC contains the access details for the BMC. +This field is optional and can be omitted if no BMC access is specified. + |
+
+bootConfigurationRef + + +Kubernetes core/v1.ObjectReference + + + |
+
+ BootConfigurationRef is a reference to a BootConfiguration object that specifies +the boot configuration for this server. This field is optional and can be omitted +if no boot configuration is specified. + |
+
+bootOrder + + +[]BootOrder + + + |
+
+ BootOrder specifies the boot order of the server. + |
+
+BIOS + + +[]BIOSSettings + + + |
+
+ BIOS specifies the BIOS settings for the server. + |
+
string
alias)+(Appears on:ServerStatus) +
+ServerState defines the possible states of a server.
+Value | +Description | +
---|---|
"Available" |
+ServerStateAvailable indicates that the server is available for use. + |
+
"Discovery" |
+ServerStateDiscovery indicates that the server is in its discovery state. + |
+
"Error" |
+ServerStateError indicates that there is an error with the server. + |
+
"Initial" |
+ServerStateInitial indicates that the server is in its initial state. + |
+
"Reserved" |
+ServerStateReserved indicates that the server is reserved for a specific use or user. + |
+
+(Appears on:Server) +
+ServerStatus defines the observed state of Server.
+Field | +Description | +
---|---|
+manufacturer + +string + + |
+
+ Manufacturer is the name of the server manufacturer. + |
+
+model + +string + + |
+
+ Model is the model of the server. + |
+
+sku + +string + + |
+
+ SKU is the stock keeping unit identifier for the server. + |
+
+serialNumber + +string + + |
+
+ SerialNumber is the serial number of the server. + |
+
+powerState + + +ServerPowerState + + + |
+
+ PowerState represents the current power state of the server. + |
+
+indicatorLED + + +IndicatorLED + + + |
+
+ IndicatorLED specifies the current state of the server’s indicator LED. + |
+
+state + + +ServerState + + + |
+
+ State represents the current state of the server. + |
+
+networkInterfaces + + +[]NetworkInterface + + + |
+
+ NetworkInterfaces is a list of network interfaces associated with the server. + |
+
+storages + + +[]Storage + + + |
+
+ Storages is a list of storages associated with the server. + |
+
+BIOS + + +BIOSSettings + + + |
++ | +
+conditions + + +[]Kubernetes meta/v1.Condition + + + |
+
+(Optional)
+ Conditions represents the latest available observations of the server’s current state. + |
+
+(Appears on:ServerStatus) +
+Storage defines the details of one storage device
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name is the name of the storage interface. + |
+
+rotational + +bool + + |
+
+ Rotational specifies whether the storage device is rotational. + |
+
+type + +string + + |
+
+ Type specifies the type of the storage device. + |
+
+capacity + + +k8s.io/apimachinery/pkg/api/resource.Quantity + + + |
+
+ SizeBytes specifies the size of the storage device in bytes. + |
+
+vendor + +string + + |
+
+ Vendor specifies the vendor of the storage device. + |
+
+model + +string + + |
+
+ Model specifies the model of the storage device. + |
+
+state + + +StorageState + + + |
+
+ State specifies the state of the storage device. + |
+
string
alias)+(Appears on:Storage) +
+StorageState represents Storage states
+Value | +Description | +
---|---|
"Absent" |
+StorageStateAbsent indicates that the storage device is absent. + |
+
"Disabled" |
+StorageStateDisabled indicates that the storage device is disabled. + |
+
"Enabled" |
+StorageStateEnabled indicates that the storage device is enabled. + |
+
+Generated with gen-crd-api-reference-docs
+
The metal-operator is a Kubernetes operator designed to manage bare metal servers within a Kubernetes environment. It automates the provisioning, configuration, and lifecycle management of physical servers by integrating them into Kubernetes using Custom Resource Definitions (CRDs) and controllers. The architecture promotes modularity, scalability, and flexibility, enabling seamless integration with various boot mechanisms and provisioning tools.
+flowchart LR
+ subgraph Out-of-Band Network
+ EndpointReconciler
+ end
+ EndpointReconciler -- Discovers --> EndpointCRD
+ EndpointCRD -- Uses --> MACPrefixDatabase
+ EndpointReconciler -- Creates --> BMC & BMCSecret
+
+ BMCReconciler -- Manages --> BMC
+ BMCReconciler -- Uses --> BMCSecret
+ BMCReconciler -- Discovers Servers --> ServerCRD
+
+ ServerReconciler -- Manages --> ServerCRD
+ ServerReconciler -- Uses --> metalprobe
+ ServerReconciler -- Waits for --> ServerBootConfiguration
+
+ ServerClaimReconciler -- Manages --> ServerClaimCRD
+ ServerClaimCRD -- References --> ServerCRD
+ ServerClaimReconciler -- Creates --> ServerBootConfiguration
+
+ BootOperator -- Watches --> ServerBootConfiguration
+ BootOperator -- Prepares --> BootEnvironment
+ BootOperator -- Updates --> ServerBootConfiguration
+
+ ServerReconciler -- Powers On --> ServerCRD
+
+ classDef operator fill:#f9f,stroke:#333,stroke-width:2px;
+ classDef crd fill:#9f9,stroke:#333,stroke-width:2px;
+ classDef external fill:#ff9,stroke:#333,stroke-width:2px;
+
+ class EndpointReconciler,BMCReconciler,ServerReconciler,ServerClaimReconciler operator;
+ class EndpointCRD,BMC,ServerCRD,ServerClaimCRD,ServerBootConfiguration crd;
+ class BootOperator external;
+EndpointReconciler: Discovers devices on the out-of-band network by processing Endpoint
resources. It uses a MAC Prefix Database to identify device types, vendors, protocols, and default credentials. When a BMC is detected, it creates corresponding BMC
and BMCSecret
resources.
BMCReconciler: Manages BMC
resources by connecting to BMC devices using credentials from BMCSecret
. It retrieves hardware information, updates the BMC status, and detects managed servers, creating Server
resources for them.
ServerReconciler: Manages Server
resources and their lifecycle states. During the Discovery phase, it interacts with BMCs and uses the metalprobe agent to collect in-band hardware information, updating the server's status. It handles power management, BIOS configurations, and transitions servers through various states (e.g., Initial, Discovery, Available, Reserved).
ServerClaimReconciler: Handles ServerClaim
resources, allowing users to reserve servers. Upon creation of a ServerClaim
, it allocates an available server, transitions it to the Reserved state, and creates a ServerBootConfiguration
. When the claim is deleted, it releases the server, transitioning it to the Cleanup state for sanitization.
Boot Operator (External Component): Monitors ServerBootConfiguration
resources to prepare the boot environment (e.g., configuring DHCP, PXE servers). Once the boot environment is ready, it updates the ServerBootConfiguration
status to Ready.
Discovery and Initialization:
+Endpoint
resources.BMC
and BMCSecret
resources.Server
resources for each managed server.Server Discovery Phase:
+Server
status.Server Availability:
+Server Reservation and Boot Configuration:
+ServerClaim
resources to reserve servers, specifying desired OS images and ignition configurations.ServerBootConfiguration
resources.Boot Environment Preparation:
+ServerBootConfiguration
resources and prepare the boot environment accordingly.ServerBootConfiguration
status to Ready.Server Power-On and Usage:
+Cleanup and Maintenance:
+ServerClaim
is deleted, the server transitions to the Cleanup state.