Skip to content

Commit f707024

Browse files
committed
fix: grant more permissions to cloud node lifecycle controller
1 parent 73e4369 commit f707024

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

Diff for: internal/node/utils.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66

77
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
8+
"k8s.io/client-go/kubernetes"
89
clientset "k8s.io/client-go/kubernetes"
910
cloudprovider "k8s.io/cloud-provider"
1011
"k8s.io/cloud-provider/app"
@@ -29,16 +30,22 @@ func StartCloudNodeLifecycleControllerWrapper(initContext app.ControllerInitCont
2930

3031
//nolint:gocritic // need to follow upstream function signature
3132
func startCloudNodeLifecycleController(ctx context.Context,
32-
initContext app.ControllerInitContext,
33+
_ app.ControllerInitContext,
3334
controlexContext controllermanagerapp.ControllerContext,
3435
completedConfig *config.CompletedConfig,
3536
cloud cloudprovider.Interface,
3637
) (controller.Interface, bool, error) {
38+
// Use CCM's kubeconfig to create a clientset for the custom node lifecycle controller because we need permissions
39+
// to list and delete VolumeAttachments
40+
ccmClientSet, err := kubernetes.NewForConfig(completedConfig.Kubeconfig)
41+
if err != nil {
42+
return nil, false, err
43+
}
44+
3745
// Start the cloudNodeLifecycleController
3846
cloudNodeLifecycleController, err := NewCloudNodeLifecycleController(
3947
completedConfig.SharedInformers.Core().V1().Nodes(),
40-
// cloud node lifecycle controller uses existing cluster role from node-controller
41-
completedConfig.ClientBuilder.ClientOrDie(initContext.ClientName),
48+
ccmClientSet,
4249
cloud,
4350
completedConfig.ComponentConfig.KubeCloudShared.NodeMonitorPeriod.Duration,
4451
)

0 commit comments

Comments
 (0)