v1alpha4

package
v0.11.2 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2024 License: Apache-2.0 Imports: 25 Imported by: 3

Documentation

Overview

Package v1alpha4 contains API Schema definitions for the switch v1beta1 API group +kubebuilder:object:generate=true +groupName=metal.ironcore.dev

Index

Constants

View Source
const (
	CLabelPrefix = "metal.ironcore.dev/size-"

	CAggregatePathPrefix            = "{.status.computed."
	CAggregatePathPrefixReplacement = "{."
)
View Source
const (
	CStatusFieldName   = "status"
	CComputedFieldName = "computed"
)

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects.
	SchemeGroupVersion = schema.GroupVersion{Group: "metal.ironcore.dev", Version: "v1alpha4"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme.
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var CDummyInventorySpec = getDummyInventoryForValidation()

Functions

func GetSizeMatchLabel

func GetSizeMatchLabel(sizeName string) string

Types

type AdditionalIPSpec

type AdditionalIPSpec struct {
	// Address contains additional IP address that should be assigned to the interface
	// +kubebuilder:validation:Required
	Address *string `json:"address,omitempty"`
	// ParentSubnet contains label selector to pick up IPAM objects
	// +kubebuilder:validation:Optional
	ParentSubnet *metav1.LabelSelector `json:"parentSubnet,omitempty"`
}

AdditionalIPSpec defines IP address and selector for subnet where address should be reserved.

func (*AdditionalIPSpec) DeepCopy

func (in *AdditionalIPSpec) DeepCopy() *AdditionalIPSpec

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

func (*AdditionalIPSpec) DeepCopyInto

func (in *AdditionalIPSpec) DeepCopyInto(out *AdditionalIPSpec)

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

func (*AdditionalIPSpec) GetAddress

func (in *AdditionalIPSpec) GetAddress() string

GetAddress returns value of address field of given AdditionalIPSpec object if it is not nil, otherwise empty string.

type AddressFamiliesMap

type AddressFamiliesMap struct {
	// IPv4 is a flag defining whether IPv4 is used or not
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=true
	IPv4 *bool `json:"ipv4"`
	// IPv6 is a flag defining whether IPv6 is used or not
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	IPv6 *bool `json:"ipv6"`
}

AddressFamiliesMap contains flags regarding what IP address families should be used.

func (*AddressFamiliesMap) DeepCopy

func (in *AddressFamiliesMap) DeepCopy() *AddressFamiliesMap

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

func (*AddressFamiliesMap) DeepCopyInto

func (in *AddressFamiliesMap) DeepCopyInto(out *AddressFamiliesMap)

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

func (*AddressFamiliesMap) GetIPv4

func (in *AddressFamiliesMap) GetIPv4() bool

GetIPv4 returns value of ipv4 field of given AddressFamilyMap object if it is not nil, otherwise false.

func (*AddressFamiliesMap) GetIPv6

func (in *AddressFamiliesMap) GetIPv6() bool

GetIPv6 returns value of ipv6 field of given AddressFamilyMap object if it is not nil, otherwise false.

type Addresses

type Addresses struct {
	IPv4 []IPAddrSpec `json:"ipv4,omitempty"`
	IPv6 []IPAddrSpec `json:"ipv6,omitempty"`
}

func (*Addresses) DeepCopy

func (in *Addresses) DeepCopy() *Addresses

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

func (*Addresses) DeepCopyInto

func (in *Addresses) DeepCopyInto(out *Addresses)

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

type Aggregate

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

	Spec   AggregateSpec   `json:"spec,omitempty"`
	Status AggregateStatus `json:"status,omitempty"`
}

Aggregate is the Schema for the aggregates API.

func (*Aggregate) Compute

func (in *Aggregate) Compute(inventory *Inventory) (interface{}, error)

func (*Aggregate) DeepCopy

func (in *Aggregate) DeepCopy() *Aggregate

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

func (*Aggregate) DeepCopyInto

func (in *Aggregate) DeepCopyInto(out *Aggregate)

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

func (*Aggregate) DeepCopyObject

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

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

func (*Aggregate) SetupWebhookWithManager

func (in *Aggregate) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Aggregate) ValidateCreate

func (in *Aggregate) ValidateCreate() (admission.Warnings, error)

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

func (*Aggregate) ValidateDelete

func (in *Aggregate) ValidateDelete() (admission.Warnings, error)

func (*Aggregate) ValidateUpdate

func (in *Aggregate) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type AggregateItem

type AggregateItem struct {
	// SourcePath is a path in Inventory spec aggregate will be applied to
	// +kubebuilder:validation:Required
	SourcePath JSONPath `json:"sourcePath"`
	// TargetPath is a path in Inventory status `computed` field
	// +kubebuilder:validation:Required
	TargetPath JSONPath `json:"targetPath"`
	// Aggregate defines whether collection values should be aggregated
	// for constraint checks, in case if path defines selector for collection
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=avg;sum;min;max;count
	Aggregate AggregateType `json:"aggregate,omitempty"`
}

func (*AggregateItem) DeepCopy

func (in *AggregateItem) DeepCopy() *AggregateItem

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

func (*AggregateItem) DeepCopyInto

func (in *AggregateItem) DeepCopyInto(out *AggregateItem)

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

type AggregateList

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

AggregateList contains a list of Aggregate.

func (*AggregateList) DeepCopy

func (in *AggregateList) DeepCopy() *AggregateList

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

func (*AggregateList) DeepCopyInto

func (in *AggregateList) DeepCopyInto(out *AggregateList)

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

func (*AggregateList) DeepCopyObject

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

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

type AggregateSpec

type AggregateSpec struct {
	// Aggregates is a list of aggregates required to be computed
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	Aggregates []AggregateItem `json:"aggregates"`
}

AggregateSpec defines the desired state of Aggregate.

func (*AggregateSpec) DeepCopy

func (in *AggregateSpec) DeepCopy() *AggregateSpec

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

func (*AggregateSpec) DeepCopyInto

func (in *AggregateSpec) DeepCopyInto(out *AggregateSpec)

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

type AggregateStatus

type AggregateStatus struct{}

AggregateStatus defines the observed state of Aggregate.

func (*AggregateStatus) DeepCopy

func (in *AggregateStatus) DeepCopy() *AggregateStatus

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

func (*AggregateStatus) DeepCopyInto

func (in *AggregateStatus) DeepCopyInto(out *AggregateStatus)

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

type AggregateType

type AggregateType string
const (
	CAverageAggregateType AggregateType = "avg"
	CSumAggregateType     AggregateType = "sum"
	CMinAggregateType     AggregateType = "min"
	CMaxAggregateType     AggregateType = "max"
	CCountAggregateType   AggregateType = "count"
)

type AggregationResults

type AggregationResults struct {
	Object map[string]interface{} `json:"-"`
}

+kubebuilder:validation:Type=object

func (*AggregationResults) DeepCopy

func (in *AggregationResults) DeepCopy() *AggregationResults

func (*AggregationResults) DeepCopyInto

func (in *AggregationResults) DeepCopyInto(out *AggregationResults)

func (AggregationResults) MarshalJSON

func (in AggregationResults) MarshalJSON() ([]byte, error)

func (*AggregationResults) UnmarshalJSON

func (in *AggregationResults) UnmarshalJSON(b []byte) error

type Benchmark

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

	Spec   BenchmarkSpec   `json:"spec,omitempty"`
	Status BenchmarkStatus `json:"status,omitempty"`
}

Benchmark is the Schema for the machines API.

func (*Benchmark) DeepCopy

func (in *Benchmark) DeepCopy() *Benchmark

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

func (*Benchmark) DeepCopyInto

func (in *Benchmark) DeepCopyInto(out *Benchmark)

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

func (*Benchmark) DeepCopyObject

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

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

type BenchmarkDeviation

type BenchmarkDeviation struct {
	// Name is the specific benchmark name. e.g. `fio-1k`.
	Name string `json:"name"`
	// Value is the exact result of specific benchmark.
	Value string `json:"value,omitempty"`
}

BenchmarkDeviation is a deviation between old value and the new one.

func (*BenchmarkDeviation) DeepCopy

func (in *BenchmarkDeviation) DeepCopy() *BenchmarkDeviation

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

func (*BenchmarkDeviation) DeepCopyInto

func (in *BenchmarkDeviation) DeepCopyInto(out *BenchmarkDeviation)

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

type BenchmarkDeviations

type BenchmarkDeviations []BenchmarkDeviation

func (BenchmarkDeviations) DeepCopy

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

func (BenchmarkDeviations) DeepCopyInto

func (in BenchmarkDeviations) DeepCopyInto(out *BenchmarkDeviations)

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

type BenchmarkList

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

BenchmarkList contains a list of Benchmark.

func (*BenchmarkList) DeepCopy

func (in *BenchmarkList) DeepCopy() *BenchmarkList

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

func (*BenchmarkList) DeepCopyInto

func (in *BenchmarkList) DeepCopyInto(out *BenchmarkList)

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

func (*BenchmarkList) DeepCopyObject

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

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

type BenchmarkResult

type BenchmarkResult struct {
	// Name is the specific benchmark name. e.g. `fio-1k`.
	Name string `json:"name"`
	// Value is the exact result of specific benchmark.
	Value uint64 `json:"value,omitempty"`
}

func (*BenchmarkResult) DeepCopy

func (in *BenchmarkResult) DeepCopy() *BenchmarkResult

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

func (*BenchmarkResult) DeepCopyInto

func (in *BenchmarkResult) DeepCopyInto(out *BenchmarkResult)

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

type BenchmarkSpec

type BenchmarkSpec struct {
	// Benchmarks is the collection of benchmarks.
	Benchmarks map[string]Benchmarks `json:"benchmarks,omitempty"`
}

BenchmarkSpec contains machine benchmark results.

func (*BenchmarkSpec) DeepCopy

func (in *BenchmarkSpec) DeepCopy() *BenchmarkSpec

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

func (*BenchmarkSpec) DeepCopyInto

func (in *BenchmarkSpec) DeepCopyInto(out *BenchmarkSpec)

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

type BenchmarkStatus

type BenchmarkStatus struct {
	// BenchmarkDeviations shows the difference between last and current benchmark results.
	BenchmarkDeviations map[string]BenchmarkDeviations `json:"machine_deviation,omitempty"`
}

BenchmarkStatus contains machine benchmarks deviations.

func (*BenchmarkStatus) DeepCopy

func (in *BenchmarkStatus) DeepCopy() *BenchmarkStatus

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

func (*BenchmarkStatus) DeepCopyInto

func (in *BenchmarkStatus) DeepCopyInto(out *BenchmarkStatus)

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

type Benchmarks

type Benchmarks []BenchmarkResult

func (Benchmarks) DeepCopy

func (in Benchmarks) DeepCopy() Benchmarks

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

func (Benchmarks) DeepCopyInto

func (in Benchmarks) DeepCopyInto(out *Benchmarks)

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

type BlockSpec

type BlockSpec struct {
	// Name is a name of the device registered by Linux Kernel
	// +kubebuilder:validation:Required
	Name string `json:"name,omitempty"`
	// Type refers to data carrier form-factor
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=Floppy;CD-ROM;SCSI;IDE;NVMe;USB;MMC;VirtIO;Xen
	Type string `json:"type,omitempty"`
	// Rotational shows whether disk is solid state or not
	// +kubebuilder:validation:Required
	Rotational bool `json:"rotational"`
	// Bus is a type of hardware interface used to connect the disk to the system
	// +kubebuilder:validation:Optional
	Bus string `json:"system,omitempty"`
	// Model is a unique hardware part identifier
	// +kubebuilder:validation:Required
	Model string `json:"model,omitempty"`
	// Size is a disk space available in bytes
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Size uint64 `json:"size,omitempty"`
	// PartitionTable is a partition table currently written to the disk
	// +kubebuilder:validation:Optional
	PartitionTable *PartitionTableSpec `json:"partitionTable,omitempty"`
}

BlockSpec contains info about block device.

func (*BlockSpec) DeepCopy

func (in *BlockSpec) DeepCopy() *BlockSpec

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

func (*BlockSpec) DeepCopyInto

