@@ -3369,3 +3369,71 @@ func TestTransformDriverRDMA(t *testing.T) {
33693369 require .NoError (t , err )
33703370 require .EqualValues (t , expectedDs , ds )
33713371}
3372+
3373+ func TestTransformDriverVGPUTopologyConfig (t * testing.T ) {
3374+ node := & corev1.Node {
3375+ ObjectMeta : metav1.ObjectMeta {
3376+ Name : "test-node" ,
3377+ Labels : map [string ]string {
3378+ nfdKernelLabelKey : "6.8.0-60-generic" ,
3379+ commonGPULabelKey : "true" ,
3380+ },
3381+ },
3382+ }
3383+ mockClient := fake .NewFakeClient (node )
3384+ ds := NewDaemonset ().WithContainer (corev1.Container {Name : "nvidia-driver-ctr" }).
3385+ WithInitContainer (corev1.Container {Name : "k8s-driver-manager" })
3386+ cpSpec := & gpuv1.ClusterPolicySpec {
3387+ Driver : gpuv1.DriverSpec {
3388+ Repository : "nvcr.io/nvidia" ,
3389+ Image : "driver" ,
3390+ Version : "570.172.08" ,
3391+ Manager : gpuv1.DriverManagerSpec {
3392+ Repository : "nvcr.io/nvidia/cloud-native" ,
3393+ Image : "k8s-driver-manager" ,
3394+ Version : "v0.8.0" ,
3395+ },
3396+ VirtualTopology : & gpuv1.VirtualTopologyConfigSpec {
3397+ Config : "sample-topology-config" ,
3398+ },
3399+ },
3400+ }
3401+
3402+ expectedDs := NewDaemonset ().WithContainer (corev1.Container {
3403+ Name : "nvidia-driver-ctr" ,
3404+ Image : "nvcr.io/nvidia/driver:570.172.08-" ,
3405+ ImagePullPolicy : corev1 .PullIfNotPresent ,
3406+ VolumeMounts : []corev1.VolumeMount {
3407+ {
3408+ Name : "topology-config" ,
3409+ ReadOnly : true ,
3410+ MountPath : consts .VGPUTopologyConfigMountPath ,
3411+ SubPath : consts .VGPUTopologyConfigFileName ,
3412+ },
3413+ },
3414+ }).WithInitContainer (corev1.Container {
3415+ Name : "k8s-driver-manager" ,
3416+ Image : "nvcr.io/nvidia/cloud-native/k8s-driver-manager:v0.8.0" ,
3417+ }).WithVolume (corev1.Volume {
3418+ Name : "topology-config" ,
3419+ VolumeSource : corev1.VolumeSource {
3420+ ConfigMap : & corev1.ConfigMapVolumeSource {
3421+ LocalObjectReference : corev1.LocalObjectReference {
3422+ Name : "sample-topology-config" ,
3423+ },
3424+ Items : []corev1.KeyToPath {
3425+ {
3426+ Key : consts .VGPUTopologyConfigFileName ,
3427+ Path : consts .VGPUTopologyConfigFileName ,
3428+ },
3429+ },
3430+ },
3431+ },
3432+ })
3433+
3434+ err := TransformDriver (ds .DaemonSet , cpSpec ,
3435+ ClusterPolicyController {client : mockClient , runtime : gpuv1 .Containerd ,
3436+ operatorNamespace : "test-ns" , logger : ctrl .Log .WithName ("test" )})
3437+ require .NoError (t , err )
3438+ require .EqualValues (t , expectedDs , ds )
3439+ }
0 commit comments