Expose default service IP CIDR in apiserver

This commit is contained in:
tengqm 2017-08-24 14:10:25 +08:00
parent 0726f8c726
commit 887c48a597
4 changed files with 11 additions and 8 deletions

View File

@ -113,6 +113,8 @@ func NewServerRunOptions() *ServerRunOptions {
}, },
ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange, ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange,
} }
s.ServiceClusterIPRange = kubeoptions.DefaultServiceIPCIDR
// Overwrite the default for storage data format. // Overwrite the default for storage data format.
s.Etcd.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" s.Etcd.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf"

View File

@ -99,6 +99,7 @@ func TestAddFlags(t *testing.T) {
// This is a snapshot of expected options parsed by args. // This is a snapshot of expected options parsed by args.
expected := &ServerRunOptions{ expected := &ServerRunOptions{
ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange, ServiceNodePortRange: kubeoptions.DefaultServiceNodePortRange,
ServiceClusterIPRange: kubeoptions.DefaultServiceIPCIDR,
MasterCount: 5, MasterCount: 5,
EndpointReconcilerType: string(reconcilers.MasterCountReconcilerType), EndpointReconcilerType: string(reconcilers.MasterCountReconcilerType),
AllowPrivileged: false, AllowPrivileged: false,

View File

@ -17,8 +17,13 @@ limitations under the License.
package options package options
import ( import (
"net"
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
) )
// DefaultServiceNodePortRange is the default port range for NodePort services. // DefaultServiceNodePortRange is the default port range for NodePort services.
var DefaultServiceNodePortRange = utilnet.PortRange{Base: 30000, Size: 2768} 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)}

View File

@ -21,7 +21,7 @@ import (
"net" "net"
"github.com/golang/glog" "github.com/golang/glog"
kubeoptions "k8s.io/kubernetes/pkg/kubeapiserver/options"
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator" "k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
) )
@ -31,13 +31,8 @@ import (
func DefaultServiceIPRange(passedServiceClusterIPRange net.IPNet) (net.IPNet, net.IP, error) { func DefaultServiceIPRange(passedServiceClusterIPRange net.IPNet) (net.IPNet, net.IP, error) {
serviceClusterIPRange := passedServiceClusterIPRange serviceClusterIPRange := passedServiceClusterIPRange
if passedServiceClusterIPRange.IP == nil { if passedServiceClusterIPRange.IP == nil {
defaultNet := "10.0.0.0/24" glog.Infof("Network range for service cluster IPs is unspecified. Defaulting to %v.", kubeoptions.DefaultServiceIPCIDR)
glog.Infof("Network range for service cluster IPs is unspecified. Defaulting to %v.", defaultNet) serviceClusterIPRange = kubeoptions.DefaultServiceIPCIDR
_, defaultServiceClusterIPRange, err := net.ParseCIDR(defaultNet)
if err != nil {
return net.IPNet{}, net.IP{}, err
}
serviceClusterIPRange = *defaultServiceClusterIPRange
} }
if size := ipallocator.RangeSize(&serviceClusterIPRange); size < 8 { 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) return net.IPNet{}, net.IP{}, fmt.Errorf("The service cluster IP range must be at least %d IP addresses", 8)