func (in *BlockSpec) DeepCopyInto(out *BlockSpec)

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

type CPUSpec

type CPUSpec struct {
	// PhysicalID is an ID of physical CPU
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=0
	PhysicalID uint64 `json:"physicalId,omitempty"`
	// LogicalIDs is a collection of logical CPU nums related to the physical CPU (required for NUMA)
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:MinItems=1
	LogicalIDs []uint64 `json:"logicalIds,omitempty"`
	// Cores is a number of physical cores
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Cores uint64 `json:"cores,omitempty"`
	// Siblings is a number of logical CPUs/threads
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Siblings uint64 `json:"siblings,omitempty"`
	// VendorID is a manufacturer identifire
	// +kubebuilder:validation:Required
	VendorID string `json:"vendorId,omitempty"`
	// Family refers to processor type
	// +kubebuilder:validation:Optional
	Family string `json:"family,omitempty"`
	// Model is a reference id of the model
	// +kubebuilder:validation:Required
	Model string `json:"model,omitempty"`
	// ModelName is a common name of the processor
	// +kubebuilder:validation:Required
	ModelName string `json:"modelName,omitempty"`
	// Stepping is an iteration of the architecture
	// +kubebuilder:validation:Optional
	Stepping string `json:"stepping,omitempty"`
	// Microcode is a firmware reference
	// +kubebuilder:validation:Optional
	Microcode string `json:"microcode,omitempty"`
	// MHz is a logical core frequency
	// +kubebuilder:validation:Optional
	MHz resource.Quantity `json:"mhz,omitempty"`
	// CacheSize is an L2 cache size
	// +kubebuilder:validation:Optional
	CacheSize string `json:"cacheSize,omitempty"`
	// FPU defines if CPU has a Floating Point Unit
	// +kubebuilder:validation:Optional
	FPU bool `json:"fpu"`
	// FPUException
	// +kubebuilder:validation:Optional
	FPUException bool `json:"fpuException"`
	// CPUIDLevel
	// +kubebuilder:validation:Optional
	CPUIDLevel uint64 `json:"cpuIdLevel,omitempty"`
	// WP tells if WP bit is present
	// +kubebuilder:validation:Optional
	WP bool `json:"wp"`
	// Flags defines a list of low-level computing capabilities
	// +kubebuilder:validation:Optional
	Flags []string `json:"flags,omitempty"`
	// VMXFlags defines a list of virtualization capabilities
	// +kubebuilder:validation:Optional
	VMXFlags []string `json:"vmxFlags,omitempty"`
	// Bugs contains a list of known hardware bugs
	// +kubebuilder:validation:Optional
	Bugs []string `json:"bugs,omitempty"`
	// BogoMIPS is a synthetic performance metric
	// +kubebuilder:validation:Required
	BogoMIPS resource.Quantity `json:"bogoMips,omitempty"`
	// CLFlushSize size for cache line flushing feature
	// +kubebuilder:validation:Optional
	CLFlushSize uint64 `json:"clFlushSize,omitempty"`
	// CacheAlignment is a cache size
	// +kubebuilder:validation:Optional
	CacheAlignment uint64 `json:"cacheAlignment,omitempty"`
	// AddressSizes is an info about address transition system
	// +kubebuilder:validation:Optional
	AddressSizes string `json:"addressSizes,omitempty"`
	// PowerManagement
	// +kubebuilder:validation:Optional
	PowerManagement string `json:"powerManagement,omitempty"`
}

CPUSpec contains info about CPUs on hsot machine.

func (*CPUSpec) DeepCopy

func (in *CPUSpec) DeepCopy() *CPUSpec

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

func (*CPUSpec) DeepCopyInto

func (in *CPUSpec) DeepCopyInto(out *CPUSpec)

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

type ConditionSpec

type ConditionSpec struct {
	// Name reflects the name of the condition
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=Initialized;InterfacesOK;ConfigRefOK;PortParametersOK;NeighborsOK;LayerAndRoleOK;LoopbacksOK;AsnOK;SubnetsOK;IPAddressesOK
	Name *string `json:"name,omitempty"`
	// State reflects the state of the condition
	// +kubebuilder:validation:Optional
	State *bool `json:"state,omitempty"`
	// LastUpdateTimestamp reflects the last timestamp when condition was updated
	// +kubebuilder:validation:Optional
	LastUpdateTimestamp *string `json:"lastUpdateTimestamp"`
	// LastTransitionTimestamp reflects the last timestamp when condition changed state from one to another
	// +kubebuilder:validation:Optional
	LastTransitionTimestamp *string `json:"lastTransitionTimestamp"`
	// Reason reflects the reason of condition state
	// +kubebuilder:validation:Optional
	Reason *string `json:"reason,omitempty"`
	// Message reflects the verbose message about the reason
	// +kubebuilder:validation:Optional
	Message *string `json:"message,omitempty"`
}

ConditionSpec contains current condition of port parameters.

func NewCondition

func NewCondition(name string) *ConditionSpec

func (*ConditionSpec) DeepCopy

func (in *ConditionSpec) DeepCopy() *ConditionSpec

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

func (*ConditionSpec) DeepCopyInto

func (in *ConditionSpec) DeepCopyInto(out *ConditionSpec)

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

func (*ConditionSpec) FlushMessage

func (in *ConditionSpec) FlushMessage() *ConditionSpec

FlushMessage sets nil value of condition.message field.

func (*ConditionSpec) FlushReason

func (in *ConditionSpec) FlushReason() *ConditionSpec

FlushReason sets nil value of condition.reason field.

func (*ConditionSpec) GetLastTransitionTimestamp

func (in *ConditionSpec) GetLastTransitionTimestamp() string

GetLastTransitionTimestamp returns value of ConditionSpec.LastTransitionTimestamp if it is not nil, otherwise empty string.

func (*ConditionSpec) GetLastUpdateTimestamp

func (in *ConditionSpec) GetLastUpdateTimestamp() string

GetLastUpdateTimestamp returns value of ConditionSpec.LastUpdateTimestamp if it is not nil, otherwise empty string.

func (*ConditionSpec) GetMessage

func (in *ConditionSpec) GetMessage() string

GetMessage returns value of ConditionSpec.Message if it is not nil, otherwise empty string.

func (*ConditionSpec) GetName

func (in *ConditionSpec) GetName() string

GetName returns value of ConditionSpec.Name if it is not nil, otherwise empty string.

func (*ConditionSpec) GetReason

func (in *ConditionSpec) GetReason() string

GetReason returns value of ConditionSpec.Reason if it is not nil, otherwise empty string.

func (*ConditionSpec) GetState

func (in *ConditionSpec) GetState() bool

GetState returns value of ConditionSpec.State if it is not nil, otherwise false.

func (*ConditionSpec) SetLastTransitionTimestamp

func (in *ConditionSpec) SetLastTransitionTimestamp(value string) *ConditionSpec

SetLastTransitionTimestamp sets passed argument as a value of condition.lastTransitionTimestamp field.

func (*ConditionSpec) SetLastUpdateTimestamp

func (in *ConditionSpec) SetLastUpdateTimestamp(value string) *ConditionSpec

SetLastUpdateTimestamp sets passed argument as a value of condition.lastUpdateTimestamp field.

func (*ConditionSpec) SetMessage

func (in *ConditionSpec) SetMessage(value string) *ConditionSpec

SetMessage sets passed argument as a value of condition.message field.

func (*ConditionSpec) SetReason

func (in *ConditionSpec) SetReason(value string) *ConditionSpec

SetReason sets passed argument as a value of condition.reason field.

func (*ConditionSpec) SetState

func (in *ConditionSpec) SetState(value bool) *ConditionSpec

SetState sets passed argument as a value of condition.state field.

type ConnectionsMap

type ConnectionsMap map[uint8]*NetworkSwitchList

func (ConnectionsMap) DeepCopy

func (in ConnectionsMap) DeepCopy() ConnectionsMap

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

func (ConnectionsMap) DeepCopyInto

func (in ConnectionsMap) DeepCopyInto(out *ConnectionsMap)

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

type ConstraintSpec

type ConstraintSpec struct {
	// Path is a path to the struct field constraint will be applied to
	// +kubebuilder:validation:Optional
	Path JSONPath `json:"path,omitempty"`
	// Aggregate defines whether collection values should be aggregated
	// for constraint checks, in case if path defines selector for collection
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=avg;sum;min;max;count
	Aggregate AggregateType `json:"agg,omitempty"`
	// Equal contains an exact expected value
	// +kubebuilder:validation:Optional
	Equal *ConstraintValSpec `json:"eq,omitempty"`
	// NotEqual contains an exact not expected value
	// +kubebuilder:validation:Optional
	NotEqual *ConstraintValSpec `json:"neq,omitempty"`
	// LessThan contains an highest expected value, exclusive
	// +kubebuilder:validation:Optional
	LessThan *resource.Quantity `json:"lt,omitempty"`
	// LessThan contains an highest expected value, inclusive
	// +kubebuilder:validation:Optional
	LessThanOrEqual *resource.Quantity `json:"lte,omitempty"`
	// LessThan contains an lowest expected value, exclusive
	// +kubebuilder:validation:Optional
	GreaterThan *resource.Quantity `json:"gt,omitempty"`
	// GreaterThanOrEqual contains an lowest expected value, inclusive
	// +kubebuilder:validation:Optional
	GreaterThanOrEqual *resource.Quantity `json:"gte,omitempty"`
}

ConstraintSpec contains conditions of contraint that should be applied on resource.

func (*ConstraintSpec) DeepCopy

func (in *ConstraintSpec) DeepCopy() *ConstraintSpec

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

func (*ConstraintSpec) DeepCopyInto

func (in *ConstraintSpec) DeepCopyInto(out *ConstraintSpec)

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

func (*ConstraintSpec) MatchMultipleValues

func (in *ConstraintSpec) MatchMultipleValues(aggregateType AggregateType, values []reflect.Value) (bool, error)

func (*ConstraintSpec) MatchSingleValue

func (in *ConstraintSpec) MatchSingleValue(value *reflect.Value) (bool, error)

type ConstraintValSpec

type ConstraintValSpec struct {
	Literal *string            `json:"-"`
	Numeric *resource.Quantity `json:"-"`
}

ConstraintValSpec is a wrapper around value for constraint. Since it is not possilble to set oneOf/anyOf through kubebuilder markers, type is set to number here, and patched with kustomize See https://github.com/kubernetes-sigs/kubebuilder/issues/301 +kubebuilder:validation:Type=number

func (*ConstraintValSpec) Compare

func (in *ConstraintValSpec) Compare(value *reflect.Value) (int, error)

func (*ConstraintValSpec) DeepCopy

func (in *ConstraintValSpec) DeepCopy() *ConstraintValSpec

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

func (*ConstraintValSpec) DeepCopyInto

func (in *ConstraintValSpec) DeepCopyInto(out *ConstraintValSpec)

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

func (*ConstraintValSpec) MarshalJSON

func (in *ConstraintValSpec) MarshalJSON() ([]byte, error)

func (*ConstraintValSpec) UnmarshalJSON

func (in *ConstraintValSpec) UnmarshalJSON(data []byte) error

type DistroSpec

type DistroSpec struct {
	// +kubebuilder:validation:Optional
	BuildVersion string `json:"buildVersion,omitempty"`
	// +kubebuilder:validation:Optional
	DebianVersion string `json:"debianVersion,omitempty"`
	// +kubebuilder:validation:Optional
	KernelVersion string `json:"kernelVersion,omitempty"`
	// +kubebuilder:validation:Optional
	AsicType string `json:"asicType,omitempty"`
	// +kubebuilder:validation:Optional
	CommitID string `json:"commitID,omitempty"`
	// +kubebuilder:validation:Optional
	BuildDate string `json:"buildDate,omitempty"`
	// +kubebuilder:validation:Optional
	BuildNumber uint32 `json:"buildNumber,omitempty"`
	// +kubebuilder:validation:Optional
	BuildBy string `json:"buildBy,omitempty"`
}

DistroSpec contains info about distro.

func (*DistroSpec) DeepCopy

func (in *DistroSpec) DeepCopy() *DistroSpec

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

