v1alpha1

package
v0.0.0-...-2028a87 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the metal3.io v1alpha1 API group +kubebuilder:object:generate=true +groupName=metal3.io

Index

Constants

View Source
const (
	// BareMetalHostFinalizer is the name of the finalizer added to
	// hosts to block delete operations until the physical host can be
	// deprovisioned.
	BareMetalHostFinalizer string = "baremetalhost.metal3.io"

	// PausedAnnotation is the annotation that pauses the reconciliation (triggers
	// an immediate requeue)
	PausedAnnotation = "baremetalhost.metal3.io/paused"

	// DetachedAnnotation is the annotation which stops provisioner management of the host
	// unlike in the paused case, the host status may be updated
	DetachedAnnotation = "baremetalhost.metal3.io/detached"

	// StatusAnnotation is the annotation that keeps a copy of the Status of BMH
	// This is particularly useful when we pivot BMH. If the status
	// annotation is present and status is empty, BMO will reconstruct BMH Status
	// from the status annotation.
	StatusAnnotation = "baremetalhost.metal3.io/status"
)
View Source
const (
	Byte     Capacity = 1
	KibiByte          = Byte * 1024
	KiloByte          = Byte * 1000
	MebiByte          = KibiByte * 1024
	MegaByte          = KiloByte * 1000
	GibiByte          = MebiByte * 1024
	GigaByte          = MegaByte * 1000
	TebiByte          = GibiByte * 1024
	TeraByte          = GigaByte * 1000
)

Capacity multipliers

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "metal3.io", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type AutomatedCleaningMode

type AutomatedCleaningMode string

AutomatedCleaningMode is the interface to enable/disable automated cleaning +kubebuilder:validation:Enum:=metadata;disabled

const (
	CleaningModeDisabled AutomatedCleaningMode = "disabled"
	CleaningModeMetadata AutomatedCleaningMode = "metadata"
)

Allowed automated cleaning modes

type BIOS

type BIOS struct {
	// The release/build date for this BIOS
	Date string `json:"date,omitempty"`

	// The vendor name for this BIOS
	Vendor string `json:"vendor,omitempty"`

	// The version of the BIOS
	Version string `json:"version,omitempty"`
}

BIOS describes the BIOS version on the host.

func (*BIOS) DeepCopy

func (in *BIOS) DeepCopy() *BIOS

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BIOS.

func (*BIOS) DeepCopyInto

func (in *BIOS) DeepCopyInto(out *BIOS)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BMCDetails

type BMCDetails struct {

	// Address holds the URL for accessing the controller on the
	// network.
	Address string `json:"address"`

	// The name of the secret containing the BMC credentials (requires
	// keys "username" and "password").
	CredentialsName string `json:"credentialsName"`

	// DisableCertificateVerification disables verification of server
	// certificates when using HTTPS to connect to the BMC. This is
	// required when the server certificate is self-signed, but is
	// insecure because it allows a man-in-the-middle to intercept the
	// connection.
	DisableCertificateVerification bool `json:"disableCertificateVerification,omitempty"`
}

BMCDetails contains the information necessary to communicate with the bare metal controller module on host.

func (*BMCDetails) DeepCopy

func (in *BMCDetails) DeepCopy() *BMCDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMCDetails.

func (*BMCDetails) DeepCopyInto

func (in *BMCDetails) DeepCopyInto(out *BMCDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BareMetalHost

type BareMetalHost struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   BareMetalHostSpec   `json:"spec,omitempty"`
	Status BareMetalHostStatus `json:"status,omitempty"`
}

BareMetalHost is the Schema for the baremetalhosts API +k8s:openapi-gen=true +kubebuilder:resource:shortName=bmh;bmhost +kubebuilder:subresource:status +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.operationalStatus",description="Operational status",priority=1 +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.provisioning.state",description="Provisioning status" +kubebuilder:printcolumn:name="Consumer",type="string",JSONPath=".spec.consumerRef.name",description="Consumer using this host" +kubebuilder:printcolumn:name="BMC",type="string",JSONPath=".spec.bmc.address",description="Address of management controller",priority=1 +kubebuilder:printcolumn:name="Hardware_Profile",type="string",JSONPath=".status.hardwareProfile",description="The type of hardware detected",priority=1 +kubebuilder:printcolumn:name="Online",type="string",JSONPath=".spec.online",description="Whether the host is online or not" +kubebuilder:printcolumn:name="Error",type="string",JSONPath=".status.errorType",description="Type of the most recent error" +kubebuilder:object:root=true

func (*BareMetalHost) BootMode

func (host *BareMetalHost) BootMode() BootMode

BootMode returns the boot method to use for the host.

func (*BareMetalHost) CredentialsKey

func (host *BareMetalHost) CredentialsKey() types.NamespacedName

CredentialsKey returns a NamespacedName suitable for loading the Secret containing the credentials associated with the host.

func (*BareMetalHost) DeepCopy

func (in *BareMetalHost) DeepCopy() *BareMetalHost

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHost.

func (*BareMetalHost) DeepCopyInto

func (in *BareMetalHost) DeepCopyInto(out *BareMetalHost)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BareMetalHost) DeepCopyObject

func (in *BareMetalHost) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*BareMetalHost) HardwareProfile

func (host *BareMetalHost) HardwareProfile() string

HardwareProfile returns the hardware profile name for the host.

func (*BareMetalHost) HasBMCDetails

func (host *BareMetalHost) HasBMCDetails() bool

HasBMCDetails returns true if the BMC details are set

func (*BareMetalHost) NeedsHardwareInspection

func (host *BareMetalHost) NeedsHardwareInspection() bool

