From 887c48a5972edd79f5227bff47f0ef0f769bca88 Mon Sep 17 00:00:00 2001 From: tengqm Date: Thu, 24 Aug 2017 14:10:25 +0800 Subject: [PATCH] Expose default service IP CIDR in apiserver --- cmd/kube-apiserver/app/options/options.go | 2 ++ cmd/kube-apiserver/app/options/options_test.go | 1 + pkg/kubeapiserver/options/options.go | 5 +++++ pkg/master/services.go | 11 +++-------- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cmd/kube-apiserver/app/options/options.go b/cmd/kube-apiserver/app/options/options.go index 544cb8f0aad..60162ef96ea 100644 --- a/cmd/kube-apiserver/app/options/options.go +++ b/cmd/kube-apiserver/app/options/options.go @@ -113,6 +113,8 @@ func NewServerRunOptions() *ServerRunOptions { }, ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange, } + s.ServiceClusterIPRange = kubeoptions.DefaultServiceIPCIDR + // Overwrite the default for storage data format. s.Etcd.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" diff --git a/cmd/kube-apiserver/app/options/options_test.go b/cmd/kube-apiserver/app/options/options_test.go index 5b7c9f2aac3..25b322c9ab7 100644 --- a/cmd/kube-apiserver/app/options/options_test.go +++ b/cmd/kube-apiserver/app/options/options_test.go @@ -99,6 +99,7 @@ func TestAddFlags(t *testing.T) { // This is a snapshot of expected options parsed by args. expected := &ServerRunOptions{ ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange, + ServiceClusterIPRange: kubeoptions.DefaultServiceIPCIDR, MasterCount: 5, EndpointReconcilerType: string(reconcilers.MasterCountReconcilerType), AllowPrivileged: false, diff --git a/pkg/kubeapiserver/options/options.go b/pkg/kubeapiserver/options/options.go index acc1c91f9f2..f7e6eedaf71 100644 --- a/pkg/kubeapiserver/options/options.go +++ b/pkg/kubeapiserver/options/options.go @@ -17,8 +17,13 @@ limitations under the License. package options import ( + "net" + utilnet "k8s.io/apimachinery/pkg/util/net" ) // DefaultServiceNodePortRange is the default port range for NodePort services. var DefaultServiceNodePortRange = utilnet.PortRange{Base: 30000, Size: 2768} + +// DefaultServiceIPCIDR is a CIDR notation of IP range from which to allocate service cluster IPs +var DefaultServiceIPCIDR net.IPNet = net.IPNet{IP: net.ParseIP("10.0.0.0"), Mask: net.CIDRMask(24, 32)} diff --git a/pkg/master/services.go b/pkg/master/services.go index a0e510d1fdd..dd7a08e8240 100644 --- a/pkg/master/services.go +++ b/pkg/master/services.go @@ -21,7 +21,7 @@ import ( "net" "github.com/golang/glog" - + kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" ) @@ -31,13 +31,8 @@ import ( func DefaultServiceIPRange(passedServiceClusterIPRange net.IPNet) (net.IPNet, net.IP, error) { serviceClusterIPRange := passedServiceClusterIPRange if passedServiceClusterIPRange.IP == nil { - defaultNet := "10.0.0.0/24" - glog.Infof("Network range for service cluster IPs is unspecified. Defaulting to %v.", defaultNet) - _, defaultServiceClusterIPRange, err := net.ParseCIDR(defaultNet) - if err != nil { - return net.IPNet{}, net.IP{}, err - } - serviceClusterIPRange = *defaultServiceClusterIPRange + glog.Infof("Network range for service cluster IPs is unspecified. Defaulting to %v.", kubeoptions.DefaultServiceIPCIDR) + serviceClusterIPRange = kubeoptions.DefaultServiceIPCIDR } if size := ipallocator.RangeSize(&serviceClusterIPRange); size < 8 { return net.IPNet{}, net.IP{}, fmt.Errorf("The service cluster IP range must be at least %d IP addresses", 8)