func (*DistroSpec) DeepCopyInto

func (in *DistroSpec) DeepCopyInto(out *DistroSpec)

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

type FieldSelectorSpec

type FieldSelectorSpec struct {
	// LabelKey contains label key
	// +kubebuilder:validation:Optional
	LabelKey *string `json:"labelKey"`
	// FieldRef contains reference to the field of resource where to get label's value
	// +kubebuilder:validation:Optional
	FieldRef *v1.ObjectFieldSelector `json:"fieldRef"`
}

FieldSelectorSpec contains label key and field path where to get label value for search.

func (*FieldSelectorSpec) DeepCopy

func (in *FieldSelectorSpec) DeepCopy() *FieldSelectorSpec

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

func (*FieldSelectorSpec) DeepCopyInto

func (in *FieldSelectorSpec) DeepCopyInto(out *FieldSelectorSpec)

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

func (*FieldSelectorSpec) GetLabelKey

func (in *FieldSelectorSpec) GetLabelKey() string

GetLabelKey returns value of labelKey field of given FieldSelectorSpec object if it is not nil, otherwise empty string.

type GeneralIPAMSpec

type GeneralIPAMSpec struct {
	// AddressFamily contains flags to define which address families are used for switch subnets
	// +kubebuilder:validation:Required
	AddressFamily *AddressFamiliesMap `json:"addressFamily"`
	// CarrierSubnets contains label selector for Subnet object where switch's south subnet
	// should be reserved
	// +kubebuilder:validation:Required
	CarrierSubnets *IPAMSelectionSpec `json:"carrierSubnets"`
	// LoopbackSubnets contains label selector for Subnet object where switch's loopback
	// IP addresses should be reserved
	// +kubebuilder:validation:Required
	LoopbackSubnets *IPAMSelectionSpec `json:"loopbackSubnets"`
	// SouthSubnets defines selector for subnets object which will be assigned to switch
	// +kubebuilder:validation:Optional
	SouthSubnets *IPAMSelectionSpec `json:"southSubnets,omitempty"`
	// LoopbackAddresses defines selector for IP objects which should be referenced as switch's loopback addresses
	// +kubebuilder:validation:Optional
	LoopbackAddresses *IPAMSelectionSpec `json:"loopbackAddresses,omitempty"`
}

GeneralIPAMSpec contains definition of selectors, used to filter required IPAM objects.

func (*GeneralIPAMSpec) DeepCopy

func (in *GeneralIPAMSpec) DeepCopy() *GeneralIPAMSpec

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

func (*GeneralIPAMSpec) DeepCopyInto

func (in *GeneralIPAMSpec) DeepCopyInto(out *GeneralIPAMSpec)

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

type HostSpec

type HostSpec struct {
	// Hostname contains hostname
	// +kubebuilder:validation:Required
	Name string `json:"name"`
}

HostSpec contains type of inventorying object and in case it is a switch - SONiC version.

func (*HostSpec) DeepCopy

func (in *HostSpec) DeepCopy() *HostSpec

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

func (*HostSpec) DeepCopyInto

func (in *HostSpec) DeepCopyInto(out *HostSpec)

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

type IPAMSelectionSpec

type IPAMSelectionSpec struct {
	// LabelSelector contains label selector to pick up IPAM objects
	// +kubebuilder:validation:Optional
	LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
	// FieldSelector contains label key and field path where to get label value for search.
	// If FieldSelector is used as part of IPAM configuration in SwitchConfig object it will
	// reference to the field path in related NetworkSwitch object. If FieldSelector is used as part of IPAM
	// configuration in NetworkSwitch object, it will reference to the field path in the same object
	// +kubebuilder:validation:Optional
	FieldSelector *FieldSelectorSpec `json:"fieldSelector,omitempty"`
}

IPAMSelectionSpec contains label selector and address family.

func (*IPAMSelectionSpec) DeepCopy

func (in *IPAMSelectionSpec) DeepCopy() *IPAMSelectionSpec

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

func (*IPAMSelectionSpec) DeepCopyInto

func (in *IPAMSelectionSpec) DeepCopyInto(out *IPAMSelectionSpec)

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

type IPAMSpec

type IPAMSpec struct {
	// SouthSubnets defines selector for subnet object which will be assigned to switch
	// +kubebuilder:validation:Optional
	SouthSubnets *IPAMSelectionSpec `json:"southSubnets,omitempty"`
	// LoopbackAddresses defines selector for IP object which will be assigned to switch's loopback interface
	// +kubebuilder:validation:Optional
	LoopbackAddresses *IPAMSelectionSpec `json:"loopbackAddresses,omitempty"`
}

IPAMSpec contains selectors for subnets and loopback IPs and definition of address families which should be claimed.

func (*IPAMSpec) DeepCopy

func (in *IPAMSpec) DeepCopy() *IPAMSpec

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

func (*IPAMSpec) DeepCopyInto

func (in *IPAMSpec) DeepCopyInto(out *IPAMSpec)

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

func (*IPAMSpec) GetLoopbacksSelection

func (in *IPAMSpec) GetLoopbacksSelection() *IPAMSelectionSpec

GetLoopbacksSelection helps to get the loopback addresses selection spec in safely manner with handling the case when whole IPAMSpec spec equals to nil.

func (*IPAMSpec) GetSubnetsSelection

func (in *IPAMSpec) GetSubnetsSelection() *IPAMSelectionSpec

GetSubnetsSelection helps to get the south subnets selection spec in safely manner with handling the case when whole IPAMSpec spec equals to nil.

type IPAddrSpec

type IPAddrSpec struct {
	// Address refers to the ip address value
	netip.Prefix `json:"-"`
}

IPAddrSpec defines interface's ip address info. +kubebuilder:validation:Type=string

func (*IPAddrSpec) DeepCopy

func (in *IPAddrSpec) DeepCopy() *IPAddrSpec

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

func (*IPAddrSpec) DeepCopyInto

func (in *IPAddrSpec) DeepCopyInto(out *IPAddrSpec)

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

type IPAddressSpec

type IPAddressSpec struct {
	// Contains information to locate the referenced object
	// +kubebuilder:validation:Optional
	*ObjectReference `json:",inline"`
	// Address refers to the ip address value
	// +kubebuilder:validation:Optional
	Address *string `json:"address,omitempty"`
	// ExtraAddress is a flag defining whether address was added as additional by user
	// +kubebuilder:validation:Optional
	// +kubebuilder:default=false
	ExtraAddress *bool `json:"extraAddress,omitempty"`
	// AddressFamily refers to the AF of IP address
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=IPv4;IPv6
	AddressFamily *string `json:"addressFamily,omitempty"`
}

IPAddressSpec defines interface's ip address info.

func (*IPAddressSpec) DeepCopy

func (in *IPAddressSpec) DeepCopy() *IPAddressSpec

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

func (*IPAddressSpec) DeepCopyInto

func (in *IPAddressSpec) DeepCopyInto(out *IPAddressSpec)

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

func (*IPAddressSpec) GetAddress

func (in *IPAddressSpec) GetAddress() string

GetAddress returns value of address field of given IPAddressSpec object if it is not nil, otherwise empty string.

func (*IPAddressSpec) GetAddressFamily

func (in *IPAddressSpec) GetAddressFamily() string

GetAddressFamily returns value of addressFamily field of given IPAddressSpec object if it is not nil, otherwise empty string.

func (*IPAddressSpec) GetExtraAddress

func (in *IPAddressSpec) GetExtraAddress() bool

GetExtraAddress returns value of extraAddress field of given IPAddressSpec object if it is not nil, otherwise false.

func (*IPAddressSpec) GetObjectReferenceName

func (in *IPAddressSpec) GetObjectReferenceName() string

GetObjectReferenceName returns value of objectReference.name field of given IPAddressSpec object if objectReference is not nil, otherwise empty string.

func (*IPAddressSpec) GetObjectReferenceNamespace

func (in *IPAddressSpec) GetObjectReferenceNamespace() string

GetObjectReferenceNamespace returns value of objectReference.namespace field of given IPAddressSpec object if objectReference is not nil, otherwise empty string.

func (*IPAddressSpec) SetAddress

func (in *IPAddressSpec) SetAddress(value string)

SetAddress sets passed argument as value of address field for given IPAddressSpec object.

func (*IPAddressSpec) SetAddressFamily

func (in *IPAddressSpec) SetAddressFamily(value string)

SetAddressFamily sets passed argument as value of addressFamily field for given IPAddressSpec object. Possible values:

  • IPv4
  • IPv6

func (*IPAddressSpec) SetExtraAddress

func (in *IPAddressSpec) SetExtraAddress(value bool)

SetExtraAddress sets passed argument as value of extraAddress field for given IPAddressSpec object.

func (*IPAddressSpec) SetObjectReference

func (in *IPAddressSpec) SetObjectReference(name, namespace string)

SetObjectReference updates value of objectReference field of given IPAddressSpec object with new ObjectReference object where Name and Namespace fields are assigned with passed arguments.

type IPMISpec

type IPMISpec struct {
	// IPAddress is an IP address assigned to IPMI network interface
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$`
	IPAddress string `json:"ipAddress,omitempty"`
	// MACAddress is a MAC address of IPMI's network interface
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$`
	MACAddress string `json:"macAddress,omitempty"`
}

IPMISpec contains info about IPMI module.

func (*IPMISpec) DeepCopy

func (in *IPMISpec) DeepCopy() *IPMISpec

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

func (*IPMISpec) DeepCopyInto

func (in *IPMISpec) DeepCopyInto(out *IPMISpec)

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

type Identity

type Identity struct {
	// SKU - stock keeping unit. The label allows vendors automatically track the movement of inventory
	// +optional
	SKU string `json:"sku,omitempty"`
	// SerialNumber - unique machine number
	// +optional
	SerialNumber string `json:"serial_number,omitempty"`
	// +optional
	Asset string `json:"asset,omitempty"`
	// Deprecated
	Internal []Internal `json:"internal,omitempty"`
}

Identity - defines hardware information about machine.

func (*Identity) DeepCopy

func (in *Identity) DeepCopy() *Identity

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

func (*Identity) DeepCopyInto

func (in *Identity) DeepCopyInto(out *Identity)

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

type Interface

type Interface struct {
	// Name - machine interface name
	// +optional
	Name string `json:"name,omitempty"`
	// SwitchReference - defines unique switch identification
	// +optional
	SwitchReference *ResourceReference `json:"switch_reference,omitempty"`
	// IPv4 - defines machine IPv4 address
	// +optional
	Addresses Addresses `json:"addresses,omitempty"`
	// Peer - defines lldp peer info.
	// +optional
	Peer Peer `json:"peer,omitempty"`
	// Lane - defines number of lines per interface
	// +optional
	Lanes uint32 `json:"lanes,omitempty"`
	// Moved  - defines if interface was reconnected to another switch or not
	// +optional
	Moved bool `json:"moved,omitempty"`
	// Unknown - defines information availability about interface
	// +optional
	Unknown bool `json:"unknown,omitempty"`
}

Interface - defines information about machine interfaces.

func (*Interface) DeepCopy

func (in *Interface) DeepCopy() *Interface

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

func (*Interface) DeepCopyInto

func (in *Interface) DeepCopyInto(out *Interface)

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

type InterfaceOverridesSpec

