Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the nvidia v1alpha1 API group +kubebuilder:object:generate=true +groupName=nvidia.com
Index ¶
- Constants
- Variables
- type ContainerProbeSpec
- type DriverCertConfigSpec
- type DriverLicensingConfigSpec
- type DriverManagerSpec
- type DriverRepoConfigSpec
- type DriverType
- type EnvVar
- type GDRCopySpec
- type GPUDirectRDMASpec
- type GPUDirectStorageSpec
- type KernelModuleConfigSpec
- type NVIDIADriver
- type NVIDIADriverList
- type NVIDIADriverSpec
- func (in *NVIDIADriverSpec) DeepCopy() *NVIDIADriverSpec
- func (in *NVIDIADriverSpec) DeepCopyInto(out *NVIDIADriverSpec)
- func (d *NVIDIADriverSpec) GetImagePath(osVersion string) (string, error)
- func (d *NVIDIADriverSpec) GetPrecompiledImagePath(osVersion string, kernelVersion string) (string, error)
- func (d *NVIDIADriverSpec) IsCertConfigEnabled() bool
- func (d *NVIDIADriverSpec) IsGDRCopyEnabled() bool
- func (d *NVIDIADriverSpec) IsGDSEnabled() bool
- func (d *NVIDIADriverSpec) IsKernelModuleConfigEnabled() bool
- func (d *NVIDIADriverSpec) IsOpenKernelModulesEnabled() bool
- func (d *NVIDIADriverSpec) IsOpenKernelModulesRequired() bool
- func (d *NVIDIADriverSpec) IsRepoConfigEnabled() bool
- func (d *NVIDIADriverSpec) IsVGPULicensingEnabled() bool
- func (d *NVIDIADriverSpec) IsVirtualTopologyConfigEnabled() bool
- func (d *NVIDIADriverSpec) UsePrecompiledDrivers() bool
- type NVIDIADriverStatus
- type ResourceRequirements
- type State
- type VirtualTopologyConfigSpec
Constants ¶
const (
NVIDIADriverCRDName = "NVIDIADriver"
)
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "nvidia.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ContainerProbeSpec ¶
type ContainerProbeSpec struct {
// Number of seconds after the container has started before liveness probes are initiated.
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
// +kubebuilder:validation:Optional
InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"`
// Number of seconds after which the probe times out.
// Defaults to 1 second. Minimum value is 1.
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=1
TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"`
// How often (in seconds) to perform the probe.
// Default to 10 seconds. Minimum value is 1.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=1
PeriodSeconds int32 `json:"periodSeconds,omitempty"`
// Minimum consecutive successes for the probe to be considered successful after having failed.
// Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=1
SuccessThreshold int32 `json:"successThreshold,omitempty"`
// Minimum consecutive failures for the probe to be considered failed after having succeeded.
// Defaults to 3. Minimum value is 1.
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Minimum=1
FailureThreshold int32 `json:"failureThreshold,omitempty"`
}
ContainerProbeSpec defines the properties for configuring container probes
func (*ContainerProbeSpec) DeepCopy ¶
func (in *ContainerProbeSpec) DeepCopy() *ContainerProbeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerProbeSpec.
func (*ContainerProbeSpec) DeepCopyInto ¶
func (in *ContainerProbeSpec) DeepCopyInto(out *ContainerProbeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverCertConfigSpec ¶
type DriverCertConfigSpec struct {
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="ConfigMap Name"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
Name string `json:"name,omitempty"`
}
DriverCertConfigSpec defines custom certificates configuration for NVIDIA Driver container
func (*DriverCertConfigSpec) DeepCopy ¶
func (in *DriverCertConfigSpec) DeepCopy() *DriverCertConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriverCertConfigSpec.
func (*DriverCertConfigSpec) DeepCopyInto ¶
func (in *DriverCertConfigSpec) DeepCopyInto(out *DriverCertConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverLicensingConfigSpec ¶
type DriverLicensingConfigSpec struct {
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Secret Name"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
SecretName string `json:"secretName,omitempty"`
// Deprecated: ConfigMapName has been deprecated in favour of SecretName. Please use secrets to handle the licensing server configuration more securely
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="ConfigMap Name"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
Name string `json:"name,omitempty"`
// NLSEnabled indicates if NVIDIA Licensing System is used for licensing.
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable NVIDIA Licensing System licensing"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
NLSEnabled *bool `json:"nlsEnabled,omitempty"`
}
DriverLicensingConfigSpec defines licensing server configuration for NVIDIA Driver container
func (*DriverLicensingConfigSpec) DeepCopy ¶
func (in *DriverLicensingConfigSpec) DeepCopy() *DriverLicensingConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriverLicensingConfigSpec.
func (*DriverLicensingConfigSpec) DeepCopyInto ¶
func (in *DriverLicensingConfigSpec) DeepCopyInto(out *DriverLicensingConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DriverLicensingConfigSpec) IsNLSEnabled ¶
func (l *DriverLicensingConfigSpec) IsNLSEnabled() bool
IsNLSEnabled returns true if NLS should be used for licensing the driver
type DriverManagerSpec ¶
type DriverManagerSpec struct {
// Repository represents Driver Managerrepository path
Repository string `json:"repository,omitempty"`
// Image represents NVIDIA Driver Manager image name
// +kubebuilder:validation:Pattern=[a-zA-Z0-9\-]+
Image string `json:"image,omitempty"`
// Version represents NVIDIA Driver Manager image tag(version)
Version string `json:"version,omitempty"`
// Image pull policy
// +kubebuilder:validation:Optional
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// Image pull secrets
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image pull secrets"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:Secret"
ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`
// Optional: List of environment variables
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Environment Variables"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Env []EnvVar `json:"env,omitempty"`
}
DriverManagerSpec describes configuration for NVIDIA Driver Manager(initContainer)
func (*DriverManagerSpec) DeepCopy ¶
func (in *DriverManagerSpec) DeepCopy() *DriverManagerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriverManagerSpec.
func (*DriverManagerSpec) DeepCopyInto ¶
func (in *DriverManagerSpec) DeepCopyInto(out *DriverManagerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverRepoConfigSpec ¶
type DriverRepoConfigSpec struct {
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="ConfigMap Name"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
Name string `json:"name,omitempty"`
}
DriverRepoConfigSpec defines custom repo configuration for NVIDIA Driver container
func (*DriverRepoConfigSpec) DeepCopy ¶
func (in *DriverRepoConfigSpec) DeepCopy() *DriverRepoConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DriverRepoConfigSpec.
func (*DriverRepoConfigSpec) DeepCopyInto ¶
func (in *DriverRepoConfigSpec) DeepCopyInto(out *DriverRepoConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DriverType ¶
type DriverType string
DriverType defines NVIDIA driver type
const ( // GPU driver type GPU DriverType = "gpu" // VGPU guest driver type VGPU DriverType = "vgpu" // VGPUHostManager specifies vgpu host manager type VGPUHostManager DriverType = "vgpu-host-manager" )
type EnvVar ¶
type EnvVar struct {
// Name of the environment variable.
Name string `json:"name"`
// Value of the environment variable.
Value string `json:"value,omitempty"`
}
EnvVar represents an environment variable present in a Container.
func (*EnvVar) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.
func (*EnvVar) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GDRCopySpec ¶
type GDRCopySpec struct {
// Enabled indicates if GDRCopy is enabled through GPU operator
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable GDRCopy through GPU operator"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
Enabled *bool `json:"enabled,omitempty"`
// GDRCopy diver image repository
// +kubebuilder:validation:Optional
Repository string `json:"repository,omitempty"`
// GDRCopy driver image name
// +kubebuilder:validation:Pattern=[a-zA-Z0-9\-]+
Image string `json:"image,omitempty"`
// GDRCopy driver image tag
// +kubebuilder:validation:Optional
Version string `json:"version,omitempty"`
// Image pull policy
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image Pull Policy"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:imagePullPolicy"
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// Image pull secrets
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image pull secrets"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:Secret"
ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`
// Optional: List of arguments
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Arguments"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Args []string `json:"args,omitempty"`
// Optional: List of environment variables
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Environment Variables"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Env []EnvVar `json:"env,omitempty"`
}
GDRCopySpec defines the properties for NVIDIA GDRCopy driver deployment
func (*GDRCopySpec) DeepCopy ¶
func (in *GDRCopySpec) DeepCopy() *GDRCopySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GDRCopySpec.
func (*GDRCopySpec) DeepCopyInto ¶
func (in *GDRCopySpec) DeepCopyInto(out *GDRCopySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GDRCopySpec) GetImagePath ¶
func (d *GDRCopySpec) GetImagePath(osVersion string) (string, error)
GetImagePath returns the gdrcopy driver image path given the information provided in GDRCopySpec and the osVersion passed as an argument. The driver image path will be in the following format unless the spec contains a digest. <repository>/<image>:<driver-ver>-<os-ver>
type GPUDirectRDMASpec ¶
type GPUDirectRDMASpec struct {
// Enabled indicates if GPUDirect RDMA is enabled through GPU operator
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable GPUDirect RDMA through GPU operator"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
Enabled *bool `json:"enabled,omitempty"`
// UseHostMOFED indicates to use MOFED drivers directly installed on the host to enable GPUDirect RDMA
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Use MOFED drivers directly installed on the host to enable GPUDirect RDMA"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
UseHostMOFED *bool `json:"useHostMofed,omitempty"`
}
GPUDirectRDMASpec defines the properties for nvidia-peermem deployment
func (*GPUDirectRDMASpec) DeepCopy ¶
func (in *GPUDirectRDMASpec) DeepCopy() *GPUDirectRDMASpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GPUDirectRDMASpec.
func (*GPUDirectRDMASpec) DeepCopyInto ¶
func (in *GPUDirectRDMASpec) DeepCopyInto(out *GPUDirectRDMASpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GPUDirectStorageSpec ¶
type GPUDirectStorageSpec struct {
// Enabled indicates if GPUDirect Storage is enabled through GPU operator
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable GPUDirect Storage through GPU operator"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
Enabled *bool `json:"enabled,omitempty"`
// NVIDIA GPUDirect Storage Driver image repository
// +kubebuilder:validation:Optional
Repository string `json:"repository,omitempty"`
// NVIDIA GPUDirect Storage Driver image name
// +kubebuilder:validation:Pattern=[a-zA-Z0-9\-]+
Image string `json:"image,omitempty"`
// NVIDIA GPUDirect Storage Driver image tag
// +kubebuilder:validation:Optional
Version string `json:"version,omitempty"`
// Image pull policy
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image Pull Policy"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:imagePullPolicy"
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// Image pull secrets
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image pull secrets"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:Secret"
ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`
// Optional: List of arguments
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Arguments"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Args []string `json:"args,omitempty"`
// Optional: List of environment variables
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Environment Variables"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Env []EnvVar `json:"env,omitempty"`
}
GPUDirectStorageSpec defines the properties for NVIDIA GPUDirect Storage Driver deployment(Experimental)
func (*GPUDirectStorageSpec) DeepCopy ¶
func (in *GPUDirectStorageSpec) DeepCopy() *GPUDirectStorageSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GPUDirectStorageSpec.
func (*GPUDirectStorageSpec) DeepCopyInto ¶
func (in *GPUDirectStorageSpec) DeepCopyInto(out *GPUDirectStorageSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GPUDirectStorageSpec) GetImagePath ¶
func (d *GPUDirectStorageSpec) GetImagePath(osVersion string) (string, error)
GetImagePath returns the gds driver image path given the information provided in GPUDirectStorageSpec and the osVersion passed as an argument. The driver image path will be in the following format unless the spec contains a digest. <repository>/<image>:<driver-ver>-<os-ver>
type KernelModuleConfigSpec ¶
type KernelModuleConfigSpec struct {
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="ConfigMap Name"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
Name string `json:"name,omitempty"`
}
KernelModuleConfigSpec defines custom configuration parameters for the NVIDIA Driver
func (*KernelModuleConfigSpec) DeepCopy ¶
func (in *KernelModuleConfigSpec) DeepCopy() *KernelModuleConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KernelModuleConfigSpec.
func (*KernelModuleConfigSpec) DeepCopyInto ¶
func (in *KernelModuleConfigSpec) DeepCopyInto(out *KernelModuleConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NVIDIADriver ¶
type NVIDIADriver struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NVIDIADriverSpec `json:"spec,omitempty"`
Status NVIDIADriverStatus `json:"status,omitempty"`
}
NVIDIADriver is the Schema for the nvidiadrivers API
func (*NVIDIADriver) DeepCopy ¶
func (in *NVIDIADriver) DeepCopy() *NVIDIADriver
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NVIDIADriver.
func (*NVIDIADriver) DeepCopyInto ¶
func (in *NVIDIADriver) DeepCopyInto(out *NVIDIADriver)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NVIDIADriver) DeepCopyObject ¶
func (in *NVIDIADriver) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NVIDIADriver) GetNodeSelector ¶
func (d *NVIDIADriver) GetNodeSelector() map[string]string
GetNodeSelector returns node selector labels for NVIDIA driver installation
type NVIDIADriverList ¶
type NVIDIADriverList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NVIDIADriver `json:"items"`
}
NVIDIADriverList contains a list of NVIDIADriver
func (*NVIDIADriverList) DeepCopy ¶
func (in *NVIDIADriverList) DeepCopy() *NVIDIADriverList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NVIDIADriverList.
func (*NVIDIADriverList) DeepCopyInto ¶
func (in *NVIDIADriverList) DeepCopyInto(out *NVIDIADriverList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NVIDIADriverList) DeepCopyObject ¶
func (in *NVIDIADriverList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NVIDIADriverSpec ¶
type NVIDIADriverSpec struct {
// +kubebuilder:validation:Enum=gpu;vgpu;vgpu-host-manager
// +kubebuilder:default=gpu
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="driverType is an immutable field. Please create a new NvidiaDriver resource instead when you want to change this setting."
DriverType DriverType `json:"driverType"`
// UsePrecompiled indicates if deployment of NVIDIA Driver using pre-compiled modules is enabled
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable NVIDIA Driver deployment using pre-compiled modules"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch"
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="usePrecompiled is an immutable field. Please create a new NvidiaDriver resource instead when you want to change this setting."
UsePrecompiled *bool `json:"usePrecompiled,omitempty"`
// Deprecated: This field is no longer honored by the gpu-operator. Please use KernelModuleType instead.
// UseOpenKernelModules indicates if the open GPU kernel modules should be used
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Enable use of open GPU kernel modules"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:booleanSwitch,urn:alm:descriptor:com.tectonic.ui:hidden"
UseOpenKernelModules *bool `json:"useOpenKernelModules,omitempty"`
// KernelModuleType represents the type of driver kernel modules to be used when installing the GPU driver.
// Accepted values are auto, proprietary and open. NOTE: If auto is chosen, it means that the recommended kernel module
// type is chosen based on the GPU devices on the host and the driver branch used
// +kubebuilder:validation:Enum=auto;open;proprietary
// +kubebuilder:default=auto
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Kernel Module Type"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.description="Kernel Module Type"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:select:auto,urn:alm:descriptor:com.tectonic.ui:select:open,urn:alm:descriptor:com.tectonic.ui:select:proprietary"
KernelModuleType string `json:"kernelModuleType,omitempty"`
// NVIDIA Driver container startup probe settings
StartupProbe *ContainerProbeSpec `json:"startupProbe,omitempty"`
// NVIDIA Driver container liveness probe settings
LivenessProbe *ContainerProbeSpec `json:"livenessProbe,omitempty"`
// NVIDIA Driver container readiness probe settings
ReadinessProbe *ContainerProbeSpec `json:"readinessProbe,omitempty"`
// GPUDirectRDMA defines the spec for NVIDIA Peer Memory driver
GPUDirectRDMA *GPUDirectRDMASpec `json:"rdma,omitempty"`
// GPUDirectStorage defines the spec for GDS driver
GPUDirectStorage *GPUDirectStorageSpec `json:"gds,omitempty"`
// GDRCopy defines the spec for GDRCopy driver
GDRCopy *GDRCopySpec `json:"gdrcopy,omitempty"`
// NVIDIA Driver repository
// +kubebuilder:validation:Optional
Repository string `json:"repository,omitempty"`
// NVIDIA Driver container image name
// +kubebuilder:default=nvcr.io/nvidia/driver
Image string `json:"image"`
// NVIDIA Driver version (or just branch for precompiled drivers)
// +kubebuilder:validation:Optional
Version string `json:"version,omitempty"`
// Image pull policy
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image Pull Policy"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:imagePullPolicy"
ImagePullPolicy string `json:"imagePullPolicy,omitempty"`
// Image pull secrets
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Image pull secrets"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:io.kubernetes:Secret"
ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`
// Manager represents configuration for NVIDIA Driver Manager initContainer
Manager DriverManagerSpec `json:"manager,omitempty"`
// Optional: Define resources requests and limits for each pod
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Resource Requirements"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:resourceRequirements"
Resources *ResourceRequirements `json:"resources,omitempty"`
// Optional: List of arguments
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Arguments"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Args []string `json:"args,omitempty"`
// Optional: List of environment variables
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Environment Variables"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:com.tectonic.ui:text"
Env []EnvVar `json:"env,omitempty"`
// Optional: Custom repo configuration for NVIDIA Driver container
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Custom Repo Configuration For NVIDIA Driver Container"
RepoConfig *DriverRepoConfigSpec `json:"repoConfig,omitempty"`
// Optional: Custom certificates configuration for NVIDIA Driver container
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Custom Certificates Configuration For NVIDIA Driver Container"
CertConfig *DriverCertConfigSpec `json:"certConfig,omitempty"`
// Optional: Licensing configuration for NVIDIA vGPU licensing
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Licensing Configuration For NVIDIA vGPU Driver Container"
LicensingConfig *DriverLicensingConfigSpec `json:"licensingConfig,omitempty"`
// Optional: Virtual Topology Daemon configuration for NVIDIA vGPU drivers
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Custom Virtual Topology Daemon Configuration For vGPU Driver Container"
VirtualTopologyConfig *VirtualTopologyConfigSpec `json:"virtualTopologyConfig,omitempty"`
// Optional: Kernel module configuration parameters for the NVIDIA Driver
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Kernel module configuration parameters for the NVIDIA driver"
KernelModuleConfig *KernelModuleConfigSpec `json:"kernelModuleConfig,omitempty"`
// Optional: SecretEnv represents the name of the Kubernetes Secret with secret environment variables for the NVIDIA Driver
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Name of the Kubernetes Secret with secret environment variables for the NVIDIA Driver"
SecretEnv string `json:"secretEnv,omitempty"`
// +kubebuilder:validation:Optional
// NodeSelector specifies a selector for installation of NVIDIA driver
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// +kubebuilder:validation:Optional
// Affinity specifies node affinity rules for driver pods
NodeAffinity *corev1.NodeAffinity `json:"nodeAffinity,omitempty"`
// +kubebuilder:validation:Optional
// Optional: Map of string keys and values that can be used to organize and categorize
// (scope and select) objects. May match selectors of replication controllers
// and services.
Labels map[string]string `json:"labels,omitempty"`
// +kubebuilder:validation:Optional
// Optional: Annotations is an unstructured key value map stored with a resource that may be
// set by external tools to store and retrieve arbitrary metadata. They are not
// queryable and should be preserved when modifying objects.
Annotations map[string]string `json:"annotations,omitempty"`
// +kubebuilder:validation:Optional
// Optional: Set tolerations
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="Tolerations"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:advanced,urn:alm:descriptor:io.kubernetes:Tolerations"
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// +kubebuilder:validation:Optional
// Optional: Set priorityClassName
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="PriorityClassName"
PriorityClassName string `json:"priorityClassName,omitempty"`
// +kubebuilder:validation:Optional
// Optional: Set pod-level security context for driver pod
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="PodSecurityContext"
PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
}
NVIDIADriverSpec defines the desired state of NVIDIADriver
func (*NVIDIADriverSpec) DeepCopy ¶
func (in *NVIDIADriverSpec) DeepCopy() *NVIDIADriverSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NVIDIADriverSpec.
func (*NVIDIADriverSpec) DeepCopyInto ¶
func (in *NVIDIADriverSpec) DeepCopyInto(out *NVIDIADriverSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NVIDIADriverSpec) GetImagePath ¶
func (d *NVIDIADriverSpec) GetImagePath(osVersion string) (string, error)
GetImagePath returns the driver image path given the information provided in NVIDIADriverSpec and the osVersion passed as an argument. The driver image path will be in the following format unless the spec contains a digest. <repository>/<image>:<driver-ver>-<os-ver>
func (*NVIDIADriverSpec) GetPrecompiledImagePath ¶
func (d *NVIDIADriverSpec) GetPrecompiledImagePath(osVersion string, kernelVersion string) (string, error)
GetPrecompiledImagePath returns the precompiled driver image path for a given os version and kernel version. Precompiled driver images follow the following format: <repository>/<image>:<driver-ver>-<kernel-ver>-<os-ver>
func (*NVIDIADriverSpec) IsCertConfigEnabled ¶
func (d *NVIDIADriverSpec) IsCertConfigEnabled() bool
IsCertConfigEnabled returns true if additional certificate config is provided
func (*NVIDIADriverSpec) IsGDRCopyEnabled ¶
func (d *NVIDIADriverSpec) IsGDRCopyEnabled() bool
IsGDRCopyEnabled returns true if GDRCopy is enabled through gpu-operator
func (*NVIDIADriverSpec) IsGDSEnabled ¶
func (d *NVIDIADriverSpec) IsGDSEnabled() bool
IsGDSEnabled returns true if GPUDirectStorage is enabled through gpu-operator
func (*NVIDIADriverSpec) IsKernelModuleConfigEnabled ¶
func (d *NVIDIADriverSpec) IsKernelModuleConfigEnabled() bool
IsKernelModuleConfigEnabled returns true if kernel module config is provided
func (*NVIDIADriverSpec) IsOpenKernelModulesEnabled ¶
func (d *NVIDIADriverSpec) IsOpenKernelModulesEnabled() bool
IsOpenKernelModulesEnabled returns true if NVIDIA OpenRM drivers are enabled
func (*NVIDIADriverSpec) IsOpenKernelModulesRequired ¶
func (d *NVIDIADriverSpec) IsOpenKernelModulesRequired() bool
IsOpenKernelModulesRequired returns true if NVIDIA OpenRM drivers required in this configuration
func (*NVIDIADriverSpec) IsRepoConfigEnabled ¶
func (d *NVIDIADriverSpec) IsRepoConfigEnabled() bool
IsRepoConfigEnabled returns true if additional repo config is provided
func (*NVIDIADriverSpec) IsVGPULicensingEnabled ¶
func (d *NVIDIADriverSpec) IsVGPULicensingEnabled() bool
IsVGPULicensingEnabled returns true if the vgpu driver license config is provided
func (*NVIDIADriverSpec) IsVirtualTopologyConfigEnabled ¶
func (d *NVIDIADriverSpec) IsVirtualTopologyConfigEnabled() bool
IsVirtualTopologyConfigEnabled returns true if the virtual topology daemon config is provided
func (*NVIDIADriverSpec) UsePrecompiledDrivers ¶
func (d *NVIDIADriverSpec) UsePrecompiledDrivers() bool
UsePrecompiledDrivers returns true if usePrecompiled option is enabled in spec
type NVIDIADriverStatus ¶
type NVIDIADriverStatus struct {
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
// Important: Run "make" to regenerate code after modifying this file
// +kubebuilder:validation:Enum=ignored;ready;notReady;disabled
// State indicates status of NVIDIADriver instance
State State `json:"state"`
// Namespace indicates a namespace in which the operator and driver are installed
Namespace string `json:"namespace,omitempty"`
// Conditions is a list of conditions representing the NVIDIADriver's current state.
Conditions []metav1.Condition `json:"conditions,omitempty"`
}
NVIDIADriverStatus defines the observed state of NVIDIADriver
func (*NVIDIADriverStatus) DeepCopy ¶
func (in *NVIDIADriverStatus) DeepCopy() *NVIDIADriverStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NVIDIADriverStatus.
func (*NVIDIADriverStatus) DeepCopyInto ¶
func (in *NVIDIADriverStatus) DeepCopyInto(out *NVIDIADriverStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ResourceRequirements ¶
type ResourceRequirements struct {
// Limits describes the maximum amount of compute resources allowed.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
// +optional
Limits corev1.ResourceList `json:"limits,omitempty"`
// Requests describes the minimum amount of compute resources required.
// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
// otherwise to an implementation-defined value. Requests cannot exceed Limits.
// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
// +optional
Requests corev1.ResourceList `json:"requests,omitempty"`
}
ResourceRequirements describes the compute resource requirements.
func (*ResourceRequirements) DeepCopy ¶
func (in *ResourceRequirements) DeepCopy() *ResourceRequirements
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.
func (*ResourceRequirements) DeepCopyInto ¶
func (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type State ¶
type State string
State indicates state of the NVIDIA driver managed by this instance
const ( // Ready indicates that the NVIDIA driver managed by this instance is ready Ready State = "ready" // NotReady indicates that the NVIDIA driver managed by this instance is not ready NotReady State = "notReady" // Disabled indicates if the state is disabled in ClusterPolicy Disabled State = "disabled" )
type VirtualTopologyConfigSpec ¶
type VirtualTopologyConfigSpec struct {
// Optional: Config name representing virtual topology daemon configuration file nvidia-topologyd.conf
// +kubebuilder:validation:Optional
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors=true
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.displayName="ConfigMap Name"
// +operator-sdk:gen-csv:customresourcedefinitions.specDescriptors.x-descriptors="urn:alm:descriptor:com.tectonic.ui:text"
Name string `json:"name,omitempty"`
}
VirtualTopologyConfigSpec defines virtual topology daemon configuration with NVIDIA vGPU
func (*VirtualTopologyConfigSpec) DeepCopy ¶
func (in *VirtualTopologyConfigSpec) DeepCopy() *VirtualTopologyConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualTopologyConfigSpec.
func (*VirtualTopologyConfigSpec) DeepCopyInto ¶
func (in *VirtualTopologyConfigSpec) DeepCopyInto(out *VirtualTopologyConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.