Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the provisioning.dpu v1alpha1 API group +kubebuilder:object:generate=true +groupName=provisioning.dpu.nvidia.com
Index ¶
- Constants
- Variables
- type BFB
- type BFBList
- type BFBPhase
- type BFBReference
- type BFBSpec
- type BFBStatus
- type ClusterEndpointSpec
- type ClusterPhase
- type ClusterSpec
- type ClusterType
- type ConditionType
- type ConfigFile
- type ContainerdConfig
- type DPU
- type DPUCluster
- type DPUClusterList
- type DPUClusterSpec
- type DPUClusterStatus
- type DPUConditionType
- type DPUFLavorSysctl
- type DPUFlavor
- type DPUFlavorFileOp
- type DPUFlavorGrub
- type DPUFlavorList
- type DPUFlavorNVConfig
- type DPUFlavorOVS
- type DPUFlavorSpec
- type DPUList
- type DPUPhase
- type DPUSet
- type DPUSetList
- type DPUSetSpec
- type DPUSetStatus
- type DPUSetStrategy
- type DPUSpec
- type DPUStatus
- type DPUTemplate
- type DPUTemplateSpec
- type Drain
- type Firmware
- type K8sCluster
- type KeepalivedSpec
- type NodeEffect
- type RollingUpdateDPU
- type StrategyType
Constants ¶
const ( FinalizerCleanUp = "provisioning.dpu.nvidia.com/cluster-manager-clean-up" FinalizerInternalCleanUp = "provisioning.dpu.nvidia.com/cluster-manager-internal-clean-up" )
const (
// BFBKind is the kind of the BFB object
BFBKind = "BFB"
)
const (
DPUClusterKind = "DPUCluster"
)
const (
// DPUClusterLabelKey is the key of the label linking objects to a specific DPU Cluster.
DPUClusterLabelKey = "dpu.nvidia.com/cluster"
)
const (
// DPUFlavorKind is the kind of the DPUFlavor object
DPUFlavorKind = "DPUFlavor"
)
const (
// DPUKind is the kind of the DPU object
DPUKind = "DPU"
)
const (
// DPUSetKind is the kind of the DPUSet object
DPUSetKind = "DPUSet"
)
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "provisioning.dpu.nvidia.com", 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 )
var BFBGroupVersionKind = GroupVersion.WithKind(BFBKind)
BFBGroupVersionKind is the GroupVersionKind of the BFB object
var DPUClusterGroupVersionKind = GroupVersion.WithKind(DPUClusterKind)
var DPUFlavorGroupVersionKind = GroupVersion.WithKind(DPUFlavorKind)
DPUFlavorGroupVersionKind is the GroupVersionKind of the DPUFlavor object
var DPUGroupVersionKind = GroupVersion.WithKind(DPUKind)
DPUGroupVersionKind is the GroupVersionKind of the DPU object
var DPUSetGroupVersionKind = GroupVersion.WithKind(DPUSetKind)
DPUSetGroupVersionKind is the GroupVersionKind of the DPUSet object
Functions ¶
This section is empty.
Types ¶
type BFB ¶
type BFB struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec BFBSpec `json:"spec,omitempty"` // +kubebuilder:default={phase: Initializing} // +optional Status BFBStatus `json:"status,omitempty"` }
BFB is the Schema for the bfbs API
func (*BFB) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BFB.
func (*BFB) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BFB) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BFBList ¶
type BFBList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []BFB `json:"items"` }
BFBList contains a list of BFB
func (*BFBList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BFBList.
func (*BFBList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*BFBList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type BFBPhase ¶
type BFBPhase string
BFBPhase describes current state of BFB CR. Only one of the following state may be specified. Default is Initializing. +kubebuilder:validation:Enum=Initializing;Downloading;Ready;Deleting;Error
const ( BFBFinalizer = "provisioning.dpu.nvidia.com/bfb-protection" // BFB CR is created BFBInitializing BFBPhase = "Initializing" // Downloading BFB file BFBDownloading BFBPhase = "Downloading" // Finished downloading BFB file, ready for DPU to use BFBReady BFBPhase = "Ready" // Delete BFB BFBDeleting BFBPhase = "Deleting" // Error happens during BFB downloading BFBError BFBPhase = "Error" )
These are the valid statuses of BFB.
type BFBReference ¶
type BFBReference struct { // Specifies name of the bfb CR to use for this DPU Name string `json:"name,omitempty"` }
BFBReference is a reference to a specific BFB
func (*BFBReference) DeepCopy ¶
func (in *BFBReference) DeepCopy() *BFBReference
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BFBReference.
func (*BFBReference) DeepCopyInto ¶
func (in *BFBReference) DeepCopyInto(out *BFBReference)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BFBSpec ¶
type BFBSpec struct { // Specifies the file name which is used to download the BFB on the volume or // use "namespace-CRD name" in case it is omitted. // +kubebuilder:validation:Pattern=`^[A-Za-z0-9\_\-\.]+\.bfb$` // +optional FileName string `json:"fileName,omitempty"` // The url of the bfb image to download. // +kubebuilder:validation:Pattern=`^(http|https)://.+\.bfb$` // +required URL string `json:"url"` }
BFBSpec defines the content of the BFB +kubebuilder:validation:XValidation:rule="self == oldSelf", message="Value is immutable"
func (*BFBSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BFBSpec.
func (*BFBSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BFBStatus ¶
type BFBStatus struct { // The current state of BFB. // +kubebuilder:default=Initializing // +required Phase BFBPhase `json:"phase"` }
BFBStatus defines the observed state of BFB
func (*BFBStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BFBStatus.
func (*BFBStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterEndpointSpec ¶
type ClusterEndpointSpec struct { // Keepalived configures the keepalived that will be deployed for the cluster control-plane // +optional Keepalived *KeepalivedSpec `json:"keepalived,omitempty"` }
func (*ClusterEndpointSpec) DeepCopy ¶
func (in *ClusterEndpointSpec) DeepCopy() *ClusterEndpointSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterEndpointSpec.
func (*ClusterEndpointSpec) DeepCopyInto ¶
func (in *ClusterEndpointSpec) DeepCopyInto(out *ClusterEndpointSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterPhase ¶
type ClusterPhase string
ClusterPhase describes current state of DPUCluster. Only one of the following state may be specified. Default is Pending. +kubebuilder:validation:Enum="Pending";"Creating";"Ready";"NotReady";"Failed"
const ( PhasePending ClusterPhase = "Pending" PhaseCreating ClusterPhase = "Creating" PhaseReady ClusterPhase = "Ready" PhaseNotReady ClusterPhase = "NotReady" PhaseFailed ClusterPhase = "Failed" )
type ClusterSpec ¶
type ClusterSpec struct { // NodeLabels specifies the labels to be added to the node. // +optional NodeLabels map[string]string `json:"nodeLabels,omitempty"` }
func (*ClusterSpec) DeepCopy ¶
func (in *ClusterSpec) DeepCopy() *ClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.
func (*ClusterSpec) DeepCopyInto ¶
func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterType ¶
type ClusterType string
const ( StaticCluster ClusterType = "static" KamajiCluster ClusterType = "kamaji" )
type ConditionType ¶
type ConditionType string
const ( ConditionCreated ConditionType = "Created" ConditionReady ConditionType = "Ready" )
type ConfigFile ¶
type ConfigFile struct { // Path is the path of the file to be written. // +optional Path string `json:"path,omitempty"` // Operation is the operation to be performed on the file. // +optional Operation DPUFlavorFileOp `json:"operation,omitempty"` // Raw is the raw content of the file. // +optional Raw string `json:"raw,omitempty"` // Permissions are the permissions to be set on the file. // +optional Permissions string `json:"permissions,omitempty"` }
func (*ConfigFile) DeepCopy ¶
func (in *ConfigFile) DeepCopy() *ConfigFile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigFile.
func (*ConfigFile) DeepCopyInto ¶
func (in *ConfigFile) DeepCopyInto(out *ConfigFile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerdConfig ¶
type ContainerdConfig struct { // RegistryEndpoint is the endpoint of the container registry. // +optional RegistryEndpoint string `json:"registryEndpoint,omitempty"` }
func (*ContainerdConfig) DeepCopy ¶
func (in *ContainerdConfig) DeepCopy() *ContainerdConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerdConfig.
func (*ContainerdConfig) DeepCopyInto ¶
func (in *ContainerdConfig) DeepCopyInto(out *ContainerdConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPU ¶
type DPU struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DPUSpec `json:"spec,omitempty"` // +kubebuilder:default={phase: Initializing} // +optional Status DPUStatus `json:"status,omitempty"` }
DPU is the Schema for the dpus API
func (*DPU) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPU.
func (*DPU) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPU) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUCluster ¶
type DPUCluster struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` // +required Spec DPUClusterSpec `json:"spec,omitempty"` // +kubebuilder:default={phase: Pending} // +optional Status DPUClusterStatus `json:"status,omitempty"` }
DPUCluster is the Schema for the dpuclusters API
func (*DPUCluster) DeepCopy ¶
func (in *DPUCluster) DeepCopy() *DPUCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUCluster.
func (*DPUCluster) DeepCopyInto ¶
func (in *DPUCluster) DeepCopyInto(out *DPUCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUCluster) DeepCopyObject ¶
func (in *DPUCluster) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUClusterList ¶
type DPUClusterList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DPUCluster `json:"items"` }
DPUClusterList contains a list of DPUCluster
func (*DPUClusterList) DeepCopy ¶
func (in *DPUClusterList) DeepCopy() *DPUClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUClusterList.
func (*DPUClusterList) DeepCopyInto ¶
func (in *DPUClusterList) DeepCopyInto(out *DPUClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUClusterList) DeepCopyObject ¶
func (in *DPUClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUClusterSpec ¶
type DPUClusterSpec struct { // Type of the cluster with few supported values // static - existing cluster that is deployed by user. For DPUCluster of this type, the kubeconfig field must be set. // kamaji - DPF managed cluster. The kamaji-cluster-manager will create a DPU cluster on behalf of this CR. // $(others) - any string defined by ISVs, such type names must start with a prefix. // +kubebuilder:validation:Pattern="kamaji|static|[^/]+/.*" // +required Type string `json:"type"` // MaxNodes is the max amount of node in the cluster // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=1000 // +kubebuilder:default=1000 // +optional MaxNodes int `json:"maxNodes,omitempty"` // Version is the K8s control-plane version of the cluster Version string `json:"version"` // Kubeconfig is the secret that contains the admin kubeconfig // +kubebuilder:validation:XValidation:rule="oldSelf==\"\"||self==oldSelf",message="kubeconfig is immutable" // +optional Kubeconfig string `json:"kubeconfig,omitempty"` // ClusterEndpoint contains configurations of the cluster entry point // +optional ClusterEndpoint *ClusterEndpointSpec `json:"clusterEndpoint,omitempty"` }
DPUClusterSpec defines the desired state of DPUCluster
func (*DPUClusterSpec) DeepCopy ¶
func (in *DPUClusterSpec) DeepCopy() *DPUClusterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUClusterSpec.
func (*DPUClusterSpec) DeepCopyInto ¶
func (in *DPUClusterSpec) DeepCopyInto(out *DPUClusterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUClusterStatus ¶
type DPUClusterStatus struct { // +kubebuilder:validation:Enum=Pending;Creating;Ready;NotReady;Failed // +kubebuilder:default="Pending" Phase ClusterPhase `json:"phase"` // +optional Conditions []metav1.Condition `json:"conditions"` }
DPUClusterStatus defines the observed state of DPUCluster
func (*DPUClusterStatus) DeepCopy ¶
func (in *DPUClusterStatus) DeepCopy() *DPUClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUClusterStatus.
func (*DPUClusterStatus) DeepCopyInto ¶
func (in *DPUClusterStatus) DeepCopyInto(out *DPUClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUConditionType ¶
type DPUConditionType string
const ( DPUCondInitialized DPUConditionType = "Initialized" DPUCondBFBReady DPUConditionType = "BFBReady" DPUCondNodeEffectReady DPUConditionType = "NodeEffectReady" DPUCondDMSRunning DPUConditionType = "DMSRunning" DPUCondOSInstalled DPUConditionType = "OSInstalled" DPUCondRebooted DPUConditionType = "Rebooted" DPUCondHostNetworkReady DPUConditionType = "HostNetworkReady" DPUCondReady DPUConditionType = "Ready" )
func (DPUConditionType) String ¶
func (ct DPUConditionType) String() string
type DPUFLavorSysctl ¶
type DPUFLavorSysctl struct { // Parameters are the sysctl parameters to be set. // +optional Parameters []string `json:"parameters,omitempty"` }
func (*DPUFLavorSysctl) DeepCopy ¶
func (in *DPUFLavorSysctl) DeepCopy() *DPUFLavorSysctl
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFLavorSysctl.
func (*DPUFLavorSysctl) DeepCopyInto ¶
func (in *DPUFLavorSysctl) DeepCopyInto(out *DPUFLavorSysctl)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUFlavor ¶
type DPUFlavor struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DPUFlavorSpec `json:"spec,omitempty"` }
DPUFlavor is the Schema for the dpuflavors API
func (*DPUFlavor) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFlavor.
func (*DPUFlavor) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUFlavor) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUFlavorFileOp ¶
type DPUFlavorFileOp string
DPUFlavorFileOp defines the operation to be performed on the file +kubebuilder:validation:Enum=override;append
const ( FileOverride DPUFlavorFileOp = "override" FileAppend DPUFlavorFileOp = "append" )
type DPUFlavorGrub ¶
type DPUFlavorGrub struct { // KernelParameters are the kernel parameters to be set in the grub configuration. // +optional KernelParameters []string `json:"kernelParameters,omitempty"` }
func (*DPUFlavorGrub) DeepCopy ¶
func (in *DPUFlavorGrub) DeepCopy() *DPUFlavorGrub
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFlavorGrub.
func (*DPUFlavorGrub) DeepCopyInto ¶
func (in *DPUFlavorGrub) DeepCopyInto(out *DPUFlavorGrub)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUFlavorList ¶
type DPUFlavorList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DPUFlavor `json:"items"` }
DPUFlavorList contains a list of DPUFlavor
func (*DPUFlavorList) DeepCopy ¶
func (in *DPUFlavorList) DeepCopy() *DPUFlavorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFlavorList.
func (*DPUFlavorList) DeepCopyInto ¶
func (in *DPUFlavorList) DeepCopyInto(out *DPUFlavorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUFlavorList) DeepCopyObject ¶
func (in *DPUFlavorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUFlavorNVConfig ¶
type DPUFlavorNVConfig struct { // Device is the device to which the configuration applies. If not specified, the configuration applies to all. // +optional Device *string `json:"device,omitempty"` // Parameters are the parameters to be set for the device. // +optional Parameters []string `json:"parameters,omitempty"` // HostPowerCycleRequired indicates if the host needs to be power cycled after applying the configuration. // +optional HostPowerCycleRequired *bool `json:"hostPowerCycleRequired,omitempty"` }
func (*DPUFlavorNVConfig) DeepCopy ¶
func (in *DPUFlavorNVConfig) DeepCopy() *DPUFlavorNVConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFlavorNVConfig.
func (*DPUFlavorNVConfig) DeepCopyInto ¶
func (in *DPUFlavorNVConfig) DeepCopyInto(out *DPUFlavorNVConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUFlavorOVS ¶
type DPUFlavorOVS struct { // RawConfigScript is the raw configuration script for OVS. // +optional RawConfigScript string `json:"rawConfigScript,omitempty"` }
func (*DPUFlavorOVS) DeepCopy ¶
func (in *DPUFlavorOVS) DeepCopy() *DPUFlavorOVS
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFlavorOVS.
func (*DPUFlavorOVS) DeepCopyInto ¶
func (in *DPUFlavorOVS) DeepCopyInto(out *DPUFlavorOVS)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUFlavorSpec ¶
type DPUFlavorSpec struct { // Grub contains the grub configuration for the DPUFlavor. // +optional Grub DPUFlavorGrub `json:"grub,omitempty"` // Sysctl contains the sysctl configuration for the DPUFlavor. // +optional Sysctl DPUFLavorSysctl `json:"sysctl,omitempty"` // NVConfig contains the configuration for the DPUFlavor. // +optional NVConfig []DPUFlavorNVConfig `json:"nvconfig,omitempty"` // OVS contains the OVS configuration for the DPUFlavor. // +optional OVS DPUFlavorOVS `json:"ovs,omitempty"` // BFCfgParameters are the parameters to be set in the bf.cfg file. // +optional BFCfgParameters []string `json:"bfcfgParameters,omitempty"` // ConfigFiles are the files to be written on the DPU. // +optional ConfigFiles []ConfigFile `json:"configFiles,omitempty"` // ContainerdConfig contains the configuration for containerd. // +optional ContainerdConfig ContainerdConfig `json:"containerdConfig,omitempty"` // DPUResources indicates the minimum amount of resources needed for a BFB with that flavor to be installed on a // DPU. Using this field, the controller can understand if that flavor can be installed on a particular DPU. It // should be set to the total amount of resources the system needs + the resources that should be made available for // DPUServices to consume. // +optional DPUResources corev1.ResourceList `json:"dpuResources,omitempty"` // SystemReservedResources indicates the resources that are consumed by the system (OS, OVS, DPF system etc) and are // not made available for DPUServices to consume. DPUServices can consume the difference between DPUResources and // SystemReservedResources. This field must not be specified if dpuResources are not specified. // +optional SystemReservedResources corev1.ResourceList `json:"systemReservedResources,omitempty"` }
DPUFlavorSpec defines the content of DPUFlavor +kubebuilder:validation:XValidation:rule="self == oldSelf",message="DPUFlavor spec is immutable"
func (*DPUFlavorSpec) DeepCopy ¶
func (in *DPUFlavorSpec) DeepCopy() *DPUFlavorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUFlavorSpec.
func (*DPUFlavorSpec) DeepCopyInto ¶
func (in *DPUFlavorSpec) DeepCopyInto(out *DPUFlavorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUList ¶
type DPUList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DPU `json:"items"` }
DPUList contains a list of DPU
func (*DPUList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUList.
func (*DPUList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUPhase ¶
type DPUPhase string
DPUPhase describes current state of DPU. Only one of the following state may be specified. Default is Initializing. +kubebuilder:validation:Enum="Initializing";"Node Effect";"Pending";"DMS Deployment";"OS Installing";"DPU Cluster Config";"Host Network Configuration";"Ready";"Error";"Deleting";"Rebooting"
const ( DPUFinalizer = "provisioning.dpu.nvidia.com/dpu-protection" // DPUInitializing is the first phase after the DPU is created. DPUInitializing DPUPhase = "Initializing" // DPUNodeEffect means the controller will handle the node effect provided by the user. DPUNodeEffect DPUPhase = "Node Effect" // DPUPending means the controller is waiting for the BFB to be ready. DPUPending DPUPhase = "Pending" // DPUDMSDeployment means the controller will create the DMS pod and proxy pod. DPUDMSDeployment DPUPhase = "DMS Deployment" // DPUOSInstalling means the controller will provision the DPU through the DMS gNOI interface. DPUOSInstalling DPUPhase = "OS Installing" // DPUClusterConfig means the node configuration and Kubernetes Node join procedure are in progress . DPUClusterConfig DPUPhase = "DPU Cluster Config" // DPUHostNetworkConfiguration means the host network configuration is running. DPUHostNetworkConfiguration DPUPhase = "Host Network Configuration" // DPUReady means the DPU is ready to use. DPUReady DPUPhase = "Ready" // DPUError means error occurred. DPUError DPUPhase = "Error" // DPUDeleting means the DPU CR will be deleted, controller will do some cleanup works. DPUDeleting DPUPhase = "Deleting" // DPURebooting means the host of DPU is rebooting. DPURebooting DPUPhase = "Rebooting" )
These are the valid statuses of DPU.
type DPUSet ¶
type DPUSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec DPUSetSpec `json:"spec,omitempty"` Status DPUSetStatus `json:"status,omitempty"` }
DPUSet is the Schema for the dpusets API
func (*DPUSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUSet.
func (*DPUSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUSet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUSetList ¶
type DPUSetList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []DPUSet `json:"items"` }
DPUSetList contains a list of DPUSet
func (*DPUSetList) DeepCopy ¶
func (in *DPUSetList) DeepCopy() *DPUSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUSetList.
func (*DPUSetList) DeepCopyInto ¶
func (in *DPUSetList) DeepCopyInto(out *DPUSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DPUSetList) DeepCopyObject ¶
func (in *DPUSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DPUSetSpec ¶
type DPUSetSpec struct { // The rolling update strategy to use to updating existing DPUs with new ones. // +optional Strategy *DPUSetStrategy `json:"strategy,omitempty"` // Select the Nodes with specific labels // +optional NodeSelector *metav1.LabelSelector `json:"nodeSelector,omitempty"` // Select the DPU with specific labels // +optional DPUSelector map[string]string `json:"dpuSelector,omitempty"` // Object that describes the DPU that will be created if insufficient replicas are detected // +optional DPUTemplate DPUTemplate `json:"dpuTemplate,omitempty"` }
DPUSetSpec defines the desired state of DPUSet
func (*DPUSetSpec) DeepCopy ¶
func (in *DPUSetSpec) DeepCopy() *DPUSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUSetSpec.
func (*DPUSetSpec) DeepCopyInto ¶
func (in *DPUSetSpec) DeepCopyInto(out *DPUSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUSetStatus ¶
type DPUSetStatus struct { // DPUStatistics is a map of DPUPhase to the number of DPUs in that phase. // +optional DPUStatistics map[DPUPhase]int `json:"dpuStatistics,omitempty"` }
DPUSetStatus defines the observed state of DPUSet
func (*DPUSetStatus) DeepCopy ¶
func (in *DPUSetStatus) DeepCopy() *DPUSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUSetStatus.
func (*DPUSetStatus) DeepCopyInto ¶
func (in *DPUSetStatus) DeepCopyInto(out *DPUSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUSetStrategy ¶
type DPUSetStrategy struct { // Can be "Recreate" or "RollingUpdate". // +kubebuilder:default=Recreate // +optional Type StrategyType `json:"type,omitempty"` // Rolling update config params. Present only if StrategyType = RollingUpdate. // +optional RollingUpdate *RollingUpdateDPU `json:"rollingUpdate,omitempty"` }
func (*DPUSetStrategy) DeepCopy ¶
func (in *DPUSetStrategy) DeepCopy() *DPUSetStrategy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUSetStrategy.
func (*DPUSetStrategy) DeepCopyInto ¶
func (in *DPUSetStrategy) DeepCopyInto(out *DPUSetStrategy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUSpec ¶
type DPUSpec struct { // Specifies Node this DPU belongs to // +kubebuilder:validation:XValidation:rule="self == oldSelf", message="Value is immutable" // +required NodeName string `json:"nodeName"` // Specifies name of the bfb CR to use for this DPU // +required BFB string `json:"bfb"` // The PCI device related DPU // +kubebuilder:validation:XValidation:rule="self == oldSelf", message="Value is immutable" // +optional PCIAddress string `json:"pciAddress,omitempty"` // Specifies how changes to the DPU should affect the Node // +kubebuilder:default={drain: {automaticNodeReboot: true}} // +optional NodeEffect *NodeEffect `json:"nodeEffect,omitempty"` // Specifies details on the K8S cluster to join // +optional Cluster K8sCluster `json:"cluster,omitempty"` // DPUFlavor is the name of the DPUFlavor that will be used to deploy the DPU. // +optional DPUFlavor string `json:"dpuFlavor,omitempty"` // Specifies if the DPU controller should automatically reboot the node on upgrades, // this field is intended for advanced cases that don’t use draining but want to reboot the host based with custom logic // +kubebuilder:default=true // +optional AutomaticNodeReboot bool `json:"automaticNodeReboot,omitempty"` }
DPUSpec defines the desired state of DPU
func (*DPUSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUSpec.
func (*DPUSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUStatus ¶
type DPUStatus struct { // The current state of DPU. // +kubebuilder:default=Initializing // +required Phase DPUPhase `json:"phase"` // +optional Conditions []metav1.Condition `json:"conditions"` // bfb version of this DPU // +optional BFBVersion string `json:"bfbVersion,omitempty"` // pci device information of this DPU // +optional PCIDevice string `json:"pciDevice,omitempty"` // whether require reset of DPU // +optional RequiredReset *bool `json:"requiredReset,omitempty"` // the firmware information of DPU // +optional Firmware Firmware `json:"firmware,omitempty"` }
DPUStatus defines the observed state of DPU
func (*DPUStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUStatus.
func (*DPUStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUTemplate ¶
type DPUTemplate struct { // Annotations specifies annotations which are added to the DPU. Annotations map[string]string `json:"annotations,omitempty"` // Spec specifies the DPU specification. Spec DPUTemplateSpec `json:"spec,omitempty"` }
DPUTemplate is a template for DPU
func (*DPUTemplate) DeepCopy ¶
func (in *DPUTemplate) DeepCopy() *DPUTemplate
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUTemplate.
func (*DPUTemplate) DeepCopyInto ¶
func (in *DPUTemplate) DeepCopyInto(out *DPUTemplate)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DPUTemplateSpec ¶
type DPUTemplateSpec struct { // Specifies a BFB CR BFB BFBReference `json:"bfb,omitempty"` // Specifies how changes to the DPU should affect the Node // +kubebuilder:default={drain: {automaticNodeReboot: true}} // +optional NodeEffect *NodeEffect `json:"nodeEffect,omitempty"` // Specifies details on the K8S cluster to join // +optional Cluster *ClusterSpec `json:"cluster,omitempty"` // DPUFlavor is the name of the DPUFlavor that will be used to deploy the DPU. // +optional DPUFlavor string `json:"dpuFlavor"` // Specifies if the DPU controller should automatically reboot the node on upgrades, // this field is intended for advanced cases that don’t use draining but want to reboot the host based with custom logic // +kubebuilder:default=true // +optional AutomaticNodeReboot *bool `json:"automaticNodeReboot,omitempty"` }
func (*DPUTemplateSpec) DeepCopy ¶
func (in *DPUTemplateSpec) DeepCopy() *DPUTemplateSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DPUTemplateSpec.
func (*DPUTemplateSpec) DeepCopyInto ¶
func (in *DPUTemplateSpec) DeepCopyInto(out *DPUTemplateSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Drain ¶
type Drain struct { // Specifies if the DPU controller should automatically reboot the node on upgrades // +kubebuilder:default=true // +optional AutomaticNodeReboot bool `json:"automaticNodeReboot,omitempty"` }
Drain the K8s host node by NodeMaintenance operator
func (*Drain) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Drain.
func (*Drain) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Firmware ¶
type Firmware struct { // BMC is the used BMC firmware version BMC string `json:"bmc,omitempty"` // NIC is the used NIC firmware version NIC string `json:"nic,omitempty"` // UEFI is the used UEFI firmware version UEFI string `json:"uefi,omitempty"` }
func (*Firmware) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Firmware.
func (*Firmware) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type K8sCluster ¶
type K8sCluster struct { // Name is the name of the DPUs Kubernetes cluster // +kubebuilder:validation:XValidation:rule="self==oldSelf", message="Value is immutable" // +optional Name string `json:"name,omitempty"` // Namespace is the tenants namespace name where the Kubernetes cluster will be deployed // +kubebuilder:validation:XValidation:rule="self==oldSelf", message="Value is immutable" // +optional Namespace string `json:"namespace,omitempty"` // NodeLabels define the labels that will be added to the nodes. // +optional NodeLabels map[string]string `json:"nodeLabels,omitempty"` }
func (*K8sCluster) DeepCopy ¶
func (in *K8sCluster) DeepCopy() *K8sCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K8sCluster.
func (*K8sCluster) DeepCopyInto ¶
func (in *K8sCluster) DeepCopyInto(out *K8sCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KeepalivedSpec ¶
type KeepalivedSpec struct { // VIP is the virtual IP owned by the keepalived instances VIP string `json:"vip"` // VirtualRouterID is the virtual_router_id in keepalived.conf // +kubebuilder:validation:Minimum=1 // +kubebuilder:validation:Maximum=255 VirtualRouterID int `json:"virtualRouterID"` // Interface specifies on which interface the VIP should be assigned // +kubebuilder:validation:MinLength=1 Interface string `json:"interface"` // NodeSelector is used to specify a subnet of control plane nodes to deploy keepalived instances. // Note: keepalived instances are always deployed on control plane nodes // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` }
func (*KeepalivedSpec) DeepCopy ¶
func (in *KeepalivedSpec) DeepCopy() *KeepalivedSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeepalivedSpec.
func (*KeepalivedSpec) DeepCopyInto ¶
func (in *KeepalivedSpec) DeepCopyInto(out *KeepalivedSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeEffect ¶
type NodeEffect struct { // Add specify taint on the DPU node // +optional Taint *corev1.Taint `json:"taint,omitempty"` // Do not do any action on the DPU node // +optional NoEffect bool `json:"noEffect,omitempty"` // Add specify labels on the DPU node // +optional CustomLabel map[string]string `json:"customLabel,omitempty"` // Drain the K8s host node by NodeMaintenance operator // +optional Drain *Drain `json:"drain,omitempty"` }
func (*NodeEffect) DeepCopy ¶
func (in *NodeEffect) DeepCopy() *NodeEffect
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeEffect.
func (*NodeEffect) DeepCopyInto ¶
func (in *NodeEffect) DeepCopyInto(out *NodeEffect)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type RollingUpdateDPU ¶
type RollingUpdateDPU struct { // +optional MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` }
RollingUpdateDPU is the rolling update strategy for a DPUSet.
func (*RollingUpdateDPU) DeepCopy ¶
func (in *RollingUpdateDPU) DeepCopy() *RollingUpdateDPU
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDPU.
func (*RollingUpdateDPU) DeepCopyInto ¶
func (in *RollingUpdateDPU) DeepCopyInto(out *RollingUpdateDPU)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StrategyType ¶
type StrategyType string
StrategyType describes strategy to use to reprovision existing DPUs. Default is "Recreate". +kubebuilder:validation:Enum=Recreate;RollingUpdate
const ( DPUSetFinalizer = "provisioning.dpu.nvidia.com/dpuset-protection" // Delete all the existing DPUs before creating new ones. RecreateStrategyType StrategyType = "Recreate" // Gradually scale down the old DPUs and scale up the new one. RollingUpdateStrategyType StrategyType = "RollingUpdate" )