diff --git a/controllers/state_manager.go b/controllers/state_manager.go index 29eef5cf2..dabe178ca 100644 --- a/controllers/state_manager.go +++ b/controllers/state_manager.go @@ -20,7 +20,6 @@ import ( "context" "fmt" "path/filepath" - "strconv" "strings" "github.com/go-logr/logr" @@ -662,42 +661,16 @@ func (n *ClusterPolicyController) getGPUNodeOSInfo() (string, string, error) { if !ok { return "", "", fmt.Errorf("unable to retrieve OS version from label %s", nfdOSVersionIDLabelKey) } - osMajorVersion := strings.Split(osVersion, ".")[0] - - // If the OS is RockyLinux or RHEL 10 & above, we will omit the minor version when constructing the os image tag + // If the OS is RockyLinux or RHEL, we will omit the minor version when constructing the os image tag switch osName { - case "rocky": - osVersion = osMajorVersion - case "rhel": - osMajorNumber, err := parseOSMajorVersion(osVersion) - if err != nil { - return "", "", err - } - if osMajorNumber >= 10 { - osVersion = osMajorVersion - } + case "rocky", "rhel": + osVersion = strings.Split(osVersion, ".")[0] } osTag := fmt.Sprintf("%s%s", osName, osVersion) return osName, osTag, nil } -func parseOSMajorVersion(osVersion string) (int, error) { - osMajorVersion := strings.Split(osVersion, ".")[0] - osMajorVersion = strings.TrimSpace(osMajorVersion) - osMajorVersion = strings.TrimPrefix(strings.TrimPrefix(osMajorVersion, "v"), "V") - if osMajorVersion == "" { - return 0, fmt.Errorf("empty OS major version") - } - - osMajorNumber, err := strconv.Atoi(osMajorVersion) - if err != nil { - return 0, fmt.Errorf("error processing OS major version %s: %w", osMajorVersion, err) - } - - return osMajorNumber, nil -} - func (n *ClusterPolicyController) setPodSecurityLabelsForNamespace() error { ctx := n.ctx namespaceName := clusterPolicyCtrl.operatorNamespace diff --git a/controllers/state_manager_test.go b/controllers/state_manager_test.go index 6585de196..8f675f9e3 100644 --- a/controllers/state_manager_test.go +++ b/controllers/state_manager_test.go @@ -46,6 +46,18 @@ func TestGetGPUNodeOSInfo(t *testing.T) { osVersion: "v1.12.6", expected: "talosv1.12.6", }, + { + name: "rhel 9 omits minor version", + osName: "rhel", + osVersion: "9.4", + expected: "rhel9", + }, + { + name: "rhel 8 omits minor version", + osName: "rhel", + osVersion: "8.10", + expected: "rhel8", + }, { name: "rhel 10 omits minor version", osName: "rhel", @@ -88,13 +100,6 @@ func TestGetGPUNodeOSInfo(t *testing.T) { osVersion: "rolling", expected: "archlinuxrolling", }, - { - name: "rhel invalid major version errors", - osName: "rhel", - osVersion: "A.10", - expectError: true, - errorContainsText: "error processing OS major version", - }, } for _, tc := range testCases { diff --git a/deployments/gpu-operator/values.yaml b/deployments/gpu-operator/values.yaml index f04b13b10..cf8788a45 100644 --- a/deployments/gpu-operator/values.yaml +++ b/deployments/gpu-operator/values.yaml @@ -148,7 +148,7 @@ driver: usePrecompiled: false repository: nvcr.io/nvidia image: driver - version: "595.58.03" + version: "595.71.05" imagePullPolicy: IfNotPresent imagePullSecrets: [] startupProbe: diff --git a/internal/state/nodepool.go b/internal/state/nodepool.go index c9781cce0..5480a4f75 100644 --- a/internal/state/nodepool.go +++ b/internal/state/nodepool.go @@ -20,7 +20,6 @@ import ( "context" "fmt" "maps" - "strconv" "strings" corev1 "k8s.io/api/core/v1" @@ -141,41 +140,13 @@ func getNodePools(ctx context.Context, k8sClient client.Client, selector map[str } func getOSTag(osRelease, osVersion string) (string, error) { - osMajorVersion := strings.Split(osVersion, ".")[0] - var osTagSuffix string - // If the OS is RockyLinux or RHEL 10 & above, we will omit the minor version when constructing the os image tag + // If the OS is RockyLinux or RHEL, we will omit the minor version when constructing the os image tag switch osRelease { - case "rocky": - osTagSuffix = osMajorVersion - case "rhel": - osMajorNumber, err := parseOSMajorVersion(osVersion) - if err != nil { - return "", fmt.Errorf("failed to parse os version: %w", err) - } - if osMajorNumber >= 10 { - osTagSuffix = osMajorVersion - } else { - osTagSuffix = osVersion - } + case "rocky", "rhel": + osTagSuffix = strings.Split(osVersion, ".")[0] default: osTagSuffix = osVersion } return fmt.Sprintf("%s%s", osRelease, osTagSuffix), nil } - -func parseOSMajorVersion(osVersion string) (int, error) { - osMajorVersion := strings.Split(osVersion, ".")[0] - osMajorVersion = strings.TrimSpace(osMajorVersion) - osMajorVersion = strings.TrimPrefix(strings.TrimPrefix(osMajorVersion, "v"), "V") - if osMajorVersion == "" { - return 0, fmt.Errorf("empty OS major version") - } - - osMajorNumber, err := strconv.Atoi(osMajorVersion) - if err != nil { - return 0, err - } - - return osMajorNumber, nil -} diff --git a/internal/state/nodepool_test.go b/internal/state/nodepool_test.go index 6d175d7d2..d47b3356d 100644 --- a/internal/state/nodepool_test.go +++ b/internal/state/nodepool_test.go @@ -35,7 +35,14 @@ func TestGetOSTag(t *testing.T) { description: "valid os release & version", osRelease: "rhel", osVersion: "9.4", - expected: "rhel9.4", + expected: "rhel9", + expectError: false, + }, + { + description: "valid os release & version - rhel8", + osRelease: "rhel", + osVersion: "8.10", + expected: "rhel8", expectError: false, }, { @@ -73,13 +80,6 @@ func TestGetOSTag(t *testing.T) { expected: "archlinuxrolling", expectError: false, }, - { - description: "invalid os version", - osRelease: "rhel", - osVersion: "A.10", - expectError: true, - errorMessage: "failed to parse os version: strconv.Atoi: parsing \"A\": invalid syntax", - }, } for _, test := range tests {