v1alpha1

package
v0.0.0-...-4c62ba4 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2025 License: Apache-2.0 Imports: 4 Imported by: 10

Documentation

Overview

Package v1alpha1 contains API schema definitions for the O2 IMS hardware manager plugin API.

+kubebuilder:object:generate=true +groupName=o2ims-hardwaremanagement.oran.openshift.io

Index

Constants

This section is empty.

Variables

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

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

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

Functions

This section is empty.

Types

type BMC

type BMC struct {
	// The Address contains the URL for accessing the BMC over the network.
	Address string `json:"address,omitempty"`

	// CredentialsName is a reference to a secret containing the credentials. That secret
	// should contain the keys `username` and `password`.
	CredentialsName string `json:"credentialsName,omitempty"`
}

BMC describes BMC details of a hardware server

func (*BMC) DeepCopy

func (in *BMC) DeepCopy() *BMC

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

func (*BMC) DeepCopyInto

func (in *BMC) DeepCopyInto(out *BMC)

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

type ConditionMessage

type ConditionMessage string

ConditionMessage provides detailed messages associated with condition status updates.

const (
	AwaitConfig   ConditionMessage = "Spec updated; awaiting configuration application by the hardware plugin"
	ConfigSuccess ConditionMessage = "Configuration has been applied successfully"
)

type ConditionReason

type ConditionReason string

ConditionReason describes the reasons for a condition's status.

const (
	InProgress     ConditionReason = "InProgress"
	Completed      ConditionReason = "Completed"
	Unprovisioned  ConditionReason = "Unprovisioned"
	Failed         ConditionReason = "Failed"
	NotInitialized ConditionReason = "NotInitialized"
	TimedOut       ConditionReason = "TimedOut"
	ConfigUpdate   ConditionReason = "ConfigurationUpdateRequested"
	ConfigApplied  ConditionReason = "ConfigurationApplied"
)

type ConditionType

type ConditionType string
const (
	Provisioned ConditionType = "Provisioned"
	Configured  ConditionType = "Configured"
	Validation  ConditionType = "Validation"
	Unknown     ConditionType = "Unknown" // Indicates the condition has not been evaluated
)

The following constants define the different types of conditions that will be set

type GenerationStatus

type GenerationStatus struct {
	ObservedGeneration int64 `json:"observedGeneration,omitempty"`
}

GenerationStatus represents the observed generation for an operator.

func (*GenerationStatus) DeepCopy

func (in *GenerationStatus) DeepCopy() *GenerationStatus

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

func (*GenerationStatus) DeepCopyInto

func (in *GenerationStatus) DeepCopyInto(out *GenerationStatus)

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

type HardwareTemplate

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

	Spec   HardwareTemplateSpec   `json:"spec,omitempty"`
	Status HardwareTemplateStatus `json:"status,omitempty"`
}

HardwareTemplate is the Schema for the hardwaretemplates API +kubebuilder:validation:XValidation:message="Spec changes are not allowed for a HardwareTemplate that has passed the validation", rule="!has(oldSelf.status) || oldSelf.status.conditions.exists(c, c.type=='Validation' && c.status=='False') || oldSelf.spec == self.spec" +operator-sdk:csv:customresourcedefinitions:displayName="ORAN O2IMS Hardware Template",resources={{ConfigMap, v1}}

func (*HardwareTemplate) DeepCopy

func (in *HardwareTemplate) DeepCopy() *HardwareTemplate

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

func (*HardwareTemplate) DeepCopyInto

func (in *HardwareTemplate) DeepCopyInto(out *HardwareTemplate)

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

func (*HardwareTemplate) DeepCopyObject

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

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

type HardwareTemplateList

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

HardwareTemplateList contains a list of HardwareTemplate.

+kubebuilder:object:root=true

func (*HardwareTemplateList) DeepCopy

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

func (*HardwareTemplateList) DeepCopyInto

func (in *HardwareTemplateList) DeepCopyInto(out *HardwareTemplateList)

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

func (*HardwareTemplateList) DeepCopyObject

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

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

type HardwareTemplateSpec

type HardwareTemplateSpec struct {

	// HwMgrId is the identifier for the hardware manager plugin adaptor.
	// +kubebuilder:validation:MinLength=1
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Manager ID",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HwMgrId string `json:"hwMgrId"`

	// BootInterfaceLabel is the label of the boot interface.
	// +kubebuilder:validation:MinLength=1
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Boot Interface Label",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	BootInterfaceLabel string `json:"bootInterfaceLabel"`

	// HardwareProvisioningTimeout defines the timeout duration string for the hardware provisioning.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Provisioning Timeout",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HardwareProvisioningTimeout string `json:"hardwareProvisioningTimeout,omitempty"`

	// NodePoolData defines a collection of NodePoolData items
	// +kubebuilder:validation:MinItems=1
	//+operator-sdk:csv:customresourcedefinitions:type=spec
	NodePoolData []NodePoolData `json:"nodePoolData"`

	// Extensions holds additional custom key-value pairs that can be used to extend the node pool's configuration.
	//+operator-sdk:csv:customresourcedefinitions:type=spec
	Extensions map[string]string `json:"extensions,omitempty"`
}

HardwareTemplateSpec defines the desired state of HardwareTemplate

func (*HardwareTemplateSpec) DeepCopy

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

func (*HardwareTemplateSpec) DeepCopyInto

func (in *HardwareTemplateSpec) DeepCopyInto(out *HardwareTemplateSpec)

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

type HardwareTemplateStatus

type HardwareTemplateStatus struct {

	//+operator-sdk:csv:customresourcedefinitions:type=status
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

HardwareTemplateStatus defines the observed state of HardwareTemplate

func (*HardwareTemplateStatus) DeepCopy

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

func (*HardwareTemplateStatus) DeepCopyInto

func (in *HardwareTemplateStatus) DeepCopyInto(out *HardwareTemplateStatus)

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

type Interface

type Interface struct {
	Name  string `json:"name"`  // The name of the network interface (e.g., eth0, ens33)
	Label string `json:"label"` // The label of the interface
	// +kubebuilder:validation:Pattern=`^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$`
	MACAddress string `json:"macAddress"` // The MAC address of the interface
}

Interface describes an interface of a hardware server

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 LocationSpec

type LocationSpec struct {
	// Location
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Location",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	Location string `json:"location,omitempty"`
	// Site
	// +kubebuilder:validation:Required
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Site",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	Site string `json:"site"`
}

LocationSpec is the geographical location of the requested node.

func (*LocationSpec) DeepCopy

func (in *LocationSpec) DeepCopy() *LocationSpec

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

func (*LocationSpec) DeepCopyInto

func (in *LocationSpec) DeepCopyInto(out *LocationSpec)

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

type Node

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

	Spec   NodeSpec   `json:"spec,omitempty"`
	Status NodeStatus `json:"status,omitempty"`
}

Node is the schema for an allocated node

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=nodes,shortName=orannode +kubebuilder:printcolumn:name="HwMgr Id",type="string",JSONPath=".spec.hwMgrId" +kubebuilder:printcolumn:name="NodePool",type="string",JSONPath=".spec.nodePool" +kubebuilder:printcolumn:name="HwMgr Node Id",type="string",JSONPath=".spec.hwMgrNodeId" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.conditions[-1:].reason" +operator-sdk:csv:customresourcedefinitions:displayName="Node",resources={{Namespace, v1}}

func (*Node) DeepCopy

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto

func (in *Node) DeepCopyInto(out *Node)

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

func (*Node) DeepCopyObject

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

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

type NodeGroup

type NodeGroup struct {
	NodePoolData NodePoolData `json:"nodePoolData"` // Explicitly include as a named field
	Size         int          `json:"size" yaml:"size"`
}

func (*NodeGroup) DeepCopy

func (in *NodeGroup) DeepCopy() *NodeGroup

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

func (*NodeGroup) DeepCopyInto

func (in *NodeGroup) DeepCopyInto(out *NodeGroup)

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

type NodeList

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

NodeList contains a list of provisioned node.

+kubebuilder:object:root=true

func (*NodeList) DeepCopy

func (in *NodeList) DeepCopy() *NodeList

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

func (*NodeList) DeepCopyInto

func (in *NodeList) DeepCopyInto(out *NodeList)

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

func (*NodeList) DeepCopyObject

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

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

type NodePool

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

	Spec   NodePoolSpec   `json:"spec,omitempty"`
	Status NodePoolStatus `json:"status,omitempty"`
}

NodePool is the schema for an allocation request of nodes

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=nodepools,shortName=orannp +kubebuilder:printcolumn:name="HwMgr Id",type="string",JSONPath=".spec.hwMgrId" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.conditions[-1:].reason" +operator-sdk:csv:customresourcedefinitions:displayName="Node Pool",resources={{Namespace, v1}}

func (*NodePool) DeepCopy

func (in *NodePool) DeepCopy() *NodePool

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

func (*NodePool) DeepCopyInto

func (in *NodePool) DeepCopyInto(out *NodePool)

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

func (*NodePool) DeepCopyObject

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

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

type NodePoolData

type NodePoolData struct {
	// +kubebuilder:validation:MinLength=1
	Name string `json:"name"`
	// +kubebuilder:validation:Enum=master;worker
	Role string `json:"role"`
	// +kubebuilder:validation:MinLength=1
	HwProfile string `json:"hwProfile"`
	// ResourcePoolId is the identifier for the Resource Pool in the hardware manager instance.
	// +optional
	ResourcePoolId string `json:"resourcePoolId,omitempty"`
	// +optional
	ResourceSelector string `json:"resourceSelector,omitempty"`
}

NodePoolData provides the necessary information for populating a node pool

func (*NodePoolData) DeepCopy

func (in *NodePoolData) DeepCopy() *NodePoolData

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

func (*NodePoolData) DeepCopyInto

func (in *NodePoolData) DeepCopyInto(out *NodePoolData)

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

type NodePoolList

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

NodePoolList contains a list of node allocation requests.

+kubebuilder:object:root=true

func (*NodePoolList) DeepCopy

func (in *NodePoolList) DeepCopy() *NodePoolList

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

func (*NodePoolList) DeepCopyInto

func (in *NodePoolList) DeepCopyInto(out *NodePoolList)

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

func (*NodePoolList) DeepCopyObject

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

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

type NodePoolSpec

type NodePoolSpec struct {
	// CloudID is the identifier of the O-Cloud that generated this request. The hardware
	// manager may want to use this to tag the nodes in its database, and to generate
	// statistics.
	//
	// +kubebuilder:validation:Required
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Cloud ID",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	CloudID string `json:"cloudID"`

	// LocationSpec is the geographical location of the requested node.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Location Spec",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	LocationSpec `json:",inline"`

	// HwMgrId is the identifier for the hardware manager plugin instance.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Manager ID",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HwMgrId string `json:"hwMgrId,omitempty"`

	//+operator-sdk:csv:customresourcedefinitions:type=spec
	NodeGroup []NodeGroup `json:"nodeGroup"`

	//+operator-sdk:csv:customresourcedefinitions:type=spec
	Extensions map[string]string `json:"extensions,omitempty"`
}

NodePoolSpec describes a pool of nodes to allocate

func (*NodePoolSpec) DeepCopy

func (in *NodePoolSpec) DeepCopy() *NodePoolSpec

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

func (*NodePoolSpec) DeepCopyInto

func (in *NodePoolSpec) DeepCopyInto(out *NodePoolSpec)

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

type NodePoolStatus

type NodePoolStatus struct {
	// Properties represent the node properties in the pool
	//+operator-sdk:csv:customresourcedefinitions:type=status
	Properties Properties `json:"properties,omitempty"`

	// Conditions represent the latest available observations of an NodePool's state.
	// +optional
	// +kubebuilder:validation:Type=array
	// +kubebuilder:validation:Items=Type=object
	//+operator-sdk:csv:customresourcedefinitions:type=status
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	//+operator-sdk:csv:customresourcedefinitions:type=status
	HwMgrPlugin GenerationStatus `json:"hwMgrPlugin,omitempty"`

	//+operator-sdk:csv:customresourcedefinitions:type=status
	SelectedPools map[string]string `json:"selectedPools,omitempty"`
}

NodePoolStatus describes the observed state of a request to allocate and prepare a node that will eventually be part of a deployment manager.

func (*NodePoolStatus) DeepCopy

func (in *NodePoolStatus) DeepCopy() *NodePoolStatus

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

func (*NodePoolStatus) DeepCopyInto

func (in *NodePoolStatus) DeepCopyInto(out *NodePoolStatus)

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

type NodeSpec

type NodeSpec struct {
	// NodePool
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Pool",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	NodePool string `json:"nodePool"`

	// GroupName
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Group Name",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	GroupName string `json:"groupName"`

	// HwProfile
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Profile",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HwProfile string `json:"hwProfile"`

	// HwMgrId is the identifier for the hardware manager instance.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Manager ID",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HwMgrId string `json:"hwMgrId,omitempty"`

	// HwMgrNodeId is the node identifier from the hardware manager.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Manager Node ID",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HwMgrNodeId string `json:"hwMgrNodeId,omitempty"`

	//+operator-sdk:csv:customresourcedefinitions:type=spec
	Extensions map[string]string `json:"extensions,omitempty"`
}

NodeSpec describes a node presents a hardware server

func (*NodeSpec) DeepCopy

func (in *NodeSpec) DeepCopy() *NodeSpec

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

func (*NodeSpec) DeepCopyInto

func (in *NodeSpec) DeepCopyInto(out *NodeSpec)

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

type NodeStatus

type NodeStatus struct {
	//+operator-sdk:csv:customresourcedefinitions:type=status
	BMC *BMC `json:"bmc,omitempty"`

	//+operator-sdk:csv:customresourcedefinitions:type=status
	Interfaces []*Interface `json:"interfaces,omitempty"`

	//+operator-sdk:csv:customresourcedefinitions:type=status
	Hostname string `json:"hostname,omitempty"`

	//+operator-sdk:csv:customresourcedefinitions:type=status
	HwProfile string `json:"hwProfile,omitempty"`

	// Conditions represent the observations of the NodeStatus's current state.
	// Possible values of the condition type are `Provisioned`, `Unprovisioned`, `Updating` and `Failed`.
	//+operator-sdk:csv:customresourcedefinitions:type=status
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

NodeStatus describes the observed state of a request to allocate and prepare a node that will eventually be part of a deployment manager.

func (*NodeStatus) DeepCopy

func (in *NodeStatus) DeepCopy() *NodeStatus

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

func (*NodeStatus) DeepCopyInto

func (in *NodeStatus) DeepCopyInto(out *NodeStatus)

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

type Properties

type Properties struct {
	NodeNames []string `json:"nodeNames,omitempty"`
}

func (*Properties) DeepCopy

func (in *Properties) DeepCopy() *Properties

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

func (*Properties) DeepCopyInto

func (in *Properties) DeepCopyInto(out *Properties)

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