type InterfaceOverridesSpec struct {
	// Contains port parameters overrides
	// +kubebuilder:validation:Required
	*PortParametersSpec `json:",inline"`
	// Name refers to switch port name
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`
	// IP contains a list of additional IP addresses for interface
	// +kubebuilder:validation:Optional
	IP []*AdditionalIPSpec `json:"ip,omitempty"`
}

InterfaceOverridesSpec contains overridden parameters for certain switch port.

func (*InterfaceOverridesSpec) DeepCopy

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

func (*InterfaceOverridesSpec) DeepCopyInto

func (in *InterfaceOverridesSpec) DeepCopyInto(out *InterfaceOverridesSpec)

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

func (*InterfaceOverridesSpec) GetName

func (in *InterfaceOverridesSpec) GetName() string

GetName returns value of name field of given InterfaceOverridesSpec object if it is not nil, otherwise empty string.

func (*InterfaceOverridesSpec) SetName

func (in *InterfaceOverridesSpec) SetName(value string)

SetName sets passed argument as value of name field of given InterfaceOverridesSpec object.

type InterfaceSpec

type InterfaceSpec struct {
	// Contains port parameters
	// +kubebuilder:validation:Required
	*PortParametersSpec `json:",inline"`
	// MACAddress refers to the interface's hardware address
	// +kubebuilder:validation:Required
	// validation pattern
	MACAddress *string `json:"macAddress"`
	// Speed refers to interface's speed
	// +kubebuilder:validation:Required
	Speed *uint32 `json:"speed"`
	// IP contains a list of IP addresses that are assigned to interface
	// +kubebuilder:validation:Optional
	IP []*IPAddressSpec `json:"ip,omitempty"`
	// Direction refers to the interface's connection 'direction'
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=north;south
	Direction *string `json:"direction"`
	// Peer refers to the info about device connected to current switch port
	// +kubebuilder:validation:Optional
	Peer *PeerSpec `json:"peer,omitempty"`
}

InterfaceSpec defines the state of switch's interface.

func (*InterfaceSpec) DeepCopy

func (in *InterfaceSpec) DeepCopy() *InterfaceSpec

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

func (*InterfaceSpec) DeepCopyInto

func (in *InterfaceSpec) DeepCopyInto(out *InterfaceSpec)

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

func (*InterfaceSpec) GetDirection

func (in *InterfaceSpec) GetDirection() string

GetDirection returns value of direction field of given InterfaceSpec object if it is not nil, otherwise empty string.

func (*InterfaceSpec) GetMACAddress

func (in *InterfaceSpec) GetMACAddress() string

GetMACAddress returns value of macAddress field of given InterfaceSpec object if it is not nil, otherwise empty string.

func (*InterfaceSpec) GetSpeed

func (in *InterfaceSpec) GetSpeed() uint32

GetSpeed returns value of speed field of given InterfaceSpec object if it is not nil, otherwise 0.

func (*InterfaceSpec) SetDirection

func (in *InterfaceSpec) SetDirection(value string)

SetDirection sets passed argument as a value of direction field for given InterfaceSpec object. Possible values:

  • north
  • south

func (*InterfaceSpec) SetIPEmpty

func (in *InterfaceSpec) SetIPEmpty()

SetIPEmpty empties the list of assigned IP addresses for given InterfaceSpec object.

func (*InterfaceSpec) SetMACAddress

func (in *InterfaceSpec) SetMACAddress(value string)

SetMACAddress sets passed argument as a value of macAddress field for given InterfaceSpec object.

func (*InterfaceSpec) SetPortParametersEmpty

func (in *InterfaceSpec) SetPortParametersEmpty()

SetPortParametersEmpty resets portParameters field for given InterfaceSpec object by assigning the empty PortParametersSpec struct as a value of this field.

func (*InterfaceSpec) SetSpeed

func (in *InterfaceSpec) SetSpeed(value uint32)

SetSpeed sets passed argument as a value of speed field for given InterfaceSpec object.

type InterfacesSpec

type InterfacesSpec struct {
	// Defaults contains switch port parameters which will be applied to all ports of the switches
	// +kubebuilder:validation:Optional
	Defaults *PortParametersSpec `json:"defaults,omitempty"`
	// Overrides contains set of parameters which should be overridden for listed switch ports
	// +kubebuilder:validation:Optional
	Overrides []*InterfaceOverridesSpec `json:"overrides,omitempty"`
}

InterfacesSpec contains definitions for general switch ports' configuration.

func (*InterfacesSpec) DeepCopy

func (in *InterfacesSpec) DeepCopy() *InterfacesSpec

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

func (*InterfacesSpec) DeepCopyInto

func (in *InterfacesSpec) DeepCopyInto(out *InterfacesSpec)

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

type Internal

type Internal struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

func (*Internal) DeepCopy

func (in *Internal) DeepCopy() *Internal

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

func (*Internal) DeepCopyInto

func (in *Internal) DeepCopyInto(out *Internal)

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

type Inventory

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

	Spec   InventorySpec   `json:"spec,omitempty"`
	Status InventoryStatus `json:"status,omitempty"`
}

Inventory is the Schema for the inventories API.

func (*Inventory) DeepCopy

func (in *Inventory) DeepCopy() *Inventory

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

func (*Inventory) DeepCopyInto

func (in *Inventory) DeepCopyInto(out *Inventory)

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

func (*Inventory) DeepCopyObject

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

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

type InventoryList

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

InventoryList contains a list of Inventory.

func (*InventoryList) DeepCopy

func (in *InventoryList) DeepCopy() *InventoryList

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

func (*InventoryList) DeepCopyInto

func (in *InventoryList) DeepCopyInto(out *InventoryList)

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

func (*InventoryList) DeepCopyObject

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

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

type InventorySpec

type InventorySpec struct {
	// System contains DMI system information
	// +kubebuilder:validation:Required
	System *SystemSpec `json:"system,omitempty"`
	// IPMIs contains info about IPMI interfaces on the host
	// +kubebuilder:validation:Optional
	IPMIs []IPMISpec `json:"ipmis,omitempty"`
	// Blocks contains info about block devices on the host
	// +kubebuilder:validation:Required
	Blocks []BlockSpec `json:"blocks,omitempty"`
	// Memory contains info block devices on the host
	// +kubebuilder:validation:Required
	Memory *MemorySpec `json:"memory,omitempty"`
	// CPUs contains info about cpus, cores and threads
	// +kubebuilder:validation:Required
	CPUs []CPUSpec `json:"cpus,omitempty"`
	// NUMA contains info about cpu/memory topology
	// +kubebuilder:validation:Optional
	NUMA []NumaSpec `json:"numa,omitempty"`
	// PCIDevices contains info about devices accessible through
	// +kubebuilder:validation:Optional
	PCIDevices []PCIDeviceSpec `json:"pciDevices,omitempty"`
	// NICs contains info about network interfaces and network discovery
	// +kubebuilder:validation:Required
	NICs []NICSpec `json:"nics,omitempty"`
	// Virt is a virtualization detected on host
	// +kubebuilder:validation:Optional
	Virt *VirtSpec `json:"virt,omitempty"`
	// Host contains info about inventorying object
	// +kubebuilder:validation:Required
	Host *HostSpec `json:"host"`
	// Distro contains info about OS distro
	// +kubebuilder:validation:Optional
	Distro *DistroSpec `json:"distro,omitempty"`
}

InventorySpec contains result of inventorization process on the host.

func (*InventorySpec) DeepCopy

func (in *InventorySpec) DeepCopy() *InventorySpec

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

func (*InventorySpec) DeepCopyInto

func (in *InventorySpec) DeepCopyInto(out *InventorySpec)

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

type InventoryStatus

type InventoryStatus struct {
	// +kubebuilder:pruning:PreserveUnknownFields
	Computed          AggregationResults `json:"computed"`
	InventoryStatuses InventoryStatuses  `json:"inventoryStatuses,omitempty"`
}

InventoryStatus defines the observed state of Inventory.

func (*InventoryStatus) DeepCopy

func (in *InventoryStatus) DeepCopy() *InventoryStatus

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

func (*InventoryStatus) DeepCopyInto

func (in *InventoryStatus) DeepCopyInto(out *InventoryStatus)

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

type InventoryStatuses

type InventoryStatuses struct {
	Ready         bool `json:"ready"`
	RequestsCount int  `json:"requestsCount,omitempty"`
}

func (*InventoryStatuses) DeepCopy

func (in *InventoryStatuses) DeepCopy() *InventoryStatuses

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

func (*InventoryStatuses) DeepCopyInto

func (in *InventoryStatuses) DeepCopyInto(out *InventoryStatuses)

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

type JSONPath

type JSONPath struct {
	Path string `json:"-"`
}

+kubebuilder:validation:Type=string

func JSONPathFromString

func JSONPathFromString(s string) *JSONPath

func (*JSONPath) DeepCopy

func (in *JSONPath) DeepCopy() *JSONPath

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

func (*JSONPath) DeepCopyInto

func (in *JSONPath) DeepCopyInto(out *JSONPath)

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

func (JSONPath) MarshalJSON

func (in JSONPath) MarshalJSON() ([]byte, error)

func (*JSONPath) String

func (in *JSONPath) String() string

func (*JSONPath) ToK8sJSONPath

func (in *JSONPath) ToK8sJSONPath() (*jsonpath.JSONPath, error)

func (*JSONPath) Tokenize

func (in *JSONPath) Tokenize() []string

func (*JSONPath) UnmarshalJSON

func (in *JSONPath) UnmarshalJSON(b []byte) error

nolint:forcetypeassert

type LLDPCapabilities

type LLDPCapabilities string

LLDPCapabilities +kubebuilder:validation:Enum=Other;Repeater;Bridge;WLAN Access Point;Router;Telephone;DOCSIS cable device;Station;Customer VLAN;Service VLAN;Two-port MAC Relay (TPMR)

type LLDPSpec

type LLDPSpec struct {
	// ChassisID is a neighbour box identifier
	// +kubebuilder:validation:Required
	ChassisID string `json:"chassisId,omitempty"`
	// SystemName is given name to the neighbour box
	// +kubebuilder:validation:Optional
	SystemName string `json:"systemName,omitempty"`
	// SystemDescription is a short description of the neighbour box
	// +kubebuilder:validation:Optional
	SystemDescription string `json:"systemDescription,omitempty"`
	// PortID is a hardware identifier of the link port
	// +kubebuilder:validation:Required
	PortID string `json:"portId,omitempty"`
	// PortDescription is a short description of the link port
	// +kubebuilder:validation:Optional
	PortDescription string `json:"portDescription,omitempty"`
	// Capabilities is a list of LLDP capabilities advertised by neighbor
	// +kubebuilder:validation:Optional
	Capabilities []LLDPCapabilities `json:"capabilities,omitempty"`
}

LLDPSpec is an entry received by network interface by Link Layer Discovery Protocol.

func (*LLDPSpec) DeepCopy

func (in *LLDPSpec) DeepCopy() *LLDPSpec

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

func (*LLDPSpec) DeepCopyInto

func (in *LLDPSpec) DeepCopyInto(out *LLDPSpec)

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

type LoopbackAddresses

type LoopbackAddresses struct {
	IPv4 IPAddrSpec `json:"ipv4,omitempty"`
	IPv6 IPAddrSpec `json:"ipv6,omitempty"`
}

func (*LoopbackAddresses) DeepCopy

func (in *LoopbackAddresses) DeepCopy() *LoopbackAddresses

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

func (*LoopbackAddresses) DeepCopyInto

func (in *LoopbackAddresses) DeepCopyInto(out *LoopbackAddresses)

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

type Machine

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

	Spec   MachineSpec   `json:"spec,omitempty"`
	Status MachineStatus `json:"status,omitempty"`
}

Machine - is the data structure for a Machine resource. It contains an aggregated information from Inventory and OOB resources.

func (*Machine) DeepCopy

func (in *Machine) DeepCopy() *Machine

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

func (*Machine) DeepCopyInto

func (in *Machine) DeepCopyInto(out *Machine)

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

func (*Machine) DeepCopyObject

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

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

type MachineList

type MachineList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Machine `json:"items"`
}

MachineList - contains a list of Machine.

func (*MachineList) DeepCopy

func (in *MachineList) DeepCopy() *MachineList

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

func (*MachineList) DeepCopyInto

func (in *MachineList) DeepCopyInto(out *MachineList)

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

func (*MachineList) DeepCopyObject

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

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

type MachineSpec

type MachineSpec struct {
	// Hostname - defines machine domain name
	// +optional
	Hostname string `json:"hostname,omitempty"`
	// Description - summary info about machine
	// +optional
	Description string `json:"description,omitempty"`
	// Identity - defines machine hardware info
	// +optional
	Identity Identity `json:"identity,omitempty"`
	// InventoryRequested - defines if inventory requested or not
	InventoryRequested bool `json:"inventory_requested,omitempty"`
}

MachineSpec - defines the desired spec of Machine.

func (*MachineSpec) DeepCopy

func (in *MachineSpec) DeepCopy() *MachineSpec

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

func (*MachineSpec) DeepCopyInto

func (in *MachineSpec) DeepCopyInto(out *MachineSpec)

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

type MachineState

type MachineState string
const (
	// MachineStateHealthy - When State is `Healthy` Machine` is allowed to be booked.
	MachineStateHealthy MachineState = "Healthy"
	// MachineStateUnhealthy - When State is `Unhealthy“ Machine isn't allowed to be booked.
	MachineStateUnhealthy MachineState = "Unhealthy"
)