NeedsHardwareInspection looks at the state of the host to determine if hardware inspection should be run.

func (*BareMetalHost) NeedsHardwareProfile

func (host *BareMetalHost) NeedsHardwareProfile() bool

NeedsHardwareProfile returns true if the profile is not set

func (*BareMetalHost) NeedsProvisioning

func (host *BareMetalHost) NeedsProvisioning() bool

NeedsProvisioning compares the settings with the provisioning status and returns true when more work is needed or false otherwise.

func (*BareMetalHost) NewEvent

func (host *BareMetalHost) NewEvent(reason, message string) corev1.Event

NewEvent creates a new event associated with the object and ready to be published to the kubernetes API.

func (*BareMetalHost) OperationMetricForState

func (host *BareMetalHost) OperationMetricForState(operation ProvisioningState) (metric *OperationMetric)

OperationMetricForState returns a pointer to the metric for the given provisioning state.

func (*BareMetalHost) OperationalStatus

func (host *BareMetalHost) OperationalStatus() OperationalStatus

OperationalStatus returns the contents of the OperationalStatus field.

func (*BareMetalHost) SetHardwareProfile

func (host *BareMetalHost) SetHardwareProfile(name string) (dirty bool)

SetHardwareProfile updates the hardware profile name and returns true when a change is made or false when no change is made.

func (*BareMetalHost) SetOperationalStatus

func (host *BareMetalHost) SetOperationalStatus(status OperationalStatus) bool

SetOperationalStatus updates the OperationalStatus field and returns true when a change is made or false when no change is made.

func (*BareMetalHost) SetupWebhookWithManager

func (r *BareMetalHost) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*BareMetalHost) UpdateGoodCredentials

func (host *BareMetalHost) UpdateGoodCredentials(currentSecret corev1.Secret)

UpdateGoodCredentials modifies the GoodCredentials portion of the Status struct to record the details of the secret containing credentials known to work.

func (*BareMetalHost) UpdateTriedCredentials

func (host *BareMetalHost) UpdateTriedCredentials(currentSecret corev1.Secret)

UpdateTriedCredentials modifies the TriedCredentials portion of the Status struct to record the details of the secret containing credentials known to work.

func (*BareMetalHost) ValidateCreate

func (r *BareMetalHost) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*BareMetalHost) ValidateDelete

func (r *BareMetalHost) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*BareMetalHost) ValidateUpdate

func (r *BareMetalHost) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

func (*BareMetalHost) WasProvisioned

func (host *BareMetalHost) WasProvisioned() bool

WasProvisioned returns true when we think we have placed an image on the host.

type BareMetalHostList

type BareMetalHostList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []BareMetalHost `json:"items"`
}

BareMetalHostList contains a list of BareMetalHost

func (*BareMetalHostList) DeepCopy

func (in *BareMetalHostList) DeepCopy() *BareMetalHostList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHostList.

func (*BareMetalHostList) DeepCopyInto

func (in *BareMetalHostList) DeepCopyInto(out *BareMetalHostList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BareMetalHostList) DeepCopyObject

