mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-20 18:31:15 +00:00
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 <kim.andrewsy@gmail.com>
This commit is contained in:
parent
6d4a19b31c
commit
41dc075a85
@ -12,7 +12,6 @@ go_library(
|
||||
"//cmd/cloud-controller-manager/app/config:go_default_library",
|
||||
"//cmd/cloud-controller-manager/app/options:go_default_library",
|
||||
"//cmd/controller-manager/app:go_default_library",
|
||||
"//pkg/controller/cloud:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/uuid:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||
@ -23,6 +22,7 @@ go_library(
|
||||
"//staging/src/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/node:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/nodelifecycle:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/route:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/service:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
|
||||
|
@ -28,11 +28,11 @@ import (
|
||||
|
||||
cloudprovider "k8s.io/cloud-provider"
|
||||
cloudnodecontroller "k8s.io/cloud-provider/controllers/node"
|
||||
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
|
||||
routecontroller "k8s.io/cloud-provider/controllers/route"
|
||||
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
||||
"k8s.io/klog/v2"
|
||||
cloudcontrollerconfig "k8s.io/kubernetes/cmd/cloud-controller-manager/app/config"
|
||||
cloudcontrollers "k8s.io/kubernetes/pkg/controller/cloud"
|
||||
netutils "k8s.io/utils/net"
|
||||
|
||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
||||
@ -65,7 +65,7 @@ func startCloudNodeController(ctx *cloudcontrollerconfig.CompletedConfig, cloud
|
||||
|
||||
func startCloudNodeLifecycleController(ctx *cloudcontrollerconfig.CompletedConfig, cloud cloudprovider.Interface, stopCh <-chan struct{}) (http.Handler, bool, error) {
|
||||
// Start the cloudNodeLifecycleController
|
||||
cloudNodeLifecycleController, err := cloudcontrollers.NewCloudNodeLifecycleController(
|
||||
cloudNodeLifecycleController, err := cloudnodelifecyclecontroller.NewCloudNodeLifecycleController(
|
||||
ctx.SharedInformers.Core().V1().Nodes(),
|
||||
// cloud node lifecycle controller uses existing cluster role from node-controller
|
||||
ctx.ClientBuilder.ClientOrDie("node-controller"),
|
||||
|
@ -49,7 +49,6 @@ go_library(
|
||||
"//pkg/controller/certificates/rootcacertpublisher:go_default_library",
|
||||
"//pkg/controller/certificates/signer:go_default_library",
|
||||
"//pkg/controller/certificates/signer/config:go_default_library",
|
||||
"//pkg/controller/cloud:go_default_library",
|
||||
"//pkg/controller/clusterroleaggregation:go_default_library",
|
||||
"//pkg/controller/cronjob:go_default_library",
|
||||
"//pkg/controller/daemon:go_default_library",
|
||||
@ -135,6 +134,7 @@ go_library(
|
||||
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/util/keyutil:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/nodelifecycle:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/route:go_default_library",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/service:go_default_library",
|
||||
"//staging/src/k8s.io/component-base/cli/flag:go_default_library",
|
||||
|
@ -38,12 +38,12 @@ import (
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/metadata"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
cloudnodelifecyclecontroller "k8s.io/cloud-provider/controllers/nodelifecycle"
|
||||
routecontroller "k8s.io/cloud-provider/controllers/route"
|
||||
servicecontroller "k8s.io/cloud-provider/controllers/service"
|
||||
"k8s.io/component-base/metrics/prometheus/ratelimiter"
|
||||
csitrans "k8s.io/csi-translation-lib"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
cloudcontroller "k8s.io/kubernetes/pkg/controller/cloud"
|
||||
endpointcontroller "k8s.io/kubernetes/pkg/controller/endpoint"
|
||||
"k8s.io/kubernetes/pkg/controller/garbagecollector"
|
||||
namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace"
|
||||
@ -217,7 +217,7 @@ func startNodeLifecycleController(ctx ControllerContext) (http.Handler, bool, er
|
||||
}
|
||||
|
||||
func startCloudNodeLifecycleController(ctx ControllerContext) (http.Handler, bool, error) {
|
||||
cloudNodeLifecycleController, err := cloudcontroller.NewCloudNodeLifecycleController(
|
||||
cloudNodeLifecycleController, err := cloudnodelifecyclecontroller.NewCloudNodeLifecycleController(
|
||||
ctx.InformerFactory.Core().V1().Nodes(),
|
||||
// cloud node lifecycle controller uses existing cluster role from node-controller
|
||||
ctx.ClientBuilder.ClientOrDie("node-controller"),
|
||||
|
@ -50,7 +50,6 @@ pkg/controller/apis/config/v1alpha1
|
||||
pkg/controller/certificates
|
||||
pkg/controller/certificates/signer
|
||||
pkg/controller/certificates/signer/config/v1alpha1
|
||||
pkg/controller/cloud
|
||||
pkg/controller/clusterroleaggregation
|
||||
pkg/controller/daemon
|
||||
pkg/controller/daemon/config/v1alpha1
|
||||
@ -424,6 +423,7 @@ staging/src/k8s.io/client-go/util/testing
|
||||
staging/src/k8s.io/client-go/util/workqueue
|
||||
staging/src/k8s.io/cloud-provider
|
||||
staging/src/k8s.io/cloud-provider/controllers/node
|
||||
staging/src/k8s.io/cloud-provider/controllers/nodelifecycle
|
||||
staging/src/k8s.io/cloud-provider/controllers/route
|
||||
staging/src/k8s.io/code-generator/cmd/client-gen/args
|
||||
staging/src/k8s.io/code-generator/cmd/client-gen/generators/fake
|
||||
|
@ -108,7 +108,6 @@ filegroup(
|
||||
"//pkg/controller/apis/config:all-srcs",
|
||||
"//pkg/controller/bootstrap:all-srcs",
|
||||
"//pkg/controller/certificates:all-srcs",
|
||||
"//pkg/controller/cloud:all-srcs",
|
||||
"//pkg/controller/clusterroleaggregation:all-srcs",
|
||||
"//pkg/controller/cronjob:all-srcs",
|
||||
"//pkg/controller/daemon:all-srcs",
|
||||
|
@ -38,6 +38,7 @@ filegroup(
|
||||
":package-srcs",
|
||||
"//staging/src/k8s.io/cloud-provider/api:all-srcs",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/node:all-srcs",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/nodelifecycle:all-srcs",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/route:all-srcs",
|
||||
"//staging/src/k8s.io/cloud-provider/controllers/service:all-srcs",
|
||||
"//staging/src/k8s.io/cloud-provider/fake:all-srcs",
|
||||
|
@ -3,7 +3,8 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["node_lifecycle_controller.go"],
|
||||
importpath = "k8s.io/kubernetes/pkg/controller/cloud",
|
||||
importmap = "k8s.io/kubernetes/vendor/k8s.io/cloud-provider/controllers/nodelifecycle",
|
||||
importpath = "k8s.io/cloud-provider/controllers/nodelifecycle",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
@ -207,3 +207,26 @@ func shutdownInCloudProvider(ctx context.Context, cloud cloudprovider.Interface,
|
||||
|
||||
return shutdown, err
|
||||
}
|
||||
|
||||
// ensureNodeExistsByProviderID checks if the instance exists by the provider id,
|
||||
// If provider id in spec is empty it calls instanceId with node name to get provider id
|
||||
func ensureNodeExistsByProviderID(ctx context.Context, instances cloudprovider.Instances, node *v1.Node) (bool, error) {
|
||||
providerID := node.Spec.ProviderID
|
||||
if providerID == "" {
|
||||
var err error
|
||||
providerID, err = instances.InstanceID(ctx, types.NodeName(node.Name))
|
||||
if err != nil {
|
||||
if err == cloudprovider.InstanceNotFound {
|
||||
return false, nil
|
||||
}
|
||||
return false, err
|
||||
}
|
||||
|
||||
if providerID == "" {
|
||||
klog.Warningf("Cannot find valid providerID for node name %q, assuming non existence", node.Name)
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
||||
return instances.InstanceExistsByProviderID(ctx, providerID)
|
||||
}
|
@ -5,6 +5,8 @@ module k8s.io/cloud-provider
|
||||
go 1.13
|
||||
|
||||
require (
|
||||
github.com/google/go-cmp v0.4.0
|
||||
github.com/stretchr/testify v1.4.0
|
||||
k8s.io/api v0.0.0
|
||||
k8s.io/apimachinery v0.0.0
|
||||
k8s.io/client-go v0.0.0
|
||||
|
Loading…
Reference in New Issue
Block a user