type MachineStatus

type MachineStatus struct {
	// Reboot - defines machine reboot status
	// +optional
	Reboot string `json:"reboot,omitempty"`
	// Health - defines machine condition.
	// "healthy" if both OOB and Inventory are presented and "unhealthy" if one of them isn't
	// +optional
	Health MachineState `json:"health,omitempty"`
	// Network - defines machine network status
	// +optional
	Network Network `json:"network,omitempty"`
	// Reservation - defines machine reservation state and reference object.
	// +optional
	Reservation Reservation `json:"reservation,omitempty"`
	// Orphaned - defines machine condition whether OOB or Inventory is missing or not
	// +optional
	Orphaned bool `json:"orphaned,omitempty"`
}

MachineStatus - defines machine aggregated info.

func (*MachineStatus) DeepCopy

func (in *MachineStatus) DeepCopy() *MachineStatus

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

func (*MachineStatus) DeepCopyInto

func (in *MachineStatus) DeepCopyInto(out *MachineStatus)

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

type MemorySpec

type MemorySpec struct {
	// Total is a total amount of RAM on host
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Total uint64 `json:"total,omitempty"`
}

MemorySpec contains info about RAM on host.

func (*MemorySpec) DeepCopy

func (in *MemorySpec) DeepCopy() *MemorySpec

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

func (*MemorySpec) DeepCopyInto

func (in *MemorySpec) DeepCopyInto(out *MemorySpec)

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

type NDPSpec

type NDPSpec struct {
	// IPAddress is an IPv6 address of a neighbour
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$`
	IPAddress string `json:"ipAddress,omitempty"`
	// MACAddress is an MAC address of a neighbour
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^([0-9A-Fa-f]{2}[:.-]){5}([0-9A-Fa-f]{2})$`
	MACAddress string `json:"macAddress,omitempty"`
	// State is a state of discovery
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=None;Incomplete;Reachable;Stale;Delay;Probe;Failed;No ARP;Permanent
	State string `json:"state,omitempty"`
}

NDPSpec is an entry received by IPv6 Neighbour Discovery Protocol.

func (*NDPSpec) DeepCopy

func (in *NDPSpec) DeepCopy() *NDPSpec

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

func (*NDPSpec) DeepCopyInto

func (in *NDPSpec) DeepCopyInto(out *NDPSpec)

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

type NICSpec

type NICSpec struct {
	// Name is a name of the device registered by Linux Kernel
	// +kubebuilder:validation:Required
	Name string `json:"name,omitempty"`
	// PCIAddress is the PCI bus address network interface is connected to
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^([0-9a-fA-F]{4}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}.[0-9]{1})|([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$`
	PCIAddress string `json:"pciAddress,omitempty"`
	// MACAddress is the MAC address of network interface
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^([0-9A-Fa-f]{2}[:.-]){5}([0-9A-Fa-f]{2})$`
	MACAddress string `json:"macAddress,omitempty"`
	// MTU is refers to Maximum Transmission Unit
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	MTU uint16 `json:"mtu,omitempty"`
	// Speed is a speed of network interface in Mbits/s
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Speed uint32 `json:"speed,omitempty"`
	// Lanes is a number of used lanes (if supported)
	// +kubebuilder:validation:Optional
	Lanes uint8 `json:"lanes,omitempty"`
	// ActiveFEC is an active error correction mode
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=none;rs;fc
	ActiveFEC string `json:"activeFEC,omitempty"`
	// LLDP is a collection of LLDP messages received by the network interface
	// +kubebuilder:validation:Optional
	LLDPs []LLDPSpec `json:"lldps,omitempty"`
	// NDP is a collection of NDP messages received by the network interface
	// +kubebuilder:validation:Optional
	NDPs []NDPSpec `json:"ndps,omitempty"`
}

NICSpec contains info about network interfaces.

func (*NICSpec) DeepCopy

func (in *NICSpec) DeepCopy() *NICSpec

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

func (*NICSpec) DeepCopyInto

func (in *NICSpec) DeepCopyInto(out *NICSpec)

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

type Network

type Network struct {
	// ASN - defines calculated Autonomous system Number.
	ASN uint32 `json:"asn,omitempty"`
	// Redundancy - defines machine redundancy status.
	// Available values: "Single", "HighAvailability" or "None"
	// +kubebuilder:validation:Pattern=`^(?:Single|HighAvailability|None)$`
	Redundancy string `json:"redundancy,omitempty"`
	// Ports - defines number of machine ports
	// +kubebuilder:validation:Optional
	Ports int `json:"ports,omitempty"`
	// UnknownPorts - defines number of machine interface without info
	// +kubebuilder:validation:Optional
	UnknownPorts int `json:"unknown_ports,omitempty"`
	// Interfaces - defines machine interfaces info
	// +kubebuilder:validation:Optional
	Interfaces []Interface `json:"interfaces,omitempty"`
	// Loopbacks refers to the switch's loopback addresses
	// +kubebuilder:validation:Optional
	Loopbacks LoopbackAddresses `json:"loopback_addresses,omitempty"`
}

Network - defines machine network status.

func (*Network) DeepCopy

func (in *Network) DeepCopy() *Network

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

func (*Network) DeepCopyInto

func (in *Network) DeepCopyInto(out *Network)

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

type NetworkSwitch

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

	Spec   NetworkSwitchSpec   `json:"spec"`
	Status NetworkSwitchStatus `json:"status,omitempty"`
}

NetworkSwitch is the Schema for switches API.

func (*NetworkSwitch) Cordon

func (in *NetworkSwitch) Cordon() bool

Cordon returns value of spec.cordon field if it is not nil, otherwise false.

func (*NetworkSwitch) DeepCopy

func (in *NetworkSwitch) DeepCopy() *NetworkSwitch

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

func (*NetworkSwitch) DeepCopyInto

func (in *NetworkSwitch) DeepCopyInto(out *NetworkSwitch)

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

func (*NetworkSwitch) DeepCopyObject

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

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

func (*NetworkSwitch) Default

func (in *NetworkSwitch) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*NetworkSwitch) GetASN

func (in *NetworkSwitch) GetASN() uint32

GetASN returns value of status.asn field if it is not nil, otherwise 0.

func (*NetworkSwitch) GetCondition

func (in *NetworkSwitch) GetCondition(name string) *ConditionSpec

GetCondition returns the pointer to ConditionSpec if it is stored in the list of switch's conditions, otherwise nil.

func (*NetworkSwitch) GetConfigRef

func (in *NetworkSwitch) GetConfigRef() string

GetConfigRef returns value of status.configRef.name field if configRef is not nil, otherwise empty string.

func (*NetworkSwitch) GetConfigSelector

func (in *NetworkSwitch) GetConfigSelector() *metav1.LabelSelector

GetConfigSelector returns LabelSelector if it is not nil and matching criteria are defined, otherwise nil.

func (*NetworkSwitch) GetInventoryRef

func (in *NetworkSwitch) GetInventoryRef() string

GetInventoryRef returns value of spec.inventoryRef.name field if inventoryRef is not nil, otherwise empty string.

func (*NetworkSwitch) GetLayer

func (in *NetworkSwitch) GetLayer() uint32

GetLayer returns value of status.layer field if it is not nil, otherwise 255.

func (*NetworkSwitch) GetMessage

func (in *NetworkSwitch) GetMessage() string

GetMessage returns value of status.message field if it is not nil, otherwise empty string.

func (*NetworkSwitch) GetNamespace

func (in *NetworkSwitch) GetNamespace() string

func (*NetworkSwitch) GetRole

func (in *NetworkSwitch) GetRole() string

GetRole returns value of status.role field if it is not nil, otherwise empty string.

func (*NetworkSwitch) GetRoutingConfigTemplate

func (in *NetworkSwitch) GetRoutingConfigTemplate() string

GetRoutingConfigTemplate returns value of status.routingConfigTemplate.name field if routingConfigTemplate is not nil, otherwise empty string.

func (*NetworkSwitch) GetState

func (in *NetworkSwitch) GetState() string

GetState returns value of status.state field if it is not nil, otherwise empty string.

func (*NetworkSwitch) GetSwitchPorts

func (in *NetworkSwitch) GetSwitchPorts() uint32

GetSwitchPorts returns value of status.switchPorts field if it is not nil, otherwise 0.

func (*NetworkSwitch) GetTotalPorts

func (in *NetworkSwitch) GetTotalPorts() uint32

GetTotalPorts returns value of status.totalPorts field if it is not nil, otherwise 0.

func (*NetworkSwitch) Managed

func (in *NetworkSwitch) Managed() bool

Managed returns value of spec.managed field if it is not nil, otherwise false.

func (*NetworkSwitch) NamespacedName

func (in *NetworkSwitch) NamespacedName() types.NamespacedName

NamespacedName returns types.NamespacedName built from object's metadata.name and metadata.namespace.

func (*NetworkSwitch) RoutingConfigTemplateIsEmpty

func (in *NetworkSwitch) RoutingConfigTemplateIsEmpty() bool

RoutingConfigTemplateIsEmpty checks whether the status.routingConfigTemplate contains value or not.

func (*NetworkSwitch) ScanPorts

func (in *NetworkSwitch) ScanPorts() bool

ScanPorts returns value of spec.topSpine field if it is not nil, otherwise false.

func (*NetworkSwitch) SetASN

func (in *NetworkSwitch) SetASN(value uint32)

SetASN sets passed argument as a value of status.asn field.

func (*NetworkSwitch) SetConfigRef

func (in *NetworkSwitch) SetConfigRef(value string)

SetConfigRef sets passed argument as a value of status.configRef.name field.

func (*NetworkSwitch) SetCordon

func (in *NetworkSwitch) SetCordon(value bool)

SetCordon sets passed argument as a value of spec.cordon field.

func (*NetworkSwitch) SetInventoryRef

func (in *NetworkSwitch) SetInventoryRef(value string)

SetInventoryRef sets passed argument as a value of spec.inventoryRef.name field.

func (*NetworkSwitch) SetLayer

func (in *NetworkSwitch) SetLayer(value uint32)

SetLayer sets passed argument as a value of status.layer field.

func (*NetworkSwitch) SetManaged

func (in *NetworkSwitch) SetManaged(value bool)

SetManaged sets passed argument as a value of spec.managed field.

func (*NetworkSwitch) SetMessage

func (in *NetworkSwitch) SetMessage(value string)

SetMessage sets passed argument as a value of status.message field. If passed argument is equal to empty string, then nil will be set as field value.

func (*NetworkSwitch) SetRole

func (in *NetworkSwitch) SetRole(value string)

SetRole sets passed argument as a value of status.role field. Possible values:

  • spine
  • leaf
  • edge-leaf

func (*NetworkSwitch) SetRoutingConfigTemplate

func (in *NetworkSwitch) SetRoutingConfigTemplate(value string)

SetRoutingConfigTemplate sets passed argument as a value of status.routingConfigTemplate.name field.

func (*NetworkSwitch) SetScanPorts

func (in *NetworkSwitch) SetScanPorts(value bool)

SetScanPorts sets passed argument as a value of spec.scanPorts field.

func (*NetworkSwitch) SetState

func (in *NetworkSwitch) SetState(value string)

SetState sets passed argument as a value of status.state field. If passed argument is equal to empty string, then nil will be set as field value. Possible not empty values:

  • Initial
  • Processing
  • Ready
  • Invalid
  • Pending

func (*NetworkSwitch) SetSwitchPorts

func (in *NetworkSwitch) SetSwitchPorts(value uint32)

SetSwitchPorts sets passed argument as a value of status.switchPorts field.

func (*NetworkSwitch) SetTopSpine

func (in *NetworkSwitch) SetTopSpine(value bool)

