@@ -240,7 +240,7 @@ var _ = Describe("DevicePluginReconciler_garbageCollect", func() {
240
240
Namespace : "namespace" ,
241
241
},
242
242
Spec : kmmv1beta1.ModuleSpec {
243
- ModuleLoader : kmmv1beta1.ModuleLoaderSpec {
243
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {
244
244
Container : kmmv1beta1.ModuleLoaderContainerSpec {
245
245
Version : currentModuleVersion ,
246
246
},
@@ -298,6 +298,23 @@ var _ = Describe("DevicePluginReconciler_garbageCollect", func() {
298
298
err := dprh .garbageCollect (context .Background (), mod , existingDS )
299
299
Expect (err ).To (HaveOccurred ())
300
300
})
301
+
302
+ It ("should pass if moduleLoader is not defined" , func () {
303
+ modWithoutModuleLoader := mod
304
+ modWithoutModuleLoader .Spec .ModuleLoader = nil
305
+ deleteDS := appsv1.DaemonSet {
306
+ ObjectMeta : metav1.ObjectMeta {
307
+ Name : "devicePlugin" ,
308
+ Namespace : "namespace" ,
309
+ Labels : map [string ]string {constants .ModuleNameLabel : mod .Name , devicePluginVersionLabel : "formerVersion" },
310
+ },
311
+ }
312
+
313
+ existingDS := []appsv1.DaemonSet {deleteDS }
314
+
315
+ err := dprh .garbageCollect (context .Background (), modWithoutModuleLoader , existingDS )
316
+ Expect (err ).ToNot (HaveOccurred ())
317
+ })
301
318
})
302
319
303
320
var _ = Describe ("DevicePluginReconciler_handleModuleDeletion" , func () {
@@ -365,9 +382,20 @@ var _ = Describe("DevicePluginReconciler_setKMMOMetrics", func() {
365
382
Name : "moduleName" ,
366
383
Namespace : "namespace" ,
367
384
},
385
+ Spec : kmmv1beta1.ModuleSpec {
386
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {},
387
+ },
388
+ }
389
+ mod2 := kmmv1beta1.Module {
390
+ Spec : kmmv1beta1.ModuleSpec {
391
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {},
392
+ },
393
+ }
394
+ mod3 := kmmv1beta1.Module {
395
+ Spec : kmmv1beta1.ModuleSpec {
396
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {},
397
+ },
368
398
}
369
- mod2 := kmmv1beta1.Module {}
370
- mod3 := kmmv1beta1.Module {}
371
399
numBuild := 0
372
400
numSign := 0
373
401
numDevicePlugin := 0
@@ -453,7 +481,11 @@ var _ = Describe("DevicePluginReconciler_moduleUpdateDevicePluginStatus", func()
453
481
ctx := context .Background ()
454
482
455
483
It ("device plugin not defined in the module" , func () {
456
- mod := kmmv1beta1.Module {}
484
+ mod := kmmv1beta1.Module {
485
+ Spec : kmmv1beta1.ModuleSpec {
486
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {},
487
+ },
488
+ }
457
489
err := dprh .moduleUpdateDevicePluginStatus (ctx , & mod , nil )
458
490
Expect (err ).NotTo (HaveOccurred ())
459
491
})
@@ -527,8 +559,13 @@ var _ = Describe("DevicePluginReconciler_setDevicePluginAsDesired", func() {
527
559
528
560
It ("should return an error if DevicePlugin not set in the Spec" , func () {
529
561
ds := appsv1.DaemonSet {}
562
+ mod := kmmv1beta1.Module {
563
+ Spec : kmmv1beta1.ModuleSpec {
564
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {},
565
+ },
566
+ }
530
567
Expect (
531
- dsc .setDevicePluginAsDesired (context .Background (), & ds , & kmmv1beta1. Module {} ),
568
+ dsc .setDevicePluginAsDesired (context .Background (), & ds , & mod ),
532
569
).To (
533
570
HaveOccurred (),
534
571
)
@@ -563,7 +600,7 @@ var _ = Describe("DevicePluginReconciler_setDevicePluginAsDesired", func() {
563
600
Namespace : namespace ,
564
601
},
565
602
Spec : kmmv1beta1.ModuleSpec {
566
- ModuleLoader : kmmv1beta1.ModuleLoaderSpec {
603
+ ModuleLoader : & kmmv1beta1.ModuleLoaderSpec {
567
604
Container : kmmv1beta1.ModuleLoaderContainerSpec {
568
605
Version : "some version" ,
569
606
},
@@ -589,7 +626,7 @@ var _ = Describe("DevicePluginReconciler_setDevicePluginAsDesired", func() {
589
626
Expect (ds .GetLabels ()).Should (HaveKeyWithValue (versionLabel , "some version" ))
590
627
})
591
628
592
- It ("should work as expected" , func () {
629
+ DescribeTable ("should work as expected" , func (moduleLoader * kmmv1beta1. ModuleLoaderSpec , expectedNodeSelector map [ string ] string ) {
593
630
const (
594
631
dsName = "ds-name"
595
632
serviceAccountName = "some-service-account"
@@ -646,6 +683,7 @@ var _ = Describe("DevicePluginReconciler_setDevicePluginAsDesired", func() {
646
683
Namespace : namespace ,
647
684
},
648
685
Spec : kmmv1beta1.ModuleSpec {
686
+ ModuleLoader : moduleLoader ,
649
687
DevicePlugin : & kmmv1beta1.DevicePluginSpec {
650
688
Container : kmmv1beta1.DevicePluginContainerSpec {
651
689
Args : args ,
@@ -722,10 +760,8 @@ var _ = Describe("DevicePluginReconciler_setDevicePluginAsDesired", func() {
722
760
},
723
761
},
724
762
},
725
- ImagePullSecrets : []v1.LocalObjectReference {repoSecret },
726
- NodeSelector : map [string ]string {
727
- utils .GetKernelModuleReadyNodeLabel (mod .Namespace , mod .Name ): "" ,
728
- },
763
+ ImagePullSecrets : []v1.LocalObjectReference {repoSecret },
764
+ NodeSelector : expectedNodeSelector ,
729
765
PriorityClassName : "system-node-critical" ,
730
766
ServiceAccountName : serviceAccountName ,
731
767
Volumes : []v1.Volume {
@@ -750,10 +786,19 @@ var _ = Describe("DevicePluginReconciler_setDevicePluginAsDesired", func() {
750
786
).To (
751
787
BeTrue (), cmp .Diff (expected , ds ),
752
788
)
753
- })
789
+ },
790
+ Entry ("moduleLoader is nil" ,
791
+ nil ,
792
+ map [string ]string {"has-feature-x" : "true" },
793
+ ),
794
+ Entry ("moduleLoader is defined" ,
795
+ & kmmv1beta1.ModuleLoaderSpec {},
796
+ map [string ]string {utils .GetKernelModuleReadyNodeLabel (namespace , moduleName ): "" },
797
+ ),
798
+ )
754
799
})
755
800
756
- var _ = Describe ("DevicePluginReconciler_getExistingDS " , func () {
801
+ var _ = Describe ("DevicePluginReconciler_getExistingDSFromVersion " , func () {
757
802
const (
758
803
moduleName = "moduleName"
759
804
moduleNamespace = "moduleNamespace"
@@ -771,22 +816,26 @@ var _ = Describe("DevicePluginReconciler_getExistingDS", func() {
771
816
772
817
It ("various scenarios" , func () {
773
818
By ("empty daemonset list" )
774
- res := getExistingDS (nil , moduleNamespace , moduleName , moduleVersion )
819
+ res , version := getExistingDSFromVersion (nil , moduleNamespace , moduleName , & kmmv1beta1. ModuleLoaderSpec { Container : kmmv1beta1. ModuleLoaderContainerSpec { Version : moduleVersion }} )
775
820
Expect (res ).To (BeNil ())
821
+ Expect (version ).To (Equal (moduleVersion ))
776
822
777
823
By ("device plugin, module version equal" )
778
824
ds .SetLabels (devicePluginLabels )
779
- res = getExistingDS ([]appsv1.DaemonSet {ds }, moduleNamespace , moduleName , moduleVersion )
825
+ res , version = getExistingDSFromVersion ([]appsv1.DaemonSet {ds }, moduleNamespace , moduleName , & kmmv1beta1. ModuleLoaderSpec { Container : kmmv1beta1. ModuleLoaderContainerSpec { Version : moduleVersion }} )
780
826
Expect (res ).To (Equal (& ds ))
827
+ Expect (version ).To (Equal (moduleVersion ))
781
828
782
829
By ("device plugin, module version not equal" )
783
- res = getExistingDS ([]appsv1.DaemonSet {ds }, moduleNamespace , moduleName , "some version" )
830
+ res , version = getExistingDSFromVersion ([]appsv1.DaemonSet {ds }, moduleNamespace , moduleName , & kmmv1beta1. ModuleLoaderSpec { Container : kmmv1beta1. ModuleLoaderContainerSpec { Version : "some- version" }} )
784
831
Expect (res ).To (BeNil ())
832
+ Expect (version ).To (Equal ("some-version" ))
785
833
786
834
By ("device plugin, module version label missing, and module version parameter is empty" )
787
835
ds .SetLabels (map [string ]string {})
788
- res = getExistingDS ([]appsv1.DaemonSet {ds }, moduleNamespace , moduleName , "" )
836
+ res , version = getExistingDSFromVersion ([]appsv1.DaemonSet {ds }, moduleNamespace , moduleName , & kmmv1beta1. ModuleLoaderSpec { Container : kmmv1beta1. ModuleLoaderContainerSpec { Version : "" }} )
789
837
Expect (res ).To (Equal (& ds ))
838
+ Expect (version ).To (Equal ("" ))
790
839
})
791
840
})
792
841
0 commit comments