Skip to content

Commit 41dc075

Browse files
committed
move pkg/controller/cloud/node_lifecycle_controller.go to k8s.io/cloud-provider/controllers/nodelifecycle for easier external consumption
Signed-off-by: Andrew Sy Kim <[email protected]>
1 parent 6d4a19b commit 41dc075

File tree

12 files changed

+35
-9
lines changed

12 files changed

+35
-9
lines changed

cmd/cloud-controller-manager/app/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ go_library(
1212
"//cmd/cloud-controller-manager/app/config:go_default_library",
1313
"//cmd/cloud-controller-manager/app/options:go_default_library",
1414
"//cmd/controller-manager/app:go_default_library",
15-
"//pkg/controller/cloud:go_default_library",
1615
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
1716
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
1817
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
@@ -23,6 +22,7 @@ go_library(
2322
"//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library",
2423
"//staging/src/k8s.io/cloud-provider:go_default_library",
2524
"//staging/src/k8s.io/cloud-provider/controllers/node:go_default_library",
25+
"//staging/src/k8s.io/cloud-provider/controllers/nodelifecycle:go_default_library",
2626
"//staging/src/k8s.io/cloud-provider/controllers/route:go_default_library",
2727
"//staging/src/k8s.io/cloud-provider/controllers/service:go_default_library",
2828
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",

cmd/cloud-controller-manager/app/core.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ import (
2828

2929
cloudprovider "k8s.io/cloud-provider"
3030
cloudnodecontroller "k8s.io/cloud-provider/controllers/node"
31+
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
3132
routecontroller "k8s.io/cloud-provider/controllers/route"
3233
servicecontroller "k8s.io/cloud-provider/controllers/service"
3334
"k8s.io/klog/v2"
3435
cloudcontrollerconfig "k8s.io/kubernetes/cmd/cloud-controller-manager/app/config"
35-
cloudcontrollers "k8s.io/kubernetes/pkg/controller/cloud"
3636
netutils "k8s.io/utils/net"
3737

3838
utilfeature "k8s.io/apiserver/pkg/util/feature"
@@ -65,7 +65,7 @@ func startCloudNodeController(ctx *cloudcontrollerconfig.CompletedConfig, cloud
6565

6666
func startCloudNodeLifecycleController(ctx *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface, stopCh <-chan struct{}) (http.Handler, bool, error) {
6767
// Start the cloudNodeLifecycleController
68-
cloudNodeLifecycleController, err := cloudcontrollers.NewCloudNodeLifecycleController(
68+
cloudNodeLifecycleController, err := cloudnodelifecyclecontroller.NewCloudNodeLifecycleController(
6969
ctx.SharedInformers.Core().V1().Nodes(),
7070
// cloud node lifecycle controller uses existing cluster role from node-controller
7171
ctx.ClientBuilder.ClientOrDie("node-controller"),

cmd/kube-controller-manager/app/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ go_library(
4949
"//pkg/controller/certificates/rootcacertpublisher:go_default_library",
5050
"//pkg/controller/certificates/signer:go_default_library",
5151
"//pkg/controller/certificates/signer/config:go_default_library",
52-
"//pkg/controller/cloud:go_default_library",
5352
"//pkg/controller/clusterroleaggregation:go_default_library",
5453
"//pkg/controller/cronjob:go_default_library",
5554
"//pkg/controller/daemon:go_default_library",
@@ -135,6 +134,7 @@ go_library(
135134
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
136135
"//staging/src/k8s.io/client-go/util/keyutil:go_default_library",
137136
"//staging/src/k8s.io/cloud-provider:go_default_library",
137+
"//staging/src/k8s.io/cloud-provider/controllers/nodelifecycle:go_default_library",
138138
"//staging/src/k8s.io/cloud-provider/controllers/route:go_default_library",
139139
"//staging/src/k8s.io/cloud-provider/controllers/service:go_default_library",
140140
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",

cmd/kube-controller-manager/app/core.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ import (
3838
clientset "k8s.io/client-go/kubernetes"
3939
"k8s.io/client-go/metadata"
4040
restclient "k8s.io/client-go/rest"
41+
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
4142
routecontroller "k8s.io/cloud-provider/controllers/route"
4243
servicecontroller "k8s.io/cloud-provider/controllers/service"
4344
"k8s.io/component-base/metrics/prometheus/ratelimiter"
4445
csitrans "k8s.io/csi-translation-lib"
4546
"k8s.io/kubernetes/pkg/controller"
46-
cloudcontroller "k8s.io/kubernetes/pkg/controller/cloud"
4747
endpointcontroller "k8s.io/kubernetes/pkg/controller/endpoint"
4848
"k8s.io/kubernetes/pkg/controller/garbagecollector"
4949
namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace"
@@ -217,7 +217,7 @@ func startNodeLifecycleController(ctx ControllerContext) (http.Handler, bool, er
217217
}
218218

219219
func startCloudNodeLifecycleController(ctx ControllerContext) (http.Handler, bool, error) {
220-
cloudNodeLifecycleController, err := cloudcontroller.NewCloudNodeLifecycleController(
220+
cloudNodeLifecycleController, err := cloudnodelifecyclecontroller.NewCloudNodeLifecycleController(
221221
ctx.InformerFactory.Core().V1().Nodes(),
222222
// cloud node lifecycle controller uses existing cluster role from node-controller
223223
ctx.ClientBuilder.ClientOrDie("node-controller"),

hack/.golint_failures

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ pkg/controller/apis/config/v1alpha1
5050
pkg/controller/certificates
5151
pkg/controller/certificates/signer
5252
pkg/controller/certificates/signer/config/v1alpha1
53-
pkg/controller/cloud
5453
pkg/controller/clusterroleaggregation
5554
pkg/controller/daemon
5655
pkg/controller/daemon/config/v1alpha1
@@ -424,6 +423,7 @@ staging/src/k8s.io/client-go/util/testing
424423
staging/src/k8s.io/client-go/util/workqueue
425424
staging/src/k8s.io/cloud-provider
426425
staging/src/k8s.io/cloud-provider/controllers/node
426+
staging/src/k8s.io/cloud-provider/controllers/nodelifecycle
427427
staging/src/k8s.io/cloud-provider/controllers/route
428428
staging/src/k8s.io/code-generator/cmd/client-gen/args
429429
staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake

pkg/controller/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,6 @@ filegroup(
108108
"//pkg/controller/apis/config:all-srcs",
109109
"//pkg/controller/bootstrap:all-srcs",
110110
"//pkg/controller/certificates:all-srcs",
111-
"//pkg/controller/cloud:all-srcs",
112111
"//pkg/controller/clusterroleaggregation:all-srcs",
113112
"//pkg/controller/cronjob:all-srcs",
114113
"//pkg/controller/daemon:all-srcs",

staging/src/k8s.io/cloud-provider/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ filegroup(
3838
":package-srcs",
3939
"//staging/src/k8s.io/cloud-provider/api:all-srcs",
4040
"//staging/src/k8s.io/cloud-provider/controllers/node:all-srcs",
41+
"//staging/src/k8s.io/cloud-provider/controllers/nodelifecycle:all-srcs",
4142
"//staging/src/k8s.io/cloud-provider/controllers/route:all-srcs",
4243
"//staging/src/k8s.io/cloud-provider/controllers/service:all-srcs",
4344
"//staging/src/k8s.io/cloud-provider/fake:all-srcs",

pkg/controller/cloud/BUILD renamed to staging/src/k8s.io/cloud-provider/controllers/nodelifecycle/BUILD

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
33
go_library(
44
name = "go_default_library",
55
srcs = ["node_lifecycle_controller.go"],
6-
importpath = "k8s.io/kubernetes/pkg/controller/cloud",
6+
importmap = "k8s.io/kubernetes/vendor/k8s.io/cloud-provider/controllers/nodelifecycle",
7+
importpath = "k8s.io/cloud-provider/controllers/nodelifecycle",
78
visibility = ["//visibility:public"],
89
deps = [
910
"//staging/src/k8s.io/api/core/v1:go_default_library",
File renamed without changes.

pkg/controller/cloud/node_lifecycle_controller.go renamed to staging/src/k8s.io/cloud-provider/controllers/nodelifecycle/node_lifecycle_controller.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,3 +207,26 @@ func shutdownInCloudProvider(ctx context.Context, cloud cloudprovider.Interface,
207207

208208
return shutdown, err
209209
}
210+
211+
// ensureNodeExistsByProviderID checks if the instance exists by the provider id,
212+
// If provider id in spec is empty it calls instanceId with node name to get provider id
213+
func ensureNodeExistsByProviderID(ctx context.Context, instances cloudprovider.Instances, node *v1.Node) (bool, error) {
214+
providerID := node.Spec.ProviderID
215+
if providerID == "" {
216+
var err error
217+
providerID, err = instances.InstanceID(ctx, types.NodeName(node.Name))
218+
if err != nil {
219+
if err == cloudprovider.InstanceNotFound {
220+
return false, nil
221+
}
222+
return false, err
223+
}
224+
225+
if providerID == "" {
226+
klog.Warningf("Cannot find valid providerID for node name %q, assuming non existence", node.Name)
227+
return false, nil
228+
}
229+
}
230+
231+
return instances.InstanceExistsByProviderID(ctx, providerID)
232+
}

0 commit comments

Comments
 (0)