The module lifecycle stage: General Availability
The module has requirements for installation
The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.
GPUClass
Short names: gpucls
Scope: Cluster
Version: v1alpha1
-
stringapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
stringkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
objectmetadata
-
objectspecGPUClassSpec defines a named pool of PhysicalGPU objects and the generated DeviceClass variants that users can request through extended resources.
-
objectspec.partitionFilterPartitionFilter restricts partition profile names used for generated DeviceClasses. Names come from PhysicalGPU status capabilities.
-
array of stringsspec.partitionFilter.allowAllow is a whitelist of names that may be used.
-
array of stringsspec.partitionFilter.denyDeny is a blacklist of names that must not be used.
-
-
objectspec.selectorSelector selects PhysicalGPU objects by labels. Empty selector means all PhysicalGPU objects in the cluster.
-
array of objectsspec.selector.matchExpressionsmatchExpressions is a list of label selector requirements. The requirements are ANDed.
-
stringspec.selector.matchExpressions.keykey is the label key that the selector applies to.
-
stringspec.selector.matchExpressions.operatoroperator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
-
array of stringsspec.selector.matchExpressions.valuesvalues is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
-
-
objectspec.selector.matchLabelsmatchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
-
-
objectspec.sharingFilterSharingFilter restricts sharing mode names used for generated DeviceClasses. Names come from PhysicalGPU labels with the gpu.deckhouse.io/sharing. prefix.
-
array of stringsspec.sharingFilter.allowAllow is a whitelist of names that may be used.
-
array of stringsspec.sharingFilter.denyDeny is a blacklist of names that must not be used.
-
-
-
objectstatusGPUClassStatus defines the observed state of GPUClass.
-
array of objectsstatus.conditionsConditions represent reconciliation status for this GPUClass.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Allowed values:
0 <= X -
stringstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
array of stringsstatus.deviceClassNamesDeviceClassNames is the complete list of DeviceClass objects generated for this GPUClass.
-
integerstatus.matchingPhysicalGPUCountMatchingPhysicalGPUCount is the number of PhysicalGPU objects matching the selector during the latest reconciliation.
-
PhysicalGPU
Short names: pgpu
Scope: Cluster
Version: v1alpha1
-
stringapiVersionAPIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
stringkindKind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
objectmetadata
-
objectspecPhysicalGPUSpec defines the desired state of PhysicalGPU. v0: desired state is intentionally empty.
-
objectstatusPhysicalGPUStatus defines the observed state of PhysicalGPU.
-
objectstatus.capabilitiesCapabilities is a snapshot of device capabilities.
-
stringstatus.capabilities.architectureArchitecture is the GPU architecture name (for example “Hopper”, “RDNA3”, “Xe-HPC”).
-
stringstatus.capabilities.computeAPIComputeAPI is the primary compute API (“CUDA”, “ROCm”, “oneAPI”).
-
stringstatus.capabilities.computeCapabilityComputeCapability is the compute capability string (for example “8.0” for NVIDIA, empty for others).
-
integerstatus.capabilities.memoryMiBMemoryMiB is the total framebuffer memory in MiB.
-
objectstatus.capabilities.partitionSupportPartitionSupport describes partition capabilities (MIG/SPX/SR-IOV).
-
array of objectsstatus.capabilities.partitionSupport.profilesProfiles lists supported partition profiles.
-
integerstatus.capabilities.partitionSupport.profiles.maxInstancesMaxInstances is the maximum number of instances for this profile.
-
integerstatus.capabilities.partitionSupport.profiles.memoryMiBMemoryMiB is the framebuffer size for the profile.
-
stringstatus.capabilities.partitionSupport.profiles.nameName is the profile name (for example “1g.6gb”, “spx-half”).
-
integerstatus.capabilities.partitionSupport.profiles.profileIDProfileID is the numeric profile ID.
-
objectstatus.capabilities.partitionSupport.profiles.resourcesResources is a vendor-agnostic map of resource counters (for example {“multiprocessors”: 14, “copy-engines”: 1}).
-
integerstatus.capabilities.partitionSupport.profiles.sliceCountSliceCount is the number of slices consumed by the profile.
-
-
booleanstatus.capabilities.partitionSupport.supported
Required value
Supported indicates whether partitioning is supported on this GPU. -
stringstatus.capabilities.partitionSupport.technologyTechnology is the partition technology name (“MIG”, “SPX”, “SR-IOV”).
-
integerstatus.capabilities.partitionSupport.totalSlicesTotalSlices is the total number of partition slices on the GPU.
-
-
integerstatus.capabilities.powerLimitMaxWPowerLimitMaxW is the maximum supported power limit in watts.
-
integerstatus.capabilities.powerLimitMinWPowerLimitMinW is the minimum supported power limit in watts.
-
stringstatus.capabilities.productNameProductName is the GPU product name (for example “NVIDIA A30”).
-
stringstatus.capabilities.vendorVendor is the GPU vendor identifier (for example “nvidia”, “amd”, “intel”).
-
-
array of objectsstatus.conditionsConditions represent the health and readiness of the GPU.
-
stringstatus.conditions.lastTransitionTimelastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
-
stringstatus.conditions.messagemessage is a human readable message indicating details about the transition. This may be an empty string.
Maximum length:
32768 -
integerstatus.conditions.observedGenerationobservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
Allowed values:
0 <= X -
stringstatus.conditions.reasonreason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
Length:
1..1024Pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ -
stringstatus.conditions.statusstatus of the condition, one of True, False, Unknown.
Allowed values:
True,False,Unknown -
stringstatus.conditions.typetype of condition in CamelCase or in foo.example.com/CamelCase.
Maximum length:
316Pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
-
-
objectstatus.currentStateCurrentState reflects current driver binding and runtime details.
-
stringstatus.currentState.computeAPIVersionComputeAPIVersion is the compute API version string at runtime.
-
stringstatus.currentState.driverVersionDriverVersion is the driver version string.
-
stringstatus.currentState.gpuUUIDGPUUUID is the GPU UUID reported by the vendor driver.
-
objectstatus.currentState.partitionPartition describes the current partition mode state.
-
stringstatus.currentState.partition.modeMode is the current partition mode reported by the adapter.
-
-
integerstatus.currentState.powerLimitCurrentWPowerLimitCurrentW is the current power limit in watts.
-
integerstatus.currentState.powerLimitEnforcedWPowerLimitEnforcedW is the enforced power limit in watts.
-
-
objectstatus.nodeInfoNodeInfo contains node identification and bare-metal detection.
-
booleanstatus.nodeInfo.bareMetalBareMetal indicates whether the node is detected as bare metal.
-
stringstatus.nodeInfo.nodeNameNodeName is the Kubernetes node name where the GPU is detected.
-
-
objectstatus.pciInfoPCIInfo holds PCI identification details for the device.
-
stringstatus.pciInfo.addressAddress is the PCI address, for example “0000:02:00.0”.
-
objectstatus.pciInfo.classClass describes the PCI class.
-
stringstatus.pciInfo.class.codeCode is the PCI class code (base+subclass), for example “0302”.
-
-
objectstatus.pciInfo.deviceDevice describes the PCI device.
-
stringstatus.pciInfo.device.idID is the PCI device ID, for example “20b7”.
-
-
objectstatus.pciInfo.vendorVendor describes the PCI vendor.
-
stringstatus.pciInfo.vendor.idID is the PCI vendor ID, for example “10de”.
-
-
-
stringstatus.phasePhase is the lifecycle phase of the GPU, derived from conditions by gpu-controller.
Allowed values:
Pending,Initializing,Ready,Reconfiguring,Failed,Lost
-