SetTopSpine sets passed argument as a value of spec.topSpine field.

func (*NetworkSwitch) SetTotalPorts

func (in *NetworkSwitch) SetTotalPorts(value uint32)

SetTotalPorts sets passed argument as a value of status.totalPorts field.

func (*NetworkSwitch) SetupWebhookWithManager

func (in *NetworkSwitch) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*NetworkSwitch) StateInitial

func (in *NetworkSwitch) StateInitial() bool

StateInitial checks actual value of .status.state field and returns boolean value whether it matches corresponding constant.

func (*NetworkSwitch) StateInvalid

func (in *NetworkSwitch) StateInvalid() bool

StateInvalid checks actual value of .status.state field and returns boolean value whether it matches corresponding constant.

func (*NetworkSwitch) StateNotReady

func (in *NetworkSwitch) StateNotReady() bool

StateNotReady checks actual value of .status.state field and returns boolean value whether it differs from "Ready".

func (*NetworkSwitch) StatePending

func (in *NetworkSwitch) StatePending() bool

StatePending checks actual value of .status.state field and returns boolean value whether it matches corresponding constant.

func (*NetworkSwitch) StateProcessing

func (in *NetworkSwitch) StateProcessing() bool

StateProcessing checks actual value of .status.state field and returns boolean value whether it matches corresponding constant.

func (*NetworkSwitch) StateReady

func (in *NetworkSwitch) StateReady() bool

StateReady checks actual value of .status.state field and returns boolean value whether it matches corresponding constant.

func (*NetworkSwitch) TopSpine

func (in *NetworkSwitch) TopSpine() bool

TopSpine returns value of spec.topSpine field if it is not nil, otherwise false.

func (*NetworkSwitch) Uninitialized

func (in *NetworkSwitch) Uninitialized() bool

Uninitialized checks whether the .status.state field is empty.

func (*NetworkSwitch) UpdateCondition

func (in *NetworkSwitch) UpdateCondition(name, reason, message string, state bool)

UpdateCondition updates the switch object's status.conditions list. Using passed "name" argument, it looks up for existing condition with provided name. In case condition was found, it will be updated. Otherwise, new ConditionSpec object will be created and added to the list.

func (*NetworkSwitch) UpdateSwitchAnnotations

func (in *NetworkSwitch) UpdateSwitchAnnotations(inv *Inventory)

func (*NetworkSwitch) UpdateSwitchLabels

func (in *NetworkSwitch) UpdateSwitchLabels(inv *Inventory)

func (*NetworkSwitch) ValidateCreate

func (in *NetworkSwitch) ValidateCreate() (admission.Warnings, error)

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

func (*NetworkSwitch) ValidateDelete

func (in *NetworkSwitch) ValidateDelete() (admission.Warnings, error)

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

func (*NetworkSwitch) ValidateUpdate

func (in *NetworkSwitch) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type NetworkSwitchList

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

NetworkSwitchList contains a list of NetworkSwitch.

func (*NetworkSwitchList) DeepCopy

func (in *NetworkSwitchList) DeepCopy() *NetworkSwitchList

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

func (*NetworkSwitchList) DeepCopyInto

func (in *NetworkSwitchList) DeepCopyInto(out *NetworkSwitchList)

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

func (*NetworkSwitchList) DeepCopyObject

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

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

type NetworkSwitchSpec

type NetworkSwitchSpec struct {
	// InventoryRef contains reference to corresponding inventory object
	// Empty InventoryRef means that there is no corresponding Inventory object
	// +kubebuilder:validation:Optional
	InventoryRef *v1.LocalObjectReference `json:"inventoryRef,omitempty"`
	// ConfigSelector contains selector to filter out corresponding SwitchConfig.
	// If the selector is not defined, it will be populated by defaulting webhook
	// with MatchLabels item, containing 'metal.ironcore.dev/layer' key with value
	// equals to object's .status.layer.
	// +kubebuilder:validation:Optional
	ConfigSelector *metav1.LabelSelector `json:"configSelector,omitempty"`
	// Managed is a flag defining whether NetworkSwitch object would be processed during reconciliation
	// +kubebuilder:validation:Required
	// +kubebuilder:default=true
	Managed *bool `json:"managed"`
	// Cordon is a flag defining whether NetworkSwitch object is taken offline
	// +kubebuilder:validation:Required
	// +kubebuilder:default=false
	Cordon *bool `json:"cordon"`
	// TopSpine is a flag defining whether NetworkSwitch is a top-level spine switch
	// +kubebuilder:validation:Required
	// +kubebuilder:default=false
	TopSpine *bool `json:"topSpine"`
	// ScanPorts is a flag defining whether to run periodical scanning on switch ports
	// +kubebuilder:validation:Required
	// +kubebuilder:default=true
	ScanPorts *bool `json:"scanPorts"`
	// IPAM refers to selectors for subnets which will be used for NetworkSwitch object
	// +kubebuilder:validation:Optional
	IPAM *IPAMSpec `json:"ipam,omitempty"`
	// Interfaces contains general configuration for all switch ports
	// +kubebuilder:validation:Optional
	Interfaces *InterfacesSpec `json:"interfaces,omitempty"`
}

NetworkSwitchSpec contains desired state of resulting NetworkSwitch configuration.

func (*NetworkSwitchSpec) DeepCopy

func (in *NetworkSwitchSpec) DeepCopy() *NetworkSwitchSpec

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

func (*NetworkSwitchSpec) DeepCopyInto

func (in *NetworkSwitchSpec) DeepCopyInto(out *NetworkSwitchSpec)

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

type NetworkSwitchStatus

type NetworkSwitchStatus struct {
	// ConfigRef contains reference to corresponding SwitchConfig object
	// Empty ConfigRef means that there is no corresponding SwitchConfig object
	// +kubebuilder:validation:Optional
	ConfigRef v1.LocalObjectReference `json:"configRef,omitempty"`
	// RoutingConfigTemplate contains the reference to the ConfigMap object which contains go-template for FRR config.
	// This field reflects the corresponding field of the related SwitchConfig object.
	// +kubebuilder:validation:Optional
	RoutingConfigTemplate v1.LocalObjectReference `json:"routingConfigTemplate,omitempty"`
	// ASN contains current autonomous system number defined for switch
	// +kubebuilder:validation:Optional
	ASN uint32 `json:"asn,omitempty"`
	// TotalPorts refers to total number of ports
	// +kubebuilder:validation:Optional
	TotalPorts uint32 `json:"totalPorts,omitempty"`
	// SwitchPorts refers to the number of ports excluding management interfaces, loopback etc.
	// +kubebuilder:validation:Optional
	SwitchPorts uint32 `json:"switchPorts,omitempty"`
	// Role refers to switch's role
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=spine;leaf;edge-leaf
	Role string `json:"role,omitempty"`
	// Layer refers to switch's current position in connection hierarchy
	// +kubebuilder:validation:Optional
	Layer uint32 `json:"layer"`
	// Interfaces refers to switch's interfaces configuration
	// +kubebuilder:validation:Optional
	Interfaces map[string]*InterfaceSpec `json:"interfaces,omitempty"`
	// Subnets refers to the switch's south subnets
	// +kubebuilder:validation:Optional
	Subnets []*SubnetSpec `json:"subnets,omitempty"`
	// LoopbackAddresses refers to the switch's loopback addresses
	// +kubebuilder:validation:Optional
	LoopbackAddresses []*IPAddressSpec `json:"loopbackAddresses,omitempty"`
	// State is the current state of corresponding object or process
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=Initial;Processing;Ready;Invalid;Pending
	State *string `json:"state,omitempty"`
	// Message contains a brief description of the current state
	// +kubebuilder:validation:Optional
	Message *string `json:"message,omitempty"`
	// Condition contains state of port parameters
	// +kubebuilder:validation:Optional
	Conditions []*ConditionSpec `json:"conditions,omitempty"`
}

NetworkSwitchStatus contains observed state of NetworkSwitch.

func (*NetworkSwitchStatus) DeepCopy

func (in *NetworkSwitchStatus) DeepCopy() *NetworkSwitchStatus

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

func (*NetworkSwitchStatus) DeepCopyInto

func (in *NetworkSwitchStatus) DeepCopyInto(out *NetworkSwitchStatus)

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

type NumaSpec

type NumaSpec struct {
	// ID is NUMA node ID.
	// +kubebuilder:validation:Required
	ID int `json:"id"`
	// CPUs is a list of CPU logical IDs in current numa node.
	// +kubebuilder:validation:Required
	CPUs []int `json:"cpus"`
	// Distances contains distances to other nodes. Element index corresponds to NUMA node ID.
	// +kubebuilder:validation:Required
	Distances []int `json:"distances"`
	// Memory contains info about NUMA node memory setup.
	// +kubebuilder:validation:Required
	Memory *MemorySpec `json:"memory"`
}

NumaSpec describes NUMA node.

func (*NumaSpec) DeepCopy

func (in *NumaSpec) DeepCopy() *NumaSpec

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

func (*NumaSpec) DeepCopyInto

func (in *NumaSpec) DeepCopyInto(out *NumaSpec)

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

type ObjectReference

type ObjectReference struct {
	// Name contains name of the referenced object
	// +kubebuilder:validation:Optional
	Name *string `json:"name,omitempty"`
	// Namespace contains namespace of the referenced object
	// +kubebuilder:validation:Optional
	Namespace *string `json:"namespace,omitempty"`
}

ObjectReference contains enough information to let you locate the referenced object across namespaces.

func (*ObjectReference) DeepCopy

func (in *ObjectReference) DeepCopy() *ObjectReference

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

func (*ObjectReference) DeepCopyInto

func (in *ObjectReference) DeepCopyInto(out *ObjectReference)

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

type PCIDeviceDescriptionSpec

type PCIDeviceDescriptionSpec struct {
	// ID is a hexadecimal identifier of device property , that corresponds to the value from PCIIDs database
	// +kubebuilder:validation:Required
	ID string `json:"id"`
	// Name is a string value of property extracted from PCIID DB
	// +kubebuilder:validation:Optional
	Name string `json:"name"`
}

PCIDeviceDescriptionSpec contains one of the options that is describing the PCI device.

func (*PCIDeviceDescriptionSpec) DeepCopy

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

func (*PCIDeviceDescriptionSpec) DeepCopyInto

func (in *PCIDeviceDescriptionSpec) DeepCopyInto(out *PCIDeviceDescriptionSpec)

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

type PCIDeviceSpec

type PCIDeviceSpec struct {
	// BusID is an ID of PCI bus on the board device is attached to.
	// +kubebuilder:validation:Required
	BusID string `json:"busId,omitempty"`
	// Address is an ID of device on PCI bus.
	// +kubebuilder:validation:Required
	Address string `json:"address,omitempty"`
	// Vendor refers to manufacturer ore device trademark.
	// +kubebuilder:validation:Optional
	Vendor *PCIDeviceDescriptionSpec `json:"vendor,omitempty"`
	// Subvendor usually refers to the platform or co-manufacturer. E.g. Lenovo board manufactured for Intel platform (by Intel spec).
	// +kubebuilder:validation:Optional
	Subvendor *PCIDeviceDescriptionSpec `json:"subvendor,omitempty"`
	// Type shows device's designation.
	// +kubebuilder:validation:Optional
	Type *PCIDeviceDescriptionSpec `json:"type,omitempty"`
	// Subtype shows device's subsystem.
	// +kubebuilder:validation:Optional
	Subtype *PCIDeviceDescriptionSpec `json:"subtype,omitempty"`
	// Class refers to generic device designation.
	// +kubebuilder:validation:Optional
	Class *PCIDeviceDescriptionSpec `json:"class,omitempty"`
	// Subclass narrows the designation scope.
	// +kubebuilder:validation:Optional
	Subclass *PCIDeviceDescriptionSpec `json:"subclass,omitempty"`
	// ProgrammingInterface specifies communication protocols.
	// +kubebuilder:validation:Optional
	ProgrammingInterface *PCIDeviceDescriptionSpec `json:"interface,omitempty"`
}

PCIDeviceSpec contains description of PCI device.

func (*PCIDeviceSpec) DeepCopy

