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 ( ...@@ -69,6 +69,11 @@ import (
"github.com/spf13/pflag" "github.com/spf13/pflag"
) )
const (
// Jitter used when starting controller managers
ControllerStartJitter = 1.0
)
// CMServer is the main context object for the controller manager. // CMServer is the main context object for the controller manager.
type CMServer struct { type CMServer struct {
*options.CMServer *options.CMServer
...@@ -172,12 +177,17 @@ func (s *CMServer) Run(_ []string) error { ...@@ -172,12 +177,17 @@ func (s *CMServer) Run(_ []string) error {
} }
if s.AllocateNodeCIDRs && s.ConfigureCloudRoutes { if s.AllocateNodeCIDRs && s.ConfigureCloudRoutes {
routes, ok := cloud.Routes() if cloud == nil {
if !ok { glog.Warning("configure-cloud-routes is set, but no cloud provider specified. Will not configure cloud provider routes.")
glog.Fatal("Cloud provider must support routes if configure-cloud-routes is set") } 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) } else {
routeController.Run(s.NodeSyncPeriod.Duration) 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")) resourceQuotaControllerClient := clientset.NewForConfigOrDie(restclient.AddUserAgent(kubeconfig, "resource-quota-controller"))
...@@ -275,7 +285,7 @@ func (s *CMServer) Run(_ []string) error { ...@@ -275,7 +285,7 @@ func (s *CMServer) Run(_ []string) error {
provisioner, err := kubecontrollermanager.NewVolumeProvisioner(cloud, s.VolumeConfiguration) provisioner, err := kubecontrollermanager.NewVolumeProvisioner(cloud, s.VolumeConfiguration)
if err != nil { 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( 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