mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	combine the ValidateRunOptions errors
Signed-off-by: PingWang <wang.ping5@zte.com.cn> replace Aggregate with []error Signed-off-by: PingWang <wang.ping5@zte.com.cn> replace Aggregate with []error Signed-off-by: PingWang <wang.ping5@zte.com.cn>
This commit is contained in:
		@@ -17,48 +17,67 @@ limitations under the License.
 | 
			
		||||
package validation
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	"k8s.io/kubernetes/pkg/genericapiserver/options"
 | 
			
		||||
	utilerrors "k8s.io/kubernetes/pkg/util/errors"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// TODO: Longer term we should read this from some config store, rather than a flag.
 | 
			
		||||
func verifyClusterIPFlags(options *options.ServerRunOptions) {
 | 
			
		||||
func verifyClusterIPFlags(options *options.ServerRunOptions) []error {
 | 
			
		||||
	errors := []error{}
 | 
			
		||||
	if options.ServiceClusterIPRange.IP == nil {
 | 
			
		||||
		glog.Fatal("No --service-cluster-ip-range specified")
 | 
			
		||||
		errors = append(errors, fmt.Errorf("No --service-cluster-ip-range specified"))
 | 
			
		||||
	}
 | 
			
		||||
	var ones, bits = options.ServiceClusterIPRange.Mask.Size()
 | 
			
		||||
	if bits-ones > 20 {
 | 
			
		||||
		glog.Fatal("Specified --service-cluster-ip-range is too large")
 | 
			
		||||
		errors = append(errors, fmt.Errorf("Specified --service-cluster-ip-range is too large"))
 | 
			
		||||
	}
 | 
			
		||||
	return errors
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func verifyServiceNodePort(options *options.ServerRunOptions) {
 | 
			
		||||
func verifyServiceNodePort(options *options.ServerRunOptions) []error {
 | 
			
		||||
	errors := []error{}
 | 
			
		||||
	if options.KubernetesServiceNodePort < 0 || options.KubernetesServiceNodePort > 65535 {
 | 
			
		||||
		glog.Fatalf("--kubernetes-service-node-port %v must be between 0 and 65535, inclusive. If 0, the Kubernetes master service will be of type ClusterIP.", options.KubernetesServiceNodePort)
 | 
			
		||||
		errors = append(errors, fmt.Errorf("--kubernetes-service-node-port %v must be between 0 and 65535, inclusive. If 0, the Kubernetes master service will be of type ClusterIP.", options.KubernetesServiceNodePort))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if options.KubernetesServiceNodePort > 0 && !options.ServiceNodePortRange.Contains(options.KubernetesServiceNodePort) {
 | 
			
		||||
		glog.Fatalf("Kubernetes service port range %v doesn't contain %v", options.ServiceNodePortRange, (options.KubernetesServiceNodePort))
 | 
			
		||||
		errors = append(errors, fmt.Errorf("Kubernetes service port range %v doesn't contain %v", options.ServiceNodePortRange, (options.KubernetesServiceNodePort)))
 | 
			
		||||
	}
 | 
			
		||||
	return errors
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func verifySecureAndInsecurePort(options *options.ServerRunOptions) {
 | 
			
		||||
func verifySecureAndInsecurePort(options *options.ServerRunOptions) []error {
 | 
			
		||||
	errors := []error{}
 | 
			
		||||
	if options.SecurePort < 0 || options.SecurePort > 65535 {
 | 
			
		||||
		glog.Fatalf("--secure-port %v must be between 0 and 65535, inclusive. 0 for turning off secure port.", options.SecurePort)
 | 
			
		||||
		errors = append(errors, fmt.Errorf("--secure-port %v must be between 0 and 65535, inclusive. 0 for turning off secure port.", options.SecurePort))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// TODO: Allow 0 to turn off insecure port.
 | 
			
		||||
	if options.InsecurePort < 1 || options.InsecurePort > 65535 {
 | 
			
		||||
		glog.Fatalf("--insecure-port %v must be between 1 and 65535, inclusive.", options.InsecurePort)
 | 
			
		||||
		errors = append(errors, fmt.Errorf("--insecure-port %v must be between 1 and 65535, inclusive.", options.InsecurePort))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if options.SecurePort == options.InsecurePort {
 | 
			
		||||
		glog.Fatalf("--secure-port and --insecure-port cannot use the same port.")
 | 
			
		||||
		errors = append(errors, fmt.Errorf("--secure-port and --insecure-port cannot use the same port."))
 | 
			
		||||
	}
 | 
			
		||||
	return errors
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ValidateRunOptions(options *options.ServerRunOptions) {
 | 
			
		||||
	verifyClusterIPFlags(options)
 | 
			
		||||
	verifyServiceNodePort(options)
 | 
			
		||||
	verifySecureAndInsecurePort(options)
 | 
			
		||||
	errors := []error{}
 | 
			
		||||
	if errs := verifyClusterIPFlags(options); len(errs) > 0 {
 | 
			
		||||
		errors = append(errors, errs...)
 | 
			
		||||
	}
 | 
			
		||||
	if errs := verifyServiceNodePort(options); len(errs) > 0 {
 | 
			
		||||
		errors = append(errors, errs...)
 | 
			
		||||
	}
 | 
			
		||||
	if errs := verifySecureAndInsecurePort(options); len(errs) > 0 {
 | 
			
		||||
		errors = append(errors, errs...)
 | 
			
		||||
	}
 | 
			
		||||
	if err := utilerrors.NewAggregate(errors); err != nil {
 | 
			
		||||
		glog.Fatalf("Validate server run options failed: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user