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
- Variables
- type AllocatedNode
- type AllocatedNodeList
- type AllocatedNodeSpec
- type AllocatedNodeStatus
- type BMC
- type Callback
- type GenerationStatus
- type Interface
- type LocationSpec
- type NodeAllocationRequest
- type NodeAllocationRequestList
- type NodeAllocationRequestSpec
- type NodeAllocationRequestStatus
- type NodeGroup
- type Properties
Constants ¶
const (
BootInterfaceLabelAnnotation = "clcm.openshift.io/boot-interface-label"
)
Variables ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BMC.
func (*BMC) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Callback.
func (*Callback) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Interface.
func (*Interface) DeepCopyInto ¶
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 ¶
func (in *NodeAllocationRequest) DeepCopy() *NodeAllocationRequest
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 ¶
func (in *NodeAllocationRequestList) DeepCopy() *NodeAllocationRequestList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAllocationRequestList.
func (*NodeAllocationRequestList) DeepCopyInto ¶
func (in *NodeAllocationRequestList) DeepCopyInto(out *NodeAllocationRequestList)
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 ¶
func (in *NodeAllocationRequestSpec) DeepCopy() *NodeAllocationRequestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAllocationRequestSpec.
func (*NodeAllocationRequestSpec) DeepCopyInto ¶
func (in *NodeAllocationRequestSpec) DeepCopyInto(out *NodeAllocationRequestSpec)
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 ¶
func (in *NodeAllocationRequestStatus) DeepCopy() *NodeAllocationRequestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAllocationRequestStatus.
func (*NodeAllocationRequestStatus) DeepCopyInto ¶
func (in *NodeAllocationRequestStatus) DeepCopyInto(out *NodeAllocationRequestStatus)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroup.
func (*NodeGroup) DeepCopyInto ¶
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.