MCPcopy Create free account
hub / github.com/NVIDIA/gpu-operator / RuntimeClasses

Function RuntimeClasses

controllers/object_controls.go:5265–5309  ·  view source on GitHub ↗
(n ClusterPolicyController)

Source from the content-addressed store, hash-verified

5263}
5264
5265func RuntimeClasses(n ClusterPolicyController) (gpuv1.State, error) {
5266 status := gpuv1.Ready
5267 state := n.idx
5268
5269 if n.stateNames[state] == "state-kata-manager" {
5270 return transformKataRuntimeClasses(n)
5271 }
5272
5273 nvidiaRuntimeClasses := n.resources[state].RuntimeClasses
5274 if n.stateNames[state] == "pre-requisites" && !n.isStateEnabled(n.stateNames[state]) {
5275 err := clearRuntimeClasses(n, nvidiaRuntimeClasses)
5276 if err != nil {
5277 return gpuv1.NotReady, fmt.Errorf("error clearing nvidia runtime classes: %w", err)
5278 }
5279 return gpuv1.Ready, nil
5280 }
5281
5282 createRuntimeClassFunc := transformRuntimeClass
5283 if semver.Compare(n.k8sVersion, nodev1MinimumAPIVersion) <= 0 {
5284 createRuntimeClassFunc = transformRuntimeClassLegacy
5285 }
5286
5287 for _, obj := range nvidiaRuntimeClasses {
5288 obj := obj
5289 // When CDI is disabled, do not create the additional 'nvidia-cdi' and
5290 // 'nvidia-legacy' runtime classes. Delete these objects if they were
5291 // previously created.
5292 if !n.singleton.Spec.CDI.IsEnabled() && (obj.Name == "nvidia-cdi" || obj.Name == "nvidia-legacy") {
5293 err := n.client.Delete(n.ctx, &obj)
5294 if err != nil && !apierrors.IsNotFound(err) {
5295 n.logger.Info("Couldn't delete", "RuntimeClass", obj.Name, "Error", err)
5296 return gpuv1.NotReady, err
5297 }
5298 continue
5299 }
5300 stat, err := createRuntimeClassFunc(n, obj)
5301 if err != nil {
5302 return stat, err
5303 }
5304 if stat != gpuv1.Ready {
5305 status = gpuv1.NotReady
5306 }
5307 }
5308 return status, nil
5309}
5310
5311// PrometheusRule creates PrometheusRule object
5312func PrometheusRule(n ClusterPolicyController) (gpuv1.State, error) {

Callers 1

TestRuntimeClassesFunction · 0.85

Calls 5

clearRuntimeClassesFunction · 0.85
isStateEnabledMethod · 0.80
DeleteMethod · 0.65
IsEnabledMethod · 0.45

Tested by 1

TestRuntimeClassesFunction · 0.68