func (in *BareMetalHostList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type BareMetalHostSpec

type BareMetalHostSpec struct {

	// Taints is the full, authoritative list of taints to apply to
	// the corresponding Machine. This list will overwrite any
	// modifications made to the Machine on an ongoing basis.
	// +optional
	Taints []corev1.Taint `json:"taints,omitempty"`

	// How do we connect to the BMC?
	BMC BMCDetails `json:"bmc,omitempty"`

	// RAID configuration for bare metal server
	RAID *RAIDConfig `json:"raid,omitempty"`

	// BIOS configuration for bare metal server
	Firmware *FirmwareConfig `json:"firmware,omitempty"`

	// What is the name of the hardware profile for this host? It
	// should only be necessary to set this when inspection cannot
	// automatically determine the profile.
	HardwareProfile string `json:"hardwareProfile,omitempty"`

	// Provide guidance about how to choose the device for the image
	// being provisioned.
	RootDeviceHints *RootDeviceHints `json:"rootDeviceHints,omitempty"`

	// Select the method of initializing the hardware during
	// boot. Defaults to UEFI.
	// +optional
	BootMode BootMode `json:"bootMode,omitempty"`

	// Which MAC address will PXE boot? This is optional for some
	// types, but required for libvirt VMs driven by vbmc.
	// +kubebuilder:validation:Pattern=`[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}`
	BootMACAddress string `json:"bootMACAddress,omitempty"`

	// Should the server be online?
	Online bool `json:"online"`

	// ConsumerRef can be used to store information about something
	// that is using a host. When it is not empty, the host is
	// considered "in use".
	ConsumerRef *corev1.ObjectReference `json:"consumerRef,omitempty"`

	// Image holds the details of the image to be provisioned.
	Image *Image `json:"image,omitempty"`

	// UserData holds the reference to the Secret containing the user
	// data to be passed to the host before it boots.
	UserData *corev1.SecretReference `json:"userData,omitempty"`

	// NetworkData holds the reference to the Secret containing network
	// configuration (e.g content of network_data.json which is passed
	// to Config Drive).
	NetworkData *corev1.SecretReference `json:"networkData,omitempty"`

	// MetaData holds the reference to the Secret containing host metadata
	// (e.g. meta_data.json which is passed to Config Drive).
	MetaData *corev1.SecretReference `json:"metaData,omitempty"`

	// Description is a human-entered text used to help identify the host
	Description string `json:"description,omitempty"`

	// ExternallyProvisioned means something else is managing the
	// image running on the host and the operator should only manage
	// the power status and hardware inventory inspection. If the
	// Image field is filled in, this field is ignored.
	ExternallyProvisioned bool `json:"externallyProvisioned,omitempty"`

	// When set to disabled, automated cleaning will be avoided
	// during provisioning and deprovisioning.
	// +optional
	// +kubebuilder:default:=metadata
	// +kubebuilder:validation:Optional
	AutomatedCleaningMode AutomatedCleaningMode `json:"automatedCleaningMode,omitempty"`

	// A custom deploy procedure.
	// +optional
	CustomDeploy *CustomDeploy `json:"customDeploy,omitempty"`
}

BareMetalHostSpec defines the desired state of BareMetalHost

func (*BareMetalHostSpec) DeepCopy

func (in *BareMetalHostSpec) DeepCopy() *BareMetalHostSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHostSpec.

func (*BareMetalHostSpec) DeepCopyInto

func (in *BareMetalHostSpec) DeepCopyInto(out *BareMetalHostSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BareMetalHostStatus

type BareMetalHostStatus struct {

	// OperationalStatus holds the status of the host
	// +kubebuilder:validation:Enum="";OK;discovered;error;delayed;detached
	OperationalStatus OperationalStatus `json:"operationalStatus"`

	// ErrorType indicates the type of failure encountered when the
	// OperationalStatus is OperationalStatusError
	// +kubebuilder:validation:Enum=provisioned registration error;registration error;inspection error;preparation error;provisioning error;power management error
	ErrorType ErrorType `json:"errorType,omitempty"`

	// LastUpdated identifies when this status was last observed.
	// +optional
	LastUpdated *metav1.Time `json:"lastUpdated,omitempty"`

	// The name of the profile matching the hardware details.
	HardwareProfile string `json:"hardwareProfile"`

	// The hardware discovered to exist on the host.
	HardwareDetails *HardwareDetails `json:"hardware,omitempty"`

	// Information tracked by the provisioner.
	Provisioning ProvisionStatus `json:"provisioning"`

	// the last credentials we were able to validate as working
	GoodCredentials CredentialsStatus `json:"goodCredentials,omitempty"`

	// the last credentials we sent to the provisioning backend
	TriedCredentials CredentialsStatus `json:"triedCredentials,omitempty"`

	// the last error message reported by the provisioning subsystem
	ErrorMessage string `json:"errorMessage"`

	// indicator for whether or not the host is powered on
	PoweredOn bool `json:"poweredOn"`

	// OperationHistory holds information about operations performed
	// on this host.
	OperationHistory OperationHistory `json:"operationHistory,omitempty"`

	// ErrorCount records how many times the host has encoutered an error since the last successful operation
	// +kubebuilder:default:=0
	ErrorCount int `json:"errorCount"`
}

BareMetalHostStatus defines the observed state of BareMetalHost

func (*BareMetalHostStatus) DeepCopy

func (in *BareMetalHostStatus) DeepCopy() *BareMetalHostStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BareMetalHostStatus.

func (*BareMetalHostStatus) DeepCopyInto

func (in *BareMetalHostStatus) DeepCopyInto(out *BareMetalHostStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type BootMode

type BootMode string

BootMode is the boot mode of the system +kubebuilder:validation:Enum=UEFI;UEFISecureBoot;legacy

const (
	UEFI            BootMode = "UEFI"
	UEFISecureBoot  BootMode = "UEFISecureBoot"
	Legacy          BootMode = "legacy"
	DefaultBootMode BootMode = UEFI
)

Allowed boot mode from metal3

type CPU

type CPU struct {
	Arch           string     `json:"arch,omitempty"`
	Model          string     `json:"model,omitempty"`
	ClockMegahertz ClockSpeed `json:"clockMegahertz,omitempty"`
	Flags          []string   `json:"flags,omitempty"`
	Count          int        `json:"count,omitempty"`
}

CPU describes one processor on the host.

func (*CPU) DeepCopy

func (in *CPU) DeepCopy() *CPU

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CPU.

func (*CPU) DeepCopyInto

func (in *CPU) DeepCopyInto(out *CPU)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Capacity

type Capacity int64

Capacity is a disk size in Bytes

type ChecksumType

type ChecksumType string

ChecksumType holds the algorithm name for the checksum +kubebuilder:validation:Enum=md5;sha256;sha512

const (
	// MD5 checksum type
	MD5 ChecksumType = "md5"

	// SHA256 checksum type
	SHA256 ChecksumType = "sha256"

	// SHA512 checksum type
	SHA512 ChecksumType = "sha512"
)

type ClockSpeed

type ClockSpeed float64

ClockSpeed is a clock speed in MHz +kubebuilder:validation:Format=double

const (
	MegaHertz ClockSpeed = 1.0
	GigaHertz            = 1000 * MegaHertz
)

ClockSpeed multipliers

type CredentialsStatus

type CredentialsStatus struct {
	Reference *corev1.SecretReference `json:"credentials,omitempty"`
	Version   string                  `json:"credentialsVersion,omitempty"`
}

CredentialsStatus contains the reference and version of the last set of BMC credentials the controller was able to validate.

func (*CredentialsStatus) DeepCopy

func (in *CredentialsStatus) DeepCopy() *CredentialsStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialsStatus.

func (*CredentialsStatus) DeepCopyInto

func (in *CredentialsStatus) DeepCopyInto(out *CredentialsStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (CredentialsStatus) Match

func (cs CredentialsStatus) Match(secret corev1.Secret) bool

Match compares the saved status information with the name and content of a secret object.

type CustomDeploy

type CustomDeploy struct {
	// Custom deploy method name.
	// This name is specific to the deploy ramdisk used. If you don't have
	// a custom deploy ramdisk, you shouldn't use CustomDeploy.
	Method string `json:"method"`
}

Custom deploy is a description of a customized deploy process.

func (*CustomDeploy) DeepCopy

func (in *CustomDeploy) DeepCopy() *CustomDeploy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomDeploy.

func (*CustomDeploy) DeepCopyInto

func (in *CustomDeploy) DeepCopyInto(out *CustomDeploy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DesiredSettingsMap

type DesiredSettingsMap map[string]intstr.IntOrString

func (DesiredSettingsMap) DeepCopy

func (in DesiredSettingsMap) DeepCopy() DesiredSettingsMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DesiredSettingsMap.

func (DesiredSettingsMap) DeepCopyInto

func (in DesiredSettingsMap) DeepCopyInto(out *DesiredSettingsMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DiskType

type DiskType string

DiskType is a disk type, i.e. HDD, SSD, NVME.

const (
	HDD  DiskType = "HDD"
	SSD  DiskType = "SSD"
	NVME DiskType = "NVME"
)

DiskType constants.

type ErrorType

type ErrorType string

ErrorType indicates the class of problem that has caused the Host resource to enter an error state.

const (
	// ProvisionedRegistrationError is an error condition occurring when the controller
	// is unable to re-register an already provisioned host.
	ProvisionedRegistrationError ErrorType = "provisioned registration error"
	// RegistrationError is an error condition occurring when the
	// controller is unable to connect to the Host's baseboard management
	// controller.
	RegistrationError ErrorType = "registration error"
	// InspectionError is an error condition occurring when an attempt to
	// obtain hardware details from the Host fails.
	InspectionError ErrorType = "inspection error"
	// PreparationError is an error condition occurring when do
	// cleaning steps failed.
	PreparationError ErrorType = "preparation error"
	// ProvisioningError is an error condition occurring when the controller
	// fails to provision or deprovision the Host.
	ProvisioningError ErrorType = "provisioning error"
	// PowerManagementError is an error condition occurring when the
	// controller is unable to modify the power state of the Host.
	PowerManagementError ErrorType = "power management error"
	// DetachError is an error condition occurring when the
	// controller is unable to detatch the host from the provisioner
	DetachError ErrorType = "detach error"
)

type Firmware

type Firmware struct {
	// The BIOS for this firmware
	BIOS BIOS `json:"bios,omitempty"`
}

Firmware describes the firmware on the host.

func (*Firmware) DeepCopy

func (in *Firmware) DeepCopy() *Firmware

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Firmware.

func (*Firmware) DeepCopyInto

func (in *Firmware) DeepCopyInto(out *Firmware)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirmwareConfig

type FirmwareConfig struct {
	// Supports the virtualization of platform hardware.
	// This supports following options: true, false.
	// +kubebuilder:validation:Enum=true;false
	VirtualizationEnabled *bool `json:"virtualizationEnabled,omitempty"`

	// Allows a single physical processor core to appear as several logical processors.
	// This supports following options: true, false.
	// +kubebuilder:validation:Enum=true;false
	SimultaneousMultithreadingEnabled *bool `json:"simultaneousMultithreadingEnabled,omitempty"`

	// SR-IOV support enables a hypervisor to create virtual instances of a PCI-express device, potentially increasing performance.
	// This supports following options: true, false.
	// +kubebuilder:validation:Enum=true;false
	SriovEnabled *bool `json:"sriovEnabled,omitempty"`
}

FirmwareConfig contains the configuration that you want to configure BIOS settings in Bare metal server

func (*FirmwareConfig) DeepCopy

func (in *FirmwareConfig) DeepCopy() *FirmwareConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirmwareConfig.

func (*FirmwareConfig) DeepCopyInto

func (in *FirmwareConfig) DeepCopyInto(out *FirmwareConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirmwareSchema

type FirmwareSchema struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec FirmwareSchemaSpec `json:"spec,omitempty"`
}

FirmwareSchema is the Schema for the firmwareschemas API

func (*FirmwareSchema) CheckSettingIsValid

func (host *FirmwareSchema) CheckSettingIsValid(name string, value intstr.IntOrString, schemas map[string]SettingSchema) bool

Check whether the setting's name and value is valid using the schema

func (*FirmwareSchema) DeepCopy

func (in *FirmwareSchema) DeepCopy() *FirmwareSchema

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirmwareSchema.

func (*FirmwareSchema) DeepCopyInto

func (in *FirmwareSchema) DeepCopyInto(out *FirmwareSchema)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FirmwareSchema) DeepCopyObject

func (in *FirmwareSchema) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FirmwareSchemaList

type FirmwareSchemaList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FirmwareSchema `json:"items"`
}

FirmwareSchemaList contains a list of FirmwareSchema

func (*FirmwareSchemaList) DeepCopy

func (in *FirmwareSchemaList) DeepCopy() *FirmwareSchemaList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirmwareSchemaList.

func (*FirmwareSchemaList) DeepCopyInto

func (in *FirmwareSchemaList) DeepCopyInto(out *FirmwareSchemaList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FirmwareSchemaList) DeepCopyObject

func (in *FirmwareSchemaList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FirmwareSchemaSpec

type FirmwareSchemaSpec struct {

	// The hardware vendor associated with this schema
	// +optional
	HardwareVendor string `json:"hardwareVendor,omitempty"`

	// The hardware model associated with this schema
	// +optional
	HardwareModel string `json:"hardwareModel,omitempty"`

	// Map of firmware name to schema
	Schema map[string]SettingSchema `json:"schema" required:"true"`
}

FirmwareSchemaSpec defines the desired state of FirmwareSchema

func (*FirmwareSchemaSpec) DeepCopy

func (in *FirmwareSchemaSpec) DeepCopy() *FirmwareSchemaSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirmwareSchemaSpec.

func (*FirmwareSchemaSpec) DeepCopyInto

func (in *FirmwareSchemaSpec) DeepCopyInto(out *FirmwareSchemaSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HardwareDetails

type HardwareDetails struct {
	SystemVendor HardwareSystemVendor `json:"systemVendor,omitempty"`
	Firmware     Firmware             `json:"firmware,omitempty"`
	RAMMebibytes int                  `json:"ramMebibytes,omitempty"`
	NIC          []NIC                `json:"nics,omitempty"`
	Storage      []Storage            `json:"storage,omitempty"`
	CPU          CPU                  `json:"cpu,omitempty"`
	Hostname     string               `json:"hostname,omitempty"`
}

HardwareDetails collects all of the information about hardware discovered on the host.

func (*HardwareDetails) DeepCopy

func (in *HardwareDetails) DeepCopy() *HardwareDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardwareDetails.

func (*HardwareDetails) DeepCopyInto

func (in *HardwareDetails) DeepCopyInto(out *HardwareDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HardwareRAIDVolume

type HardwareRAIDVolume struct {
	// Size (Integer) of the logical disk to be created in GiB.
	// If unspecified or set be 0, the maximum capacity of disk will be used for logical disk.
	// +kubebuilder:validation:Minimum=0
	SizeGibibytes *int `json:"sizeGibibytes,omitempty"`

	// RAID level for the logical disk. The following levels are supported: 0;1;2;5;6;1+0;5+0;6+0.
	// +kubebuilder:validation:Enum="0";"1";"2";"5";"6";"1+0";"5+0";"6+0"
	Level string `json:"level" required:"true"`

	// Name of the volume. Should be unique within the Node. If not specified, volume name will be auto-generated.
	// +kubebuilder:validation:MaxLength=64
	Name string `json:"name,omitempty"`

	// Select disks with only rotational or solid-state storage
	Rotational *bool `json:"rotational,omitempty"`

	// Integer, number of physical disks to use for the logical disk. Defaults to minimum number of disks required
	// for the particular RAID level.
	// +kubebuilder:validation:Minimum=1
	NumberOfPhysicalDisks *int `json:"numberOfPhysicalDisks,omitempty"`
}

HardwareRAIDVolume defines the desired configuration of volume in hardware RAID

func (*HardwareRAIDVolume) DeepCopy

func (in *HardwareRAIDVolume) DeepCopy() *HardwareRAIDVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardwareRAIDVolume.

func (*HardwareRAIDVolume) DeepCopyInto

func (in *HardwareRAIDVolume) DeepCopyInto(out *HardwareRAIDVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HardwareSystemVendor

type HardwareSystemVendor struct {
	Manufacturer string `json:"manufacturer,omitempty"`
	ProductName  string `json:"productName,omitempty"`
	SerialNumber string `json:"serialNumber,omitempty"`
}

HardwareSystemVendor stores details about the whole hardware system.

func (*HardwareSystemVendor) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HardwareSystemVendor.

func (*HardwareSystemVendor) DeepCopyInto

func (in *HardwareSystemVendor) DeepCopyInto(out *HardwareSystemVendor)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostFirmwareSettings

type HostFirmwareSettings struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   HostFirmwareSettingsSpec   `json:"spec,omitempty"`
	Status HostFirmwareSettingsStatus `json:"status,omitempty"`
}

HostFirmwareSettings is the Schema for the hostfirmwaresettings API

func (*HostFirmwareSettings) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostFirmwareSettings.

func (*HostFirmwareSettings) DeepCopyInto

func (in *HostFirmwareSettings) DeepCopyInto(out *HostFirmwareSettings)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostFirmwareSettings) DeepCopyObject

func (in *HostFirmwareSettings) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HostFirmwareSettingsList

type HostFirmwareSettingsList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []HostFirmwareSettings `json:"items"`
}

HostFirmwareSettingsList contains a list of HostFirmwareSettings

func (*HostFirmwareSettingsList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostFirmwareSettingsList.

func (*HostFirmwareSettingsList) DeepCopyInto

func (in *HostFirmwareSettingsList) DeepCopyInto(out *HostFirmwareSettingsList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*HostFirmwareSettingsList) DeepCopyObject

func (in *HostFirmwareSettingsList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type HostFirmwareSettingsSpec

type HostFirmwareSettingsSpec struct {

	// Settings are the desired firmware settings stored as name/value pairs.
	// This will be populated with the actual firmware settings and only
	// contain the settings that can be modified (i.e. not ReadOnly), to
	// facilitate making changes.
	// +patchStrategy=merge
	Settings DesiredSettingsMap `json:"settings" required:"true"`
}

HostFirmwareSettingsSpec defines the desired state of HostFirmwareSettings

func (*HostFirmwareSettingsSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostFirmwareSettingsSpec.

func (*HostFirmwareSettingsSpec) DeepCopyInto

func (in *HostFirmwareSettingsSpec) DeepCopyInto(out *HostFirmwareSettingsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HostFirmwareSettingsStatus

type HostFirmwareSettingsStatus struct {
	// FirmwareSchema is a reference to the Schema used to describe each
	// FirmwareSetting. By default, this will be a Schema in the same
	// Namespace as the settings but it can be overwritten in the Spec
	FirmwareSchema *SchemaReference `json:"schema,omitempty"`

	// Settings are the actual firmware settings stored as name/value pairs
	Settings SettingsMap `json:"settings" required:"true"`
}

HostFirmwareSettingsStatus defines the observed state of HostFirmwareSettings

func (*HostFirmwareSettingsStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostFirmwareSettingsStatus.

func (*HostFirmwareSettingsStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Image

type Image struct {
	// URL is a location of an image to deploy.
	URL string `json:"url"`

	// Checksum is the checksum for the image.
	Checksum string `json:"checksum,omitempty"`

	// ChecksumType is the checksum algorithm for the image.
	// e.g md5, sha256, sha512
	ChecksumType ChecksumType `json:"checksumType,omitempty"`

	// DiskFormat contains the format of the image (raw, qcow2, ...).
	// Needs to be set to raw for raw images streaming.
	// Note live-iso means an iso referenced by the url will be live-booted
	// and not deployed to disk, and in this case the checksum options
	// are not required and if specified will be ignored.
	// +kubebuilder:validation:Enum=raw;qcow2;vdi;vmdk;live-iso
	DiskFormat *string `json:"format,omitempty"`
}

Image holds the details of an image either to provisioned or that has been provisioned.

func (*Image) DeepCopy

func (in *Image) DeepCopy() *Image

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Image.

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Image) GetChecksum

func (image *Image) GetChecksum() (checksum, checksumType string, ok bool)

GetChecksum method returns the checksum of an image

func (*Image) IsLiveISO

func (image *Image) IsLiveISO() bool

type NIC

type NIC struct {
	// The name of the network interface, e.g. "en0"
	Name string `json:"name,omitempty"`

	// The vendor and product IDs of the NIC, e.g. "0x8086 0x1572"
	Model string `json:"model,omitempty"`

	// The device MAC address
	// +kubebuilder:validation:Pattern=`[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}`
	MAC string `json:"mac,omitempty"`

	// The IP address of the interface. This will be an IPv4 or IPv6 address
	// if one is present.  If both IPv4 and IPv6 addresses are present in a
	// dual-stack environment, two nics will be output, one with each IP.
	IP string `json:"ip,omitempty"`

	// The speed of the device in Gigabits per second
	SpeedGbps int `json:"speedGbps,omitempty"`

	// The VLANs available
	VLANs []VLAN `json:"vlans,omitempty"`

	// The untagged VLAN ID
	VLANID VLANID `json:"vlanId,omitempty"`

	// Whether the NIC is PXE Bootable
	PXE bool `json:"pxe,omitempty"`
}

NIC describes one network interface on the host.

func (*NIC) DeepCopy

func (in *NIC) DeepCopy() *NIC

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NIC.

func (*NIC) DeepCopyInto

func (in *NIC) DeepCopyInto(out *NIC)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperationHistory

type OperationHistory struct {
	Register    OperationMetric `json:"register,omitempty"`
	Inspect     OperationMetric `json:"inspect,omitempty"`
	Provision   OperationMetric `json:"provision,omitempty"`
	Deprovision OperationMetric `json:"deprovision,omitempty"`
}

OperationHistory holds information about operations performed on a host.

func (*OperationHistory) DeepCopy

func (in *OperationHistory) DeepCopy() *OperationHistory

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationHistory.

func (*OperationHistory) DeepCopyInto

func (in *OperationHistory) DeepCopyInto(out *OperationHistory)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type OperationMetric

type OperationMetric struct {
	// +nullable
	Start metav1.Time `json:"start,omitempty"`
	// +nullable
	End metav1.Time `json:"end,omitempty"`
}

OperationMetric contains metadata about an operation (inspection, provisioning, etc.) used for tracking metrics.

func (*OperationMetric) DeepCopy

func (in *OperationMetric) DeepCopy() *OperationMetric

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OperationMetric.

func (*OperationMetric) DeepCopyInto

func (in *OperationMetric) DeepCopyInto(out *OperationMetric)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (OperationMetric) Duration

func (om OperationMetric) Duration() time.Duration

Duration returns the length of time that was spent on the operation. If the operation is not finished, it returns 0.

type OperationalStatus

type OperationalStatus string

OperationalStatus represents the state of the host

const (
	// OperationalStatusOK is the status value for when the host is
	// configured correctly and is manageable.
	OperationalStatusOK OperationalStatus = "OK"

	// OperationalStatusDiscovered is the status value for when the
	// host is only partially configured, such as when when the BMC
	// address is known but the login credentials are not.
	OperationalStatusDiscovered OperationalStatus = "discovered"

	// OperationalStatusError is the status value for when the host
	// has any sort of error.
	OperationalStatusError OperationalStatus = "error"

	// OperationalStatusDelayed is the status value for when the host
	// deployment needs to be delayed to limit simultaneous hosts provisioning
	OperationalStatusDelayed = "delayed"

	// OperationalStatusDetached is the status value when the host is
	// marked unmanaged via the detached annotation
	OperationalStatusDetached OperationalStatus = "detached"
)

type ProvisionStatus

type ProvisionStatus struct {
	// An indiciator for what the provisioner is doing with the host.
	State ProvisioningState `json:"state"`

	// The machine's UUID from the underlying provisioning tool
	ID string `json:"ID"`

	// Image holds the details of the last image successfully
	// provisioned to the host.
	Image Image `json:"image,omitempty"`

	// The RootDevicehints set by the user
	RootDeviceHints *RootDeviceHints `json:"rootDeviceHints,omitempty"`

	// BootMode indicates the boot mode used to provision the node
	BootMode BootMode `json:"bootMode,omitempty"`

	// The Raid set by the user
	RAID *RAIDConfig `json:"raid,omitempty"`

	// The Bios set by the user
	Firmware *FirmwareConfig `json:"firmware,omitempty"`

	// Custom deploy procedure applied to the host.
	CustomDeploy *CustomDeploy `json:"customDeploy,omitempty"`
}

ProvisionStatus holds the state information for a single target.

func (*ProvisionStatus) DeepCopy

func (in *ProvisionStatus) DeepCopy() *ProvisionStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProvisionStatus.

func (*ProvisionStatus) DeepCopyInto

func (in *ProvisionStatus) DeepCopyInto(out *ProvisionStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ProvisioningState

type ProvisioningState string

ProvisioningState defines the states the provisioner will report the host has having.

const (
	// StateNone means the state is unknown
	StateNone ProvisioningState = ""

	// StateUnmanaged means there is insufficient information available to
	// register the host
	StateUnmanaged ProvisioningState = "unmanaged"

	// StateRegistering means we are telling the backend about the host
	StateRegistering ProvisioningState = "registering"

	// StateMatchProfile means we are comparing the discovered details
	// against known hardware profiles
	StateMatchProfile ProvisioningState = "match profile"

	// StatePreparing means we are removing existing configuration and set new configuration to the host
	StatePreparing ProvisioningState = "preparing"

	// StateReady means the host can be consumed
	StateReady ProvisioningState = "ready"

	// StateAvailable means the host can be consumed
	StateAvailable ProvisioningState = "available"

	// StateProvisioning means we are writing an image to the host's
	// disk(s)
	StateProvisioning ProvisioningState = "provisioning"

	// StateProvisioned means we have written an image to the host's
	// disk(s)
	StateProvisioned ProvisioningState = "provisioned"

	// StateExternallyProvisioned means something else is managing the
	// image on the host
	StateExternallyProvisioned ProvisioningState = "externally provisioned"

	// StateDeprovisioning means we are removing an image from the
	// host's disk(s)
	StateDeprovisioning ProvisioningState = "deprovisioning"

	// StateInspecting means we are running the agent on the host to
	// learn about the hardware components available there
	StateInspecting ProvisioningState = "inspecting"

	// StateDeleting means we are in the process of cleaning up the host
	// ready for deletion
	StateDeleting ProvisioningState = "deleting"
)

type RAIDConfig

type RAIDConfig struct {
	// The list of logical disks for hardware RAID, if rootDeviceHints isn't used, first volume is root volume.
	// You can set the value of this field to `[]` to clear all the hardware RAID configurations.
	// +optional
	HardwareRAIDVolumes []HardwareRAIDVolume `json:"hardwareRAIDVolumes,omitempty"`

	// The list of logical disks for software RAID, if rootDeviceHints isn't used, first volume is root volume.
	// If HardwareRAIDVolumes is set this item will be invalid.
	// The number of created Software RAID devices must be 1 or 2.
	// If there is only one Software RAID device, it has to be a RAID-1.
	// If there are two, the first one has to be a RAID-1, while the RAID level for the second one can be 0, 1, or 1+0.
	// As the first RAID device will be the deployment device,
	// enforcing a RAID-1 reduces the risk of ending up with a non-booting node in case of a disk failure.
	// Software RAID will always be deleted.
	// +kubebuilder:validation:MaxItems=2
	// +optional
	SoftwareRAIDVolumes []SoftwareRAIDVolume `json:"softwareRAIDVolumes,omitempty"`
}

RAIDConfig contains the configuration that are required to config RAID in Bare Metal server

func (*RAIDConfig) DeepCopy

func (in *RAIDConfig) DeepCopy() *RAIDConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RAIDConfig.

func (*RAIDConfig) DeepCopyInto

func (in *RAIDConfig) DeepCopyInto(out *RAIDConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RebootAnnotationArguments

type RebootAnnotationArguments struct {
	Mode RebootMode `json:"mode"`
}

RebootAnnotationArguments defines the arguments of the RebootAnnotation type

func (*RebootAnnotationArguments) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RebootAnnotationArguments.

func (*RebootAnnotationArguments) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RebootMode

type RebootMode string

RebootMode defines known variations of reboot modes

const (
	// RebootModeHard defined for hard reset of a node
	RebootModeHard RebootMode = "hard"
	// RebootModeSoft defined for soft reset of a node
	RebootModeSoft RebootMode = "soft"
)

type RootDeviceHints

type RootDeviceHints struct {
	// A Linux device name like "/dev/vda". The hint must match the
	// actual value exactly.
	DeviceName string `json:"deviceName,omitempty"`

	// A SCSI bus address like 0:0:0:0. The hint must match the actual
	// value exactly.
	HCTL string `json:"hctl,omitempty"`

	// A vendor-specific device identifier. The hint can be a
	// substring of the actual value.
	Model string `json:"model,omitempty"`

	// The name of the vendor or manufacturer of the device. The hint
	// can be a substring of the actual value.
	Vendor string `json:"vendor,omitempty"`

	// Device serial number. The hint must match the actual value
	// exactly.
	SerialNumber string `json:"serialNumber,omitempty"`

	// The minimum size of the device in Gigabytes.
	// +kubebuilder:validation:Minimum=0
	MinSizeGigabytes int `json:"minSizeGigabytes,omitempty"`

	// Unique storage identifier. The hint must match the actual value
	// exactly.
	WWN string `json:"wwn,omitempty"`

	// Unique storage identifier with the vendor extension
	// appended. The hint must match the actual value exactly.
	WWNWithExtension string `json:"wwnWithExtension,omitempty"`

	// Unique vendor storage identifier. The hint must match the
	// actual value exactly.
	WWNVendorExtension string `json:"wwnVendorExtension,omitempty"`

	// True if the device should use spinning media, false otherwise.
	Rotational *bool `json:"rotational,omitempty"`
}

RootDeviceHints holds the hints for specifying the storage location for the root filesystem for the image.

func (*RootDeviceHints) DeepCopy

func (in *RootDeviceHints) DeepCopy() *RootDeviceHints

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootDeviceHints.

func (*RootDeviceHints) DeepCopyInto

func (in *RootDeviceHints) DeepCopyInto(out *RootDeviceHints)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SchemaReference

type SchemaReference struct {
	// `namespace` is the namespace of the where the schema is stored.
	Namespace string `json:"namespace"`
	// `name` is the reference to the schema.
	Name string `json:"name"`
}

func (*SchemaReference) DeepCopy

func (in *SchemaReference) DeepCopy() *SchemaReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SchemaReference.

func (*SchemaReference) DeepCopyInto

func (in *SchemaReference) DeepCopyInto(out *SchemaReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SettingSchema

type SettingSchema struct {

	// The type of setting.
	// +kubebuilder:validation:Enum=Enumeration;String;Integer;Boolean;Password
	AttributeType string `json:"attribute_type,omitempty"`

	// The allowable value for an Enumeration type setting.
	AllowableValues []string `json:"allowable_values,omitempty"`

	// The lowest value for an Integer type setting.
	LowerBound *int `json:"lower_bound,omitempty"`

	// The highest value for an Integer type setting.
	UpperBound *int `json:"upper_bound,omitempty"`

	// Minimum length for a String type setting.
	MinLength *int `json:"min_length,omitempty"`

	// Maximum length for a String type setting.
	MaxLength *int `json:"max_length,omitempty"`

	// Whether or not this setting is read only.
	ReadOnly *bool `json:"read_only,omitempty"`

	// Whether or not a reset is required after changing this setting.
	ResetRequired *bool `json:"reset_required,omitempty"`

	// Whether or not this setting's value is unique to this node, e.g.
	// a serial number.
	Unique *bool `json:"unique,omitempty"`
}

Additional data describing the firmware setting

func (*SettingSchema) DeepCopy

func (in *SettingSchema) DeepCopy() *SettingSchema

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SettingSchema.

func (*SettingSchema) DeepCopyInto

func (in *SettingSchema) DeepCopyInto(out *SettingSchema)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SettingsMap

type SettingsMap map[string]string

func (SettingsMap) DeepCopy

func (in SettingsMap) DeepCopy() SettingsMap

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SettingsMap.

func (SettingsMap) DeepCopyInto

func (in SettingsMap) DeepCopyInto(out *SettingsMap)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SoftwareRAIDVolume

type SoftwareRAIDVolume struct {
	// Size (Integer) of the logical disk to be created in GiB.
	// If unspecified or set be 0, the maximum capacity of disk will be used for logical disk.
	// +kubebuilder:validation:Minimum=0
	SizeGibibytes *int `json:"sizeGibibytes,omitempty"`

	// RAID level for the logical disk. The following levels are supported: 0;1;1+0.
	// +kubebuilder:validation:Enum="0";"1";"1+0"
	Level string `json:"level" required:"true"`

	// A list of device hints, the number of items should be greater than or equal to 2.
	// +kubebuilder:validation:MinItems=2
	PhysicalDisks []RootDeviceHints `json:"physicalDisks,omitempty"`
}

SoftwareRAIDVolume defines the desired configuration of volume in software RAID

func (*SoftwareRAIDVolume) DeepCopy

func (in *SoftwareRAIDVolume) DeepCopy() *SoftwareRAIDVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SoftwareRAIDVolume.

func (*SoftwareRAIDVolume) DeepCopyInto

func (in *SoftwareRAIDVolume) DeepCopyInto(out *SoftwareRAIDVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Storage

type Storage struct {
	// The Linux device name of the disk, e.g. "/dev/sda". Note that this
	// may not be stable across reboots.
	Name string `json:"name,omitempty"`

	// Whether this disk represents rotational storage.
	// This field is not recommended for usage, please
	// prefer using 'Type' field instead, this field
	// will be deprecated eventually.
	Rotational bool `json:"rotational,omitempty"`

	// Device type, one of: HDD, SSD, NVME.
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=HDD;SSD;NVME;
	Type DiskType `json:"type,omitempty"`

	// The size of the disk in Bytes
	SizeBytes Capacity `json:"sizeBytes,omitempty"`

	// The name of the vendor of the device
	Vendor string `json:"vendor,omitempty"`

	// Hardware model
	Model string `json:"model,omitempty"`

	// The serial number of the device
	SerialNumber string `json:"serialNumber,omitempty"`

	// The WWN of the device
	WWN string `json:"wwn,omitempty"`

	// The WWN Vendor extension of the device
	WWNVendorExtension string `json:"wwnVendorExtension,omitempty"`

	// The WWN with the extension
	WWNWithExtension string `json:"wwnWithExtension,omitempty"`

	// The SCSI location of the device
	HCTL string `json:"hctl,omitempty"`
}

Storage describes one storage device (disk, SSD, etc.) on the host.

func (*Storage) DeepCopy

func (in *Storage) DeepCopy() *Storage

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Storage.

func (*Storage) DeepCopyInto

func (in *Storage) DeepCopyInto(out *Storage)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VLAN

type VLAN struct {
	ID VLANID `json:"id,omitempty"`

	Name string `json:"name,omitempty"`
}

VLAN represents the name and ID of a VLAN

func (*VLAN) DeepCopy

func (in *VLAN) DeepCopy() *VLAN

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VLAN.

func (*VLAN) DeepCopyInto

func (in *VLAN) DeepCopyInto(out *VLAN)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VLANID

type VLANID int32

VLANID is a 12-bit 802.1Q VLAN identifier +kubebuilder:validation:Type=integer +kubebuilder:validation:Minimum=0 +kubebuilder:validation:Maximum=4094

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL