Merge pull request #31509 from ping035627/ping035627-patch-0826

Automatic merge from submit-queue

Combine the ValidateRunOptions errors

In the "ValidateRunOptions" function, it had better to show all the invalid flags, so the user can modify them at once.
This commit is contained in:
Kubernetes Submit Queue 2016-09-07 10:14:43 -07:00 committed by GitHub
commit d0ee9ce47e

View File

@ -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)
}
}