func (in *PCIDeviceSpec) DeepCopy() *PCIDeviceSpec

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

func (*PCIDeviceSpec) DeepCopyInto

func (in *PCIDeviceSpec) DeepCopyInto(out *PCIDeviceSpec)

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

type PartitionSpec

type PartitionSpec struct {
	// ID is a GUID of GPT partition or number for MBR partition
	// +kubebuilder:validation:Required
	ID string `json:"id,omitempty"`
	// Name is a human readable name given to the partition
	// +kubebuilder:validation:Optional
	Name string `json:"name,omitempty"`
	// Size is a size of partition in bytes
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Size uint64 `json:"size,omitempty"`
}

PartitionSpec contains info about partition.

func (*PartitionSpec) DeepCopy

func (in *PartitionSpec) DeepCopy() *PartitionSpec

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

func (*PartitionSpec) DeepCopyInto

func (in *PartitionSpec) DeepCopyInto(out *PartitionSpec)

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

type PartitionTableSpec

type PartitionTableSpec struct {
	// Type is a format of partition table
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Enum=MBR;GPT
	Type string `json:"type,omitempty"`
	// Partitions are active partition records on disk
	// +kubebuilder:validation:Optional
	Partitions []PartitionSpec `json:"partitions,omitempty"`
}

PartitionTableSpec contains info about partition table on block device.

func (*PartitionTableSpec) DeepCopy

func (in *PartitionTableSpec) DeepCopy() *PartitionTableSpec

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

func (*PartitionTableSpec) DeepCopyInto

func (in *PartitionTableSpec) DeepCopyInto(out *PartitionTableSpec)

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

type Peer

type Peer struct {
	// LLDPSystemName - defines switch name obtained from Link Layer Discovery Protocol
	// layer 2 neighbor discovery protocol
	// +optional
	LLDPSystemName string `json:"lldp_system_name,omitempty"`
	// LLDPChassisID - defines switch ID for chassis obtained from Link Layer Discovery Protocol
	// +optional
	LLDPChassisID string `json:"lldp_chassis_id,omitempty"`
	// LLDPPortID - defines switch port ID obtained from Link Layer Discovery Protocol
	// +optional
	LLDPPortID string `json:"lldp_port_id,omitempty"`
	// LLDPPortDescription - defines switch definition obtained from Link Layer Discovery Protocol
	// +optional
	LLDPPortDescription string `json:"lldp_port_description,omitempty"`
	// ResourceReference refers to the related resource definition
	// +optional
	ResourceReference *ResourceReference `json:"resource_reference,omitempty"`
}

Peer - contains machine neighbor information collected from LLDP.

func (*Peer) DeepCopy

func (in *Peer) DeepCopy() *Peer

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

func (*Peer) DeepCopyInto

func (in *Peer) DeepCopyInto(out *Peer)

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

type PeerInfoSpec

type PeerInfoSpec struct {
	// ChassisID refers to the chassis identificator - either MAC-address or system uuid
	// +kubebuilder:validation:Optional
	// validation pattern
	ChassisID *string `json:"chassisId,omitempty"`
	// SystemName refers to the advertised peer's name
	// +kubebuilder:validation:Optional
	SystemName *string `json:"systemName,omitempty"`
	// PortID refers to the advertised peer's port ID
	// +kubebuilder:validation:Optional
	PortID *string `json:"portId,omitempty"`
	// PortDescription refers to the advertised peer's port description
	// +kubebuilder:validation:Optional
	PortDescription *string `json:"portDescription,omitempty"`
	// Type refers to the peer type
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=machine;switch;router;undefined
	Type *string `json:"type,omitempty"`
}

PeerInfoSpec contains LLDP info about peer.

func (*PeerInfoSpec) DeepCopy

func (in *PeerInfoSpec) DeepCopy() *PeerInfoSpec

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

func (*PeerInfoSpec) DeepCopyInto

func (in *PeerInfoSpec) DeepCopyInto(out *PeerInfoSpec)

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

func (*PeerInfoSpec) GetChassisID

func (in *PeerInfoSpec) GetChassisID() string

GetChassisID returns value of chassisID field of given PeerInfoSpec object if it is not nil, otherwise empty string.

func (*PeerInfoSpec) GetPortDescription

func (in *PeerInfoSpec) GetPortDescription() string

GetPortDescription returns value of portDescription field of given PeerInfoSpec object if it is not nil, otherwise empty string.

func (*PeerInfoSpec) GetPortID

func (in *PeerInfoSpec) GetPortID() string

GetPortID returns value of portID field of given PeerInfoSpec object if it is not nil, otherwise empty string.

func (*PeerInfoSpec) GetSystemName

func (in *PeerInfoSpec) GetSystemName() string

GetSystemName returns value of systemName field of given PeerInfoSpec object if it is not nil, otherwise empty string.

func (*PeerInfoSpec) GetType

func (in *PeerInfoSpec) GetType() string

GetType returns value of type field of given PeerInfoSpec object if it is not nil, otherwise empty string.

func (*PeerInfoSpec) SetChassisID

func (in *PeerInfoSpec) SetChassisID(value string)

SetChassisID sets passed argument as value of chassisID field for given PeerInfoSpec object.

func (*PeerInfoSpec) SetPortDescription

func (in *PeerInfoSpec) SetPortDescription(value string)

SetPortDescription sets passed arguments as value of portDescription field for given PeerInfoSpec object.

func (*PeerInfoSpec) SetPortID

func (in *PeerInfoSpec) SetPortID(value string)

SetPortID sets passed argument as value of portID field for given PeerSpecInfo object.

func (*PeerInfoSpec) SetSystemName

func (in *PeerInfoSpec) SetSystemName(value string)

SetSystemName sets passed argument as value of systemName field for given PeerInfoSpec object.

func (*PeerInfoSpec) SetType

func (in *PeerInfoSpec) SetType(value string)

SetType sets passed argument as value of type field for given PeerInfoSpec object. Possible values:

  • machine
  • switch
  • router (for future use)
  • undefined

type PeerSpec

type PeerSpec struct {
	// Contains information to locate the referenced object
	// +kubebuilder:validation:Optional
	*ObjectReference `json:",inline"`
	// Contains LLDP info about peer
	// +kubebuilder:validation:Optional
	*PeerInfoSpec `json:",inline"`
}

PeerSpec defines peer info.

func (*PeerSpec) DeepCopy

func (in *PeerSpec) DeepCopy() *PeerSpec

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

func (*PeerSpec) DeepCopyInto

func (in *PeerSpec) DeepCopyInto(out *PeerSpec)

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

func (*PeerSpec) GetObjectReferenceName

func (in *PeerSpec) GetObjectReferenceName() string

GetObjectReferenceName returns value of objectReference.name field of given PeerSpec object if objectReference is not nil, otherwise empty string.

func (*PeerSpec) GetObjectReferenceNamespace

func (in *PeerSpec) GetObjectReferenceNamespace() string

GetObjectReferenceNamespace returns value of objectReference.namespace field of given PeerSpec object if objectReference is not nil, otherwise empty string.

func (*PeerSpec) SetObjectReference

func (in *PeerSpec) SetObjectReference(name, namespace string)

SetObjectReference updates value of objectReference field of given PeerSpec object with new ObjectReference object where Name and Namespace fields are assigned with passed arguments.

type PortParametersSpec

type PortParametersSpec struct {
	// Lanes refers to a number of lanes used by switch port
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=8
	Lanes *uint32 `json:"lanes,omitempty"`
	// MTU refers to maximum transmission unit value which should be applied on switch port
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=84
	// +kubebuilder:validation:Maximum=65535
	MTU *uint32 `json:"mtu,omitempty"`
	// IPv4MaskLength defines prefix of subnet where switch port's IPv4 address should be reserved
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=32
	IPv4MaskLength *uint32 `json:"ipv4MaskLength,omitempty"`
	// IPv6Prefix defines prefix of subnet where switch port's IPv6 address should be reserved
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=128
	IPv6Prefix *uint32 `json:"ipv6Prefix,omitempty"`
	// FEC refers to forward error correction method which should be applied on switch port
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=rs;none
	FEC *string `json:"fec,omitempty"`
	// State defines default state of switch port
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=up;down
	State *string `json:"state,omitempty"`
}

PortParametersSpec contains a set of parameters of switch port.

func (*PortParametersSpec) DeepCopy

func (in *PortParametersSpec) DeepCopy() *PortParametersSpec

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

func (*PortParametersSpec) DeepCopyInto

func (in *PortParametersSpec) DeepCopyInto(out *PortParametersSpec)

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

func (*PortParametersSpec) GetFEC

func (in *PortParametersSpec) GetFEC() string

GetFEC returns value of fec field of given PortParametersSpec object if it is not nil, otherwise empty string.

func (*PortParametersSpec) GetIPv4MaskLength

func (in *PortParametersSpec) GetIPv4MaskLength() uint32

GetIPv4MaskLength returns value of ipv4MaskLength field of given PortParametersSpec object if it is not nil, otherwise 0.

func (*PortParametersSpec) GetIPv6Prefix

func (in *PortParametersSpec) GetIPv6Prefix() uint32

GetIPv6Prefix returns value of ipv6Prefix field of given PortParametersSpec object if it is not nil, otherwise 0.

func (*PortParametersSpec) GetLanes

func (in *PortParametersSpec) GetLanes() uint32

GetLanes returns value of lanes field of given PortParametersSpec object if it is not nil, otherwise 0.

func (*PortParametersSpec) GetMTU

func (in *PortParametersSpec) GetMTU() uint32

GetMTU returns value of mtu field of given PortParametersSpec object if it is not nil, otherwise 0.

func (*PortParametersSpec) GetState

func (in *PortParametersSpec) GetState() string

GetState returns value of state field of given PortParametersSpec object if it is not nil, otherwise empty string.

func (*PortParametersSpec) SetFEC

func (in *PortParametersSpec) SetFEC(value string)

SetFEC sets passed argument as value of fec field for given PortParametersSpec object. Possible values:

  • rs
  • none

func (*PortParametersSpec) SetIPv4MaskLength

func (in *PortParametersSpec) SetIPv4MaskLength(value uint32)

SetIPv4MaskLength sets passed argument as value of ipv4MaskLength for given PortParametersSpec object.

func (*PortParametersSpec) SetIPv6Prefix

func (in *PortParametersSpec) SetIPv6Prefix(value uint32)

SetIPv6Prefix sets passed argument as value of ipv6Prefix field for given PortParametersSpec object.

func (*PortParametersSpec) SetLanes

func (in *PortParametersSpec) SetLanes(value uint32)

SetLanes sets passed argument as value of lanes field for given PortParametersSpec object.

func (*PortParametersSpec) SetMTU

func (in *PortParametersSpec) SetMTU(value uint32)

SetMTU sets passed argument as value of mtu field for given PortParametersSpec object.

func (*PortParametersSpec) SetState

func (in *PortParametersSpec) SetState(value string)

SetState sets passed argument as value of state field for given PortParametersSpec object. Possible values:

  • up
  • down

type RegionSpec

type RegionSpec struct {
	// Name refers to the switch's region
	// +kubebuilder:validation:Pattern=^[a-z0-9]([-./a-z0-9]*[a-z0-9])?$
	// +kubebuilder:validation:Required
	Name *string `json:"name"`
	// AvailabilityZone refers to the switch's availability zone
	// +kubebuilder:validation:Required
	AvailabilityZone *string `json:"availabilityZone"`
}

RegionSpec defines region info.

func (*RegionSpec) DeepCopy

func (in *RegionSpec) DeepCopy() *RegionSpec

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

func (*RegionSpec) DeepCopyInto

func (in *RegionSpec) DeepCopyInto(out *RegionSpec)

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

type Reservation

type Reservation struct {
	// Status - defines Machine Order state provided by OOB Machine Resources
	// +optional
	Status string `json:"status,omitempty"`
	// Class - defines what class the mahchine was reserved under
	// +optional
	Class string `json:"class,omitempty"`
	// Reference - defines underlying referenced object.
	// +optional
	Reference *ResourceReference `json:"reference,omitempty"`
}

func (*Reservation) DeepCopy

func (in *Reservation) DeepCopy() *Reservation

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

func (*Reservation) DeepCopyInto

func (in *Reservation) DeepCopyInto(out *Reservation)

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

type ResourceReference

type ResourceReference struct {
	// APIVersion refers to the resource API version
	// +optional
	APIVersion string `json:"apiVersion,omitempty"`
	// Kind refers to the resource kind
	// +optional
	Kind string `json:"kind,omitempty"`
	// Name refers to the resource name
	// +optional
	Name string `json:"name,omitempty"`
	// Namespace refers to the resource namespace
	// +optional
	Namespace string `json:"namespace,omitempty"`
}

ResourceReference defines related resource info.

func (*ResourceReference) DeepCopy

func (in *ResourceReference) DeepCopy() *ResourceReference

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

func (*ResourceReference) DeepCopyInto

func (in *ResourceReference) DeepCopyInto(out *ResourceReference)

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

type Size

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

	Spec   SizeSpec   `json:"spec,omitempty"`
	Status SizeStatus `json:"status,omitempty"`
}

Size is the Schema for the sizes API.

func (*Size) DeepCopy

func (in *Size) DeepCopy() *Size

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

func (*Size) DeepCopyInto

func (in *Size) DeepCopyInto(out *Size)

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

func (*Size) DeepCopyObject

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

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

func (*Size) GetMatchLabel

func (in *Size) GetMatchLabel() string

func (*Size) Matches

func (in *Size) Matches(inventory *Inventory) (bool, error)

func (*Size) SetupWebhookWithManager

func (in *Size) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Size) ValidateCreate

func (in *Size) ValidateCreate() (admission.Warnings, error)

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

func (*Size) ValidateDelete

func (in *Size) ValidateDelete() (admission.Warnings, error)

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

func (*Size) ValidateUpdate

func (in *Size) ValidateUpdate(old runtime.Object) (admission.Warnings, error)

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

type SizeList

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

SizeList contains a list of Size.

func (*SizeList) DeepCopy

func (in *SizeList) DeepCopy() *SizeList

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

func (*SizeList) DeepCopyInto

func (in *SizeList) DeepCopyInto(out *SizeList)

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

func (*SizeList) DeepCopyObject

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

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

type SizeSpec

type SizeSpec struct {
	// Constraints is a list of selectors based on machine properties.
	// +kubebuilder:validation:Optional
	Constraints []ConstraintSpec `json:"constraints,omitempty"`
}

SizeSpec defines the desired state of Size.

func (*SizeSpec) DeepCopy

func (in *SizeSpec) DeepCopy() *SizeSpec

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

func (*SizeSpec) DeepCopyInto

func (in *SizeSpec) DeepCopyInto(out *SizeSpec)

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

type SizeStatus

type SizeStatus struct {
}

SizeStatus defines the observed state of Size.

func (*SizeStatus) DeepCopy

func (in *SizeStatus) DeepCopy() *SizeStatus

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

func (*SizeStatus) DeepCopyInto

func (in *SizeStatus) DeepCopyInto(out *SizeStatus)

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

type SubnetSpec

type SubnetSpec struct {
	// Contains information to locate the referenced object
	// +kubebuilder:validation:Optional
	Subnet *ObjectReference `json:"subnet"`
	// Contains information to locate the referenced object
	// +kubebuilder:validation:Optional
	Network *ObjectReference `json:"network"`
	// CIDR refers to subnet CIDR
	// +kubebuilder:validation:Optional
	// validation pattern
	CIDR *string `json:"cidr,omitempty"`
	// Region refers to switch's region
	// +kubebuilder:validation:Optional
	Region *RegionSpec `json:"region,omitempty"`
	// AddressFamily refers to the AF of subnet
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=IPv4;IPv6
	AddressFamily *string `json:"addressFamily,omitempty"`
}

SubnetSpec defines switch's subnet info.

func (*SubnetSpec) DeepCopy

func (in *SubnetSpec) DeepCopy() *SubnetSpec

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

func (*SubnetSpec) DeepCopyInto

func (in *SubnetSpec) DeepCopyInto(out *SubnetSpec)

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

func (*SubnetSpec) GetAddressFamily

func (in *SubnetSpec) GetAddressFamily() string

GetAddressFamily returns value of addressFamily field of given SubnetSpec object if it is not nil, otherwise empty string.

func (*SubnetSpec) GetCIDR

func (in *SubnetSpec) GetCIDR() string

GetCIDR returns value of cidr field of given SubnetSpec object if it is not nil, otherwise empty string.

func (*SubnetSpec) GetNetworkObjectRefName

func (in *SubnetSpec) GetNetworkObjectRefName() string

GetNetworkObjectRefName returns value of Network.name field of given SubnetSpec object if Network is not nil, otherwise empty string.

func (*SubnetSpec) GetNetworkObjectRefNamespace

func (in *SubnetSpec) GetNetworkObjectRefNamespace() string

GetNetworkObjectRefNamespace returns value of Network.namespace field of given SubnetSpec object if Network is not nil, otherwise empty string.

func (*SubnetSpec) GetSubnetObjectRefName

func (in *SubnetSpec) GetSubnetObjectRefName() string

GetSubnetObjectRefName returns value of Subnet.name field of given SubnetSpec object if Subnet is not nil, otherwise empty string.

func (*SubnetSpec) GetSubnetObjectRefNamespace

func (in *SubnetSpec) GetSubnetObjectRefNamespace() string

GetSubnetObjectRefNamespace returns value of Subnet.namespace field of given SubnetSpec object if Subnet is not nil, otherwise empty string.

func (*SubnetSpec) SetAddressFamily

func (in *SubnetSpec) SetAddressFamily(value string)

SetAddressFamily sets passed argument as value of addressFamily field for given SubnetSpec object. Possible values:

  • IPv4
  • IPv6

func (*SubnetSpec) SetCIDR

func (in *SubnetSpec) SetCIDR(value string)

SetCIDR sets passed argument as value of cidr field of given SubnetSpec object.

func (*SubnetSpec) SetNetworkObjectRef

func (in *SubnetSpec) SetNetworkObjectRef(name, namespace string)

SetNetworkObjectRef updates value of Network field of given SubnetSpec object with new ObjectReference object where Name and Namespace fields are assigned with passed arguments.

func (*SubnetSpec) SetSubnetObjectRef

func (in *SubnetSpec) SetSubnetObjectRef(name, namespace string)

SetSubnetObjectRef updates value of Subnet field of given SubnetSpec object with new ObjectReference object where Name and Namespace fields are assigned with passed arguments.

type SwitchConfig

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

	Spec   SwitchConfigSpec   `json:"spec,omitempty"`
	Status SwitchConfigStatus `json:"status,omitempty"`
}

SwitchConfig is the Schema for switch config API.

func (*SwitchConfig) DeepCopy

func (in *SwitchConfig) DeepCopy() *SwitchConfig

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

func (*SwitchConfig) DeepCopyInto

func (in *SwitchConfig) DeepCopyInto(out *SwitchConfig)

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

func (*SwitchConfig) DeepCopyObject

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

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

func (*SwitchConfig) Default

func (in *SwitchConfig) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type.

func (*SwitchConfig) GetRoutingConfigTemplate

func (in *SwitchConfig) GetRoutingConfigTemplate() string

GetRoutingConfigTemplate returns value of spec.routingConfigTemplate.name field if routingConfigTemplate is not nil, otherwise empty string.

func (*SwitchConfig) RoutingConfigTemplateIsEmpty

func (in *SwitchConfig) RoutingConfigTemplateIsEmpty() bool

RoutingConfigTemplateIsEmpty checks whether the spec.routingConfigTemplate contains value or not.

func (*SwitchConfig) SetupWebhookWithManager

func (in *SwitchConfig) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*SwitchConfig) ValidateCreate

func (in *SwitchConfig) ValidateCreate() (admission.Warnings, error)

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

func (*SwitchConfig) ValidateDelete

func (in *SwitchConfig) ValidateDelete() (warnings admission.Warnings, err error)

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

func (*SwitchConfig) ValidateUpdate

func (in *SwitchConfig) ValidateUpdate(_ runtime.Object) (warnings admission.Warnings, err error)

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

type SwitchConfigList

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

SwitchConfigList contains a list of SwitchConfig.

func (*SwitchConfigList) DeepCopy

func (in *SwitchConfigList) DeepCopy() *SwitchConfigList

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

func (*SwitchConfigList) DeepCopyInto

func (in *SwitchConfigList) DeepCopyInto(out *SwitchConfigList)

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

func (*SwitchConfigList) DeepCopyObject

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

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

type SwitchConfigSpec

type SwitchConfigSpec struct {
	// Switches contains label selector to pick up NetworkSwitch objects
	// +kubebuilder:validation:Required
	Switches *metav1.LabelSelector `json:"switches,omitempty"`
	// PortsDefaults contains switch port parameters which will be applied to all ports of the switches
	// which fit selector conditions
	// +kubebuilder:validation:Required
	PortsDefaults *PortParametersSpec `json:"portsDefaults"`
	// IPAM refers to selectors for subnets which will be used for NetworkSwitch object
	// +kubebuilder:validation:Required
	IPAM *GeneralIPAMSpec `json:"ipam"`
	// RoutingConfigTemplate contains the reference to the ConfigMap object which contains go-template for FRR config
	// +kubebuilder:validation:Optional
	RoutingConfigTemplate *v1.LocalObjectReference `json:"routingConfigTemplate,omitempty"`
}

SwitchConfigSpec contains desired configuration for selected switches.

func (*SwitchConfigSpec) DeepCopy

func (in *SwitchConfigSpec) DeepCopy() *SwitchConfigSpec

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

func (*SwitchConfigSpec) DeepCopyInto

func (in *SwitchConfigSpec) DeepCopyInto(out *SwitchConfigSpec)

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

type SwitchConfigStatus

type SwitchConfigStatus struct {
}

SwitchConfigStatus contains observed state of SwitchConfig.

func (*SwitchConfigStatus) DeepCopy

func (in *SwitchConfigStatus) DeepCopy() *SwitchConfigStatus

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

func (*SwitchConfigStatus) DeepCopyInto

func (in *SwitchConfigStatus) DeepCopyInto(out *SwitchConfigStatus)

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

type SystemSpec

type SystemSpec struct {
	// ID is a UUID of a system board
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Pattern=`^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$`
	ID string `json:"id,omitempty"`
	// Manufacturer refers to the company that produced the product
	// +kubebuilder:validation:Required
	Manufacturer string `json:"manufacturer,omitempty"`
	// ProductSKU is a product's Stock Keeping Unit
	// +kubebuilder:validation:Required
	ProductSKU string `json:"productSku,omitempty"`
	// SerialNumber contains serial number of a system
	// +kubebuilder:validation:Required
	SerialNumber string `json:"serialNumber,omitempty"`
}

SystemSpec contains DMI system information.

func (*SystemSpec) DeepCopy

func (in *SystemSpec) DeepCopy() *SystemSpec

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

func (*SystemSpec) DeepCopyInto

func (in *SystemSpec) DeepCopyInto(out *SystemSpec)

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

type ValidationInventory

type ValidationInventory struct {
	Spec InventorySpec `json:"spec"`
}

func (*ValidationInventory) DeepCopy

func (in *ValidationInventory) DeepCopy() *ValidationInventory

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

func (*ValidationInventory) DeepCopyInto

func (in *ValidationInventory) DeepCopyInto(out *ValidationInventory)

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

type VirtSpec

type VirtSpec struct {
	// VMType is a type of virtual machine engine
	// +kubebuilder:validation:Optional
	// +kubebuilder:validation:Enum=none;kvm;qemu;bochs;xen;uml;vmware;oracle;microsoft;zvm;parallels;bhyve;qnx;acrn;powervm;other
	VMType string `json:"vmType,omitempty"`
}

VirtSpec contains info about detected host virtualization.

func (*VirtSpec) DeepCopy

func (in *VirtSpec) DeepCopy() *VirtSpec

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

func (*VirtSpec) DeepCopyInto

func (in *VirtSpec) DeepCopyInto(out *VirtSpec)

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

Jump to

Keyboard shortcuts

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