@@ -408,6 +408,30 @@ func TestValidateInstanceGroupGVisorWorkerOnly(t *testing.T) {
408408 enabled : fi .PtrTo (true ),
409409 expected : []string {"Forbidden::spec.containerd.gvisor" },
410410 },
411+ {
412+ name : "enabled on etcd" ,
413+ role : kops .InstanceGroupRoleEtcd ,
414+ enabled : fi .PtrTo (true ),
415+ expected : []string {"Forbidden::spec.containerd.gvisor" },
416+ },
417+ {
418+ name : "enabled on Scheduler" ,
419+ role : kops .InstanceGroupRoleScheduler ,
420+ enabled : fi .PtrTo (true ),
421+ expected : []string {"Forbidden::spec.containerd.gvisor" },
422+ },
423+ {
424+ name : "enabled on cloud controller manager" ,
425+ role : kops .InstanceGroupRoleCloudControllerManager ,
426+ enabled : fi .PtrTo (true ),
427+ expected : []string {"Forbidden::spec.containerd.gvisor" },
428+ },
429+ {
430+ name : "enabled on kube controller manager" ,
431+ role : kops .InstanceGroupRoleKubeControllerManager ,
432+ enabled : fi .PtrTo (true ),
433+ expected : []string {"Forbidden::spec.containerd.gvisor" },
434+ },
411435 {
412436 name : "enabled on bastion" ,
413437 role : kops .InstanceGroupRoleBastion ,
@@ -419,6 +443,26 @@ func TestValidateInstanceGroupGVisorWorkerOnly(t *testing.T) {
419443 role : kops .InstanceGroupRoleAPIServer ,
420444 enabled : fi .PtrTo (false ),
421445 },
446+ {
447+ name : "disabled on etcd" ,
448+ role : kops .InstanceGroupRoleEtcd ,
449+ enabled : fi .PtrTo (false ),
450+ },
451+ {
452+ name : "disabled on Scheduler" ,
453+ role : kops .InstanceGroupRoleScheduler ,
454+ enabled : fi .PtrTo (false ),
455+ },
456+ {
457+ name : "disabled on cloud controller manager" ,
458+ role : kops .InstanceGroupRoleCloudControllerManager ,
459+ enabled : fi .PtrTo (false ),
460+ },
461+ {
462+ name : "disabled on kube controller manager" ,
463+ role : kops .InstanceGroupRoleKubeControllerManager ,
464+ enabled : fi .PtrTo (false ),
465+ },
422466 } {
423467 t .Run (test .name , func (t * testing.T ) {
424468 ig := createMinimalInstanceGroup ()
@@ -474,6 +518,70 @@ func TestValidInstanceGroup(t *testing.T) {
474518 ExpectedErrors : []string {},
475519 Description : "Valid API Server instance group failed to validate" ,
476520 },
521+ {
522+ IG : & kops.InstanceGroup {
523+ ObjectMeta : v1.ObjectMeta {
524+ Name : "eu-central-1a" ,
525+ },
526+ Spec : kops.InstanceGroupSpec {
527+ Role : kops .InstanceGroupRoleEtcd ,
528+ Subnets : []string {"eu-central-1a" },
529+ MaxSize : fi .PtrTo (int32 (1 )),
530+ MinSize : fi .PtrTo (int32 (1 )),
531+ Image : "my-image" ,
532+ },
533+ },
534+ ExpectedErrors : []string {},
535+ Description : "Valid Etcd instance group failed to validate" ,
536+ },
537+ {
538+ IG : & kops.InstanceGroup {
539+ ObjectMeta : v1.ObjectMeta {
540+ Name : "eu-central-1a" ,
541+ },
542+ Spec : kops.InstanceGroupSpec {
543+ Role : kops .InstanceGroupRoleScheduler ,
544+ Subnets : []string {"eu-central-1a" },
545+ MaxSize : fi .PtrTo (int32 (1 )),
546+ MinSize : fi .PtrTo (int32 (1 )),
547+ Image : "my-image" ,
548+ },
549+ },
550+ ExpectedErrors : []string {},
551+ Description : "Valid Scheduler instance group failed to validate" ,
552+ },
553+ {
554+ IG : & kops.InstanceGroup {
555+ ObjectMeta : v1.ObjectMeta {
556+ Name : "eu-central-1a" ,
557+ },
558+ Spec : kops.InstanceGroupSpec {
559+ Role : kops .InstanceGroupRoleCloudControllerManager ,
560+ Subnets : []string {"eu-central-1a" },
561+ MaxSize : fi .PtrTo (int32 (1 )),
562+ MinSize : fi .PtrTo (int32 (1 )),
563+ Image : "my-image" ,
564+ },
565+ },
566+ ExpectedErrors : []string {},
567+ Description : "Valid Cloud Controller Manager instance group failed to validate" ,
568+ },
569+ {
570+ IG : & kops.InstanceGroup {
571+ ObjectMeta : v1.ObjectMeta {
572+ Name : "eu-central-1a" ,
573+ },
574+ Spec : kops.InstanceGroupSpec {
575+ Role : kops .InstanceGroupRoleKubeControllerManager ,
576+ Subnets : []string {"eu-central-1a" },
577+ MaxSize : fi .PtrTo (int32 (1 )),
578+ MinSize : fi .PtrTo (int32 (1 )),
579+ Image : "my-image" ,
580+ },
581+ },
582+ ExpectedErrors : []string {},
583+ Description : "Valid Kube Controller Manager instance group failed to validate" ,
584+ },
477585 {
478586 IG : & kops.InstanceGroup {
479587 ObjectMeta : v1.ObjectMeta {
0 commit comments