package start import ( "github.com/spf13/pflag" ) // NetworkArgs is a struct that the command stores flag values into. type NetworkArgs struct { // NetworkPluginName is the name of the networking plugin to be used for networking. NetworkPluginName string // ClusterNetworkCIDR is the CIDR string representing the network that all containers // should belong to. ClusterNetworkCIDR string // HostSubnetLength is the length of subnet each host is given from the network-cidr. HostSubnetLength uint32 // ServiceNetworkCIDR is the CIDR string representing the network that service IP // addresses will be allocated from ServiceNetworkCIDR string } // BindNetworkArgs binds values to the given arguments by using flags func BindNetworkArgs(args *NetworkArgs, flags *pflag.FlagSet, prefix string) { flags.StringVar(&args.NetworkPluginName, prefix+"network-plugin", args.NetworkPluginName, "The name of the networking plugin to be used for networking.") flags.StringVar(&args.ClusterNetworkCIDR, prefix+"network-cidr", args.ClusterNetworkCIDR, "The CIDR string representing the network that all containers should belong to.") flags.Uint32Var(&args.HostSubnetLength, prefix+"host-subnet-length", args.HostSubnetLength, "The length of subnet each host is given from the network-cidr.") flags.StringVar(&args.ServiceNetworkCIDR, prefix+"portal-net", args.ServiceNetworkCIDR, "The CIDR string representing the network that portal/service IPs will be assigned from. This must not overlap with any IP ranges assigned to nodes for pods.") } // NewDefaultNetworkArgs returns a new set of network arguments func NewDefaultNetworkArgs() *NetworkArgs { config := &NetworkArgs{ NetworkPluginName: "", ClusterNetworkCIDR: "10.128.0.0/14", HostSubnetLength: 9, ServiceNetworkCIDR: "172.30.0.0/16", } return config }