Commit 77d6e557 authored by k8s-merge-robot's avatar k8s-merge-robot Committed by GitHub

Merge pull request #29251 from ping035627/ping035627-patch-0720

Automatic merge from submit-queue Add a value judgement for the cloud in controllermanager.go The PR add a value judgement for the cloud, because cloudprovider.InitCloudProvider maybe return nil for the cloud.
parents e20dbc03 ef352391
......@@ -69,6 +69,11 @@ import (
"github.com/spf13/pflag"
)
const (
// Jitter used when starting controller managers
ControllerStartJitter = 1.0
)
// CMServer is the main context object for the controller manager.
type CMServer struct {
*options.CMServer
......@@ -172,12 +177,17 @@ func (s *CMServer) Run(_ []string) error {
}
if s.AllocateNodeCIDRs && s.ConfigureCloudRoutes {
routes, ok := cloud.Routes()
if !ok {
glog.Fatal("Cloud provider must support routes if configure-cloud-routes is set")
if cloud == nil {
glog.Warning("configure-cloud-routes is set, but no cloud provider specified. Will not configure cloud provider routes.")
} else if routes, ok := cloud.Routes(); !ok {
glog.Warning("configure-cloud-routes is set, but cloud provider does not support routes. Will not configure cloud provider routes.")
} else {
routeController := routecontroller.New(routes, clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "route-controller")), s.ClusterName, clusterCIDR)
routeController.Run(s.NodeSyncPeriod.Duration)
time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter))
}
routeController := routecontroller.New(routes, clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "route-controller")), s.ClusterName, clusterCIDR)
routeController.Run(s.NodeSyncPeriod.Duration)
} else {
glog.Infof("Will not configure cloud provider routes for allocate-node-cidrs: %v, configure-cloud-routes: %v.", s.AllocateNodeCIDRs, s.ConfigureCloudRoutes)
}
resourceQuotaControllerClient := clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "resource-quota-controller"))
......@@ -275,7 +285,7 @@ func (s *CMServer) Run(_ []string) error {
provisioner, err := kubecontrollermanager.NewVolumeProvisioner(cloud, s.VolumeConfiguration)
if err != nil {
glog.Fatal("A Provisioner could not be created, but one was expected. Provisioning will not work. This functionality is considered an early Alpha version.")
glog.Fatalf("A Provisioner could not be created: %v, but one was expected. Provisioning will not work. This functionality is considered an early Alpha version.", err)
}
volumeController := persistentvolumecontroller.NewPersistentVolumeController(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment