v1alpha1

package
v0.0.0-...-5d67056 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2025 License: Apache-2.0 Imports: 6 Imported by: 1

Documentation

Overview

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

+kubebuilder:object:generate=true +groupName=plugins.clcm.openshift.io

Index

Constants

View Source
const (
	BootInterfaceLabelAnnotation = "clcm.openshift.io/boot-interface-label"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "plugins.clcm.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 AllocatedNode

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

	Spec   AllocatedNodeSpec   `json:"spec,omitempty"`
	Status AllocatedNodeStatus `json:"status,omitempty"`
}

AllocatedNode is the schema for an allocated node

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=allocatednodes,shortName=allocatednode +kubebuilder:printcolumn:name="Plugin",type="string",JSONPath=".spec.hardwarePluginRef" +kubebuilder:printcolumn:name="NodeAllocationRequest",type="string",JSONPath=".spec.nodeAllocationRequest" +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="Allocated Node",resources={{Namespace, v1}}

func (*AllocatedNode) DeepCopy

func (in *AllocatedNode) DeepCopy() *AllocatedNode

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

func (*AllocatedNode) DeepCopyInto

func (in *AllocatedNode) DeepCopyInto(out *AllocatedNode)

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

func (*AllocatedNode) DeepCopyObject

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

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

type AllocatedNodeList

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

AllocatedNodeList contains a list of provisioned node.

+kubebuilder:object:root=true

func (*AllocatedNodeList) DeepCopy

func (in *AllocatedNodeList) DeepCopy() *AllocatedNodeList

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

func (*AllocatedNodeList) DeepCopyInto

func (in *AllocatedNodeList) DeepCopyInto(out *AllocatedNodeList)

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

func (*AllocatedNodeList) DeepCopyObject

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

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

type AllocatedNodeSpec

type AllocatedNodeSpec struct {
	// NodeAllocationRequest
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Node Allocation Request",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	NodeAllocationRequest string `json:"nodeAllocationRequest"`

	// 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"`

	// HardwarePluginRef is the identifier for the HardwarePlugin instance.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Plugin Reference",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HardwarePluginRef string `json:"hardwarePluginRef,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"`

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

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

AllocatedNodeSpec describes a node presents a hardware server

func (*AllocatedNodeSpec) DeepCopy

func (in *AllocatedNodeSpec) DeepCopy() *AllocatedNodeSpec

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

func (*AllocatedNodeSpec) DeepCopyInto

func (in *AllocatedNodeSpec) DeepCopyInto(out *AllocatedNodeSpec)

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

type AllocatedNodeStatus

type AllocatedNodeStatus 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 AllocatedNodeStatus'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"`
}

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

func (*AllocatedNodeStatus) DeepCopy

func (in *AllocatedNodeStatus) DeepCopy() *AllocatedNodeStatus

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

func (*AllocatedNodeStatus) DeepCopyInto

func (in *AllocatedNodeStatus) DeepCopyInto(out *AllocatedNodeStatus)

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

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 Callback

type Callback struct {
	// CallbackURL is the URL to call when the NodeAllocationRequest operation is completed or fails.
	// The callback will be made as a POST request with CallbackPayload in the request body.
	// +kubebuilder:validation:Required
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Callback URL",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	CallbackURL string `json:"callbackURL"`

	// CaBundleName references a config map that contains a set of custom CA certificates
	// to use when verifying the certificate of the callback URL server. The config map
	// must contain a key named 'ca-bundle.crt' which contains one or more CA certificates
	// in PEM format.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="CA Bundle Name",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	CaBundleName *string `json:"caBundleName,omitempty"`

	// AuthClientConfig defines the authentication configuration for the callback requests.
	// This allows configuring how the plugin should authenticate when making callback requests
	// to the specified CallbackURL.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Authentication Configuration"
	AuthClientConfig *common.AuthClientConfig `json:"authClientConfig,omitempty"`
}

Callback defines the configuration for receiving notifications when a NodeAllocationRequest operation is completed or fails.

func (*Callback) DeepCopy

func (in *Callback) DeepCopy() *Callback

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

func (*Callback) DeepCopyInto

func (in *Callback) DeepCopyInto(out *Callback)

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

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 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 NodeAllocationRequest

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

	Spec   NodeAllocationRequestSpec   `json:"spec,omitempty"`
	Status NodeAllocationRequestStatus `json:"status,omitempty"`
}

NodeAllocationRequest is the schema for an allocation request of nodes

+kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=nodeallocationrequests,shortName=nar +kubebuilder:printcolumn:name="HardwarePlugin",type="string",JSONPath=".spec.hardwarePluginRef" +kubebuilder:printcolumn:name="Cluster ID",type="string",JSONPath=".spec.clusterId" +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 Allocation Request",resources={{Namespace, v1}}

func (*NodeAllocationRequest) DeepCopy

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

func (*NodeAllocationRequest) DeepCopyInto

func (in *NodeAllocationRequest) DeepCopyInto(out *NodeAllocationRequest)

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

func (*NodeAllocationRequest) DeepCopyObject

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

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

type NodeAllocationRequestList

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

NodeAllocationRequestList contains a list of node allocation requests.

+kubebuilder:object:root=true

func (*NodeAllocationRequestList) DeepCopy

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

func (*NodeAllocationRequestList) DeepCopyInto

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

func (*NodeAllocationRequestList) DeepCopyObject

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

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

type NodeAllocationRequestSpec

type NodeAllocationRequestSpec struct {
	// ClusterID 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="Cluster ID",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	ClusterId string `json:"clusterId"`

	// 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"`

	// HardwarePluginRef is the name of the HardwarePlugin.
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Hardware Plugin Reference",xDescriptors={"urn:alm:descriptor:com.tectonic.ui:text"}
	HardwarePluginRef string `json:"hardwarePluginRef,omitempty"`

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

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

	//+operator-sdk:csv:customresourcedefinitions:type=spec
	ConfigTransactionId int64 `json:"configTransactionId"`

	// 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"`

	// Callback defines the configuration for receiving notifications when the NodeAllocationRequest
	// operation is completed or fails. If not specified, no callback will be made.
	// +optional
	//+operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Callback Configuration"
	Callback *Callback `json:"callback,omitempty"`
}

NodeAllocationRequestSpec describes a group of nodes to allocate

func (*NodeAllocationRequestSpec) DeepCopy

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

func (*NodeAllocationRequestSpec) DeepCopyInto

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

type NodeAllocationRequestStatus

type NodeAllocationRequestStatus 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 NodeAllocationRequest'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
	ObservedConfigTransactionId int64 `json:"observedConfigTransactionId"`

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

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

func (*NodeAllocationRequestStatus) DeepCopy

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

func (*NodeAllocationRequestStatus) DeepCopyInto

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

type NodeGroup

type NodeGroup struct {
	NodeGroupData hwmgmtv1alpha1.NodeGroupData `json:"nodeGroupData"` // 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 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