v1alpha1

package
v0.0.0-...-1f6a80c Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2024 License: Apache-2.0 Imports: 6 Imported by: 0

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

View Source
const (
	FinalizerCleanUp         = "provisioning.dpu.nvidia.com/cluster-manager-clean-up"
	FinalizerInternalCleanUp = "provisioning.dpu.nvidia.com/cluster-manager-internal-clean-up"
)
View Source
const (
	// BFBKind is the kind of the BFB object
	BFBKind = "BFB"
)
View Source
const (
	DPUClusterKind = "DPUCluster"
)
View Source
const (
	// DPUClusterLabelKey is the key of the label linking objects to a specific DPU Cluster.
	DPUClusterLabelKey = "dpu.nvidia.com/cluster"
)
View Source
const (
	// DPUFlavorKind is the kind of the DPUFlavor object
	DPUFlavorKind = "DPUFlavor"
)
View Source
const (
	// DPUKind is the kind of the DPU object
	DPUKind = "DPU"
)
View Source
const (
	// DPUSetKind is the kind of the DPUSet object
	DPUSetKind = "DPUSet"
)

Variables

View Source
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
)
View Source
var BFBGroupVersionKind = GroupVersion.WithKind(BFBKind)

BFBGroupVersionKind is the GroupVersionKind of the BFB object

View Source
var DPUClusterGroupVersionKind = GroupVersion.WithKind(DPUClusterKind)
View Source
var DPUFlavorGroupVersionKind = GroupVersion.WithKind(DPUFlavorKind)

DPUFlavorGroupVersionKind is the GroupVersionKind of the DPUFlavor object

View Source
var DPUGroupVersionKind = GroupVersion.WithKind(DPUKind)

DPUGroupVersionKind is the GroupVersionKind of the DPU object

View Source
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

func (in *BFB) DeepCopy() *BFB

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

func (*BFB) DeepCopyInto

func (in *BFB) DeepCopyInto(out *BFB)

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

func (*BFB) DeepCopyObject

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

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

func (in *BFBList) DeepCopy() *BFBList

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

func (*BFBList) DeepCopyInto

func (in *BFBList) DeepCopyInto(out *BFBList)

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

func (*BFBList) DeepCopyObject

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

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

func (in *BFBSpec) DeepCopy() *BFBSpec

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

func (*BFBSpec) DeepCopyInto

func (in *BFBSpec) DeepCopyInto(out *BFBSpec)

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

func (in *BFBStatus) DeepCopy() *BFBStatus

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

func (*BFBStatus) DeepCopyInto

func (in *BFBStatus) DeepCopyInto(out *BFBStatus)

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

func (in *DPU) DeepCopy() *DPU

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

func (*DPU) DeepCopyInto

func (in *DPU) DeepCopyInto(out *DPU)

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

func (*DPU) DeepCopyObject

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

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

func (in *DPUFlavor) DeepCopy() *DPUFlavor

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

func (*DPUFlavor) DeepCopyInto

func (in *DPUFlavor) DeepCopyInto(out *DPUFlavor)

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

func (*DPUFlavor) DeepCopyObject

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

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

func (in *DPUList) DeepCopy() *DPUList

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

func (*DPUList) DeepCopyInto

func (in *DPUList) DeepCopyInto(out *DPUList)

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

func (*DPUList) DeepCopyObject

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

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

func (in *DPUSet) DeepCopy() *DPUSet

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

func (*DPUSet) DeepCopyInto

func (in *DPUSet) DeepCopyInto(out *DPUSet)

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

func (*DPUSet) DeepCopyObject

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

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

func (in *DPUSpec) DeepCopy() *DPUSpec

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

func (*DPUSpec) DeepCopyInto

func (in *DPUSpec) DeepCopyInto(out *DPUSpec)

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

func (in *DPUStatus) DeepCopy() *DPUStatus

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

func (*DPUStatus) DeepCopyInto

func (in *DPUStatus) DeepCopyInto(out *DPUStatus)

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

func (in *Drain) DeepCopy() *Drain

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

func (*Drain) DeepCopyInto

func (in *Drain) DeepCopyInto(out *Drain)

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

func (in *Firmware) DeepCopy() *Firmware

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

func (*Firmware) DeepCopyInto

func (in *Firmware) DeepCopyInto(out *Firmware)

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 {
	// MaxUnavailable is the maximum number of DPUs that can be unavailable during the update.
	// +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"
)

Jump to

Keyboard shortcuts

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