Merge pull request #48797 from FengyunPan/fix-empty-cidr

Automatic merge from submit-queue (batch tested with PRs 48231, 47377, 48797, 49020, 49033)

Fix parsing empty CIDR

Fix #48795
Checking ClusterCIDR and ServiceCIDR before parsing them.

**Release note**:
```release-note
NONE
```
This commit is contained in:
Kubernetes Submit Queue
2017-07-17 19:37:45 -07:00
committed by GitHub
3 changed files with 30 additions and 11 deletions

View File

@@ -24,6 +24,7 @@ import (
"os"
goruntime "runtime"
"strconv"
"strings"
"time"
clientv1 "k8s.io/api/core/v1"
@@ -209,11 +210,6 @@ func StartControllers(s *options.CloudControllerManagerServer, kubeconfig *restc
versionedClient := client("shared-informers")
sharedInformers := informers.NewSharedInformerFactory(versionedClient, resyncPeriod(s)())
_, clusterCIDR, err := net.ParseCIDR(s.ClusterCIDR)
if err != nil {
glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", s.ClusterCIDR, err)
}
// Start the CloudNodeController
nodeController := nodecontroller.NewCloudNodeController(
sharedInformers.Core().V1().Nodes(),
@@ -244,6 +240,14 @@ func StartControllers(s *options.CloudControllerManagerServer, kubeconfig *restc
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 {
var clusterCIDR *net.IPNet
if len(strings.TrimSpace(s.ClusterCIDR)) != 0 {
_, clusterCIDR, err = net.ParseCIDR(s.ClusterCIDR)
if err != nil {
glog.Warningf("Unsuccessful parsing of cluster CIDR %v: %v", s.ClusterCIDR, err)
}
}
routeController := routecontroller.New(routes, client("route-controller"), sharedInformers.Core().V1().Nodes(), s.ClusterName, clusterCIDR)
go routeController.Run(stop, s.RouteReconciliationPeriod.Duration)
time.Sleep(wait.Jitter(s.ControllerStartInterval.Duration, ControllerStartJitter))