@@ -477,41 +477,42 @@ var _ = Describe("Ensurer", func() {
477477 }
478478 })
479479
480- It ("should modify existing elements of kubelet.service unit options (k8s < 1.19)" , func () {
481- newUnitOptions := []* unit.UnitOption {
482- {
483- Section : "Service" ,
484- Name : "ExecStart" ,
485- Value : `/opt/bin/hyperkube kubelet \
486- --config=/var/lib/kubelet/config/kubelet \
487- --cloud-provider=openstack \
488- --cloud-config=/var/lib/kubelet/cloudprovider.conf` ,
489- },
490- hostnamectlUnitOption ,
491- }
480+ DescribeTable ("should modify existing elements of kubelet.service unit options" ,
481+ func (gctx gcontext.GardenContext , kubeletVersion * semver.Version , cloudProvider string , withControllerAttachDetachFlag bool ) {
482+ newUnitOptions := []* unit.UnitOption {
483+ {
484+ Section : "Service" ,
485+ Name : "ExecStart" ,
486+ Value : `/opt/bin/hyperkube kubelet \
487+ --config=/var/lib/kubelet/config/kubelet` ,
488+ },
489+ hostnamectlUnitOption ,
490+ }
492491
493- opts , err := ensurer .EnsureKubeletServiceUnitOptions (ctx , eContextK8s116 , semver .MustParse ("1.16.0" ), oldUnitOptions , nil )
494- Expect (err ).To (Not (HaveOccurred ()))
495- Expect (opts ).To (Equal (newUnitOptions ))
496- })
492+ if cloudProvider != "" {
493+ newUnitOptions [0 ].Value += ` \
494+ --cloud-provider=` + cloudProvider
497495
498- It ("should modify existing elements of kubelet.service unit options (k8s >= 1.19)" , func () {
499- newUnitOptions := []* unit.UnitOption {
500- {
501- Section : "Service" ,
502- Name : "ExecStart" ,
503- Value : `/opt/bin/hyperkube kubelet \
504- --config=/var/lib/kubelet/config/kubelet \
505- --cloud-provider=external \
506- --enable-controller-attach-detach=true` ,
507- },
508- hostnamectlUnitOption ,
509- }
496+ if cloudProvider != "external" {
497+ newUnitOptions [0 ].Value += ` \
498+ --cloud-config=/var/lib/kubelet/cloudprovider.conf`
499+ }
500+ }
510501
511- opts , err := ensurer .EnsureKubeletServiceUnitOptions (ctx , eContextK8s119 , semver .MustParse ("1.19.0" ), oldUnitOptions , nil )
512- Expect (err ).To (Not (HaveOccurred ()))
513- Expect (opts ).To (Equal (newUnitOptions ))
514- })
502+ if withControllerAttachDetachFlag {
503+ newUnitOptions [0 ].Value += ` \
504+ --enable-controller-attach-detach=true`
505+ }
506+
507+ opts , err := ensurer .EnsureKubeletServiceUnitOptions (ctx , gctx , kubeletVersion , oldUnitOptions , nil )
508+ Expect (err ).To (Not (HaveOccurred ()))
509+ Expect (opts ).To (Equal (newUnitOptions ))
510+ },
511+
512+ Entry ("kubelet version < 1.19" , eContextK8s116 , semver .MustParse ("1.16.0" ), "openstack" , false ),
513+ Entry ("1.19 <= kubelet version < 1.23" , eContextK8s119 , semver .MustParse ("1.19.0" ), "external" , true ),
514+ Entry ("kubelet version >= 1.23" , eContextK8s119 , semver .MustParse ("1.23.0" ), "" , false ),
515+ )
515516 })
516517
517518 Describe ("#EnsureKubeletConfiguration" , func () {
@@ -526,12 +527,13 @@ var _ = Describe("Ensurer", func() {
526527 })
527528
528529 DescribeTable ("should modify existing elements of kubelet configuration" ,
529- func (gctx gcontext.GardenContext , kubeletVersion * semver.Version , unregisterFeatureGateName string ) {
530+ func (gctx gcontext.GardenContext , kubeletVersion * semver.Version , unregisterFeatureGateName string , enableControllerAttachDetach * bool ) {
530531 newKubeletConfig := & kubeletconfigv1beta1.KubeletConfiguration {
531532 FeatureGates : map [string ]bool {
532533 "Foo" : true ,
533534 },
534- ResolverConfig : "/etc/resolv-for-kubelet.conf" ,
535+ ResolverConfig : "/etc/resolv-for-kubelet.conf" ,
536+ EnableControllerAttachDetach : enableControllerAttachDetach ,
535537 }
536538
537539 if unregisterFeatureGateName != "" {
@@ -547,10 +549,11 @@ var _ = Describe("Ensurer", func() {
547549 Expect (& kubeletConfig ).To (Equal (newKubeletConfig ))
548550 },
549551
550- Entry ("control plane, kubelet < 1.19" , eContextK8s116 , semver .MustParse ("1.16.0" ), "" ),
551- Entry ("1.19 <= control plane, kubelet <= 1.21" , eContextK8s119 , semver .MustParse ("1.19.0" ), "CSIMigrationOpenStackComplete" ),
552- Entry ("control plane >= 1.21, kubelet < 1.21" , eContextK8s121 , semver .MustParse ("1.20.0" ), "CSIMigrationOpenStackComplete" ),
553- Entry ("control plane, kubelet >= 1.21" , eContextK8s121 , semver .MustParse ("1.21.0" ), "InTreePluginOpenStackUnregister" ),
552+ Entry ("control plane, kubelet < 1.19" , eContextK8s116 , semver .MustParse ("1.16.0" ), "" , nil ),
553+ Entry ("1.19 <= control plane, kubelet <= 1.21" , eContextK8s119 , semver .MustParse ("1.19.0" ), "CSIMigrationOpenStackComplete" , nil ),
554+ Entry ("control plane >= 1.21, kubelet < 1.21" , eContextK8s121 , semver .MustParse ("1.20.0" ), "CSIMigrationOpenStackComplete" , nil ),
555+ Entry ("1.21 <= kubelet < 1.23" , eContextK8s121 , semver .MustParse ("1.22.0" ), "InTreePluginOpenStackUnregister" , nil ),
556+ Entry ("kubelet >= 1.23" , eContextK8s121 , semver .MustParse ("1.23.0" ), "InTreePluginOpenStackUnregister" , pointer .Bool (true )),
554557 )
555558 })
556559
0 commit comments