diff --git a/controllers/object_controls.go b/controllers/object_controls.go index 964f3785b8..d6f98e2f2e 100644 --- a/controllers/object_controls.go +++ b/controllers/object_controls.go @@ -221,6 +221,7 @@ var RepoConfigPathMap = map[string]string{ "rhcos": "/etc/yum.repos.d", "rhel": "/etc/yum.repos.d", "rocky": "/etc/yum.repos.d", + "ol": "/etc/yum.repos.d", "sles": "/etc/zypp/repos.d", "sl-micro": "/etc/zypp/repos.d", } @@ -236,6 +237,7 @@ var CertConfigPathMap = map[string]string{ "rhcos": "/etc/pki/ca-trust/extracted/pem", "rhel": "/etc/pki/ca-trust/extracted/pem", "rocky": "/etc/pki/ca-trust/extracted/pem", + "ol": "/etc/pki/ca-trust/extracted/pem", "sles": "/etc/pki/trust/anchors", "sl-micro": "/etc/pki/trust/anchors", } diff --git a/controllers/state_manager.go b/controllers/state_manager.go index 29eef5cf2b..b41cd3d766 100644 --- a/controllers/state_manager.go +++ b/controllers/state_manager.go @@ -664,9 +664,9 @@ func (n *ClusterPolicyController) getGPUNodeOSInfo() (string, string, error) { } 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, Oracle Linux, or RHEL 10 & above, we will omit the minor version when constructing the os image tag switch osName { - case "rocky": + case "rocky", "ol": osVersion = osMajorVersion case "rhel": osMajorNumber, err := parseOSMajorVersion(osVersion) diff --git a/controllers/state_manager_test.go b/controllers/state_manager_test.go index 6585de1961..e7cd460827 100644 --- a/controllers/state_manager_test.go +++ b/controllers/state_manager_test.go @@ -58,6 +58,12 @@ func TestGetGPUNodeOSInfo(t *testing.T) { osVersion: "9.5", expected: "rocky9", }, + { + name: "ol omits minor version", + osName: "ol", + osVersion: "9.5", + expected: "ol9", + }, { name: "ubuntu preserves full version", osName: "ubuntu", diff --git a/internal/state/driver_test.go b/internal/state/driver_test.go index 02b2736f2b..5e16225dc7 100644 --- a/internal/state/driver_test.go +++ b/internal/state/driver_test.go @@ -686,6 +686,14 @@ func TestGetDriverAppName(t *testing.T) { actual = getDriverAppName(cr, pool) assert.Equal(t, "nvidia-gpu-driver-rocky9-59b779bcc5", actual) + // Oracle Linux + pool.osRelease = "ol" + pool.osVersion = "9.7" + pool.osTag, err = getOSTag(pool.osRelease, pool.osVersion) + assert.NoError(t, err) + actual = getDriverAppName(cr, pool) + assert.Equal(t, "nvidia-gpu-driver-ol9-59b779bcc5", actual) + // RHEL10 pool.osRelease = "rhel" pool.osVersion = "10.1" diff --git a/internal/state/driver_volumes.go b/internal/state/driver_volumes.go index 327a3c5efd..f0aeb2f5c3 100644 --- a/internal/state/driver_volumes.go +++ b/internal/state/driver_volumes.go @@ -38,6 +38,7 @@ var RepoConfigPathMap = map[string]string{ "rhcos": "/etc/yum.repos.d", "rhel": "/etc/yum.repos.d", "rocky": "/etc/yum.repos.d", + "ol": "/etc/yum.repos.d", "sles": "/etc/zypp/repos.d", "sl-micro": "/etc/zypp/repos.d", } @@ -53,6 +54,7 @@ var CertConfigPathMap = map[string]string{ "rhcos": "/etc/pki/ca-trust/extracted/pem", "rhel": "/etc/pki/ca-trust/extracted/pem", "rocky": "/etc/pki/ca-trust/extracted/pem", + "ol": "/etc/pki/ca-trust/extracted/pem", "sles": "/etc/pki/trust/anchors", "sl-micro": "/etc/pki/trust/anchors", } diff --git a/internal/state/nodepool.go b/internal/state/nodepool.go index c9781cce0d..04c6e5bc38 100644 --- a/internal/state/nodepool.go +++ b/internal/state/nodepool.go @@ -144,9 +144,9 @@ 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, Oracle Linux, or RHEL 10 & above, we will omit the minor version when constructing the os image tag switch osRelease { - case "rocky": + case "rocky", "ol": osTagSuffix = osMajorVersion case "rhel": osMajorNumber, err := parseOSMajorVersion(osVersion) diff --git a/internal/state/nodepool_test.go b/internal/state/nodepool_test.go index 6d175d7d2a..4133f27643 100644 --- a/internal/state/nodepool_test.go +++ b/internal/state/nodepool_test.go @@ -52,6 +52,13 @@ func TestGetOSTag(t *testing.T) { expected: "rocky9", expectError: false, }, + { + description: "oracle linux", + osRelease: "ol", + osVersion: "9.4", + expected: "ol9", + expectError: false, + }, { description: "RHEL 10", osRelease: "rhel",