From afca5672d66ad873048429e0c017e19cc281d592 Mon Sep 17 00:00:00 2001 From: yuswift Date: Thu, 9 Sep 2021 15:17:32 +0800 Subject: [PATCH] add validation for cluster name Signed-off-by: yuswift --- cmd/controller-manager/app/options/options.go | 1 + pkg/simple/client/multicluster/options.go | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cmd/controller-manager/app/options/options.go b/cmd/controller-manager/app/options/options.go index a102f7025..3e78e4382 100644 --- a/cmd/controller-manager/app/options/options.go +++ b/cmd/controller-manager/app/options/options.go @@ -139,6 +139,7 @@ func (s *KubeSphereControllerManagerOptions) Validate() []error { errs = append(errs, s.OpenPitrixOptions.Validate()...) errs = append(errs, s.NetworkOptions.Validate()...) errs = append(errs, s.LdapOptions.Validate()...) + errs = append(errs, s.MultiClusterOptions.Validate()...) if len(s.ApplicationSelector) != 0 { _, err := labels.Parse(s.ApplicationSelector) diff --git a/pkg/simple/client/multicluster/options.go b/pkg/simple/client/multicluster/options.go index 487a6a515..30b2b9a80 100644 --- a/pkg/simple/client/multicluster/options.go +++ b/pkg/simple/client/multicluster/options.go @@ -17,9 +17,11 @@ limitations under the License. package multicluster import ( + "errors" "time" "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/util/validation" ) const ( @@ -67,7 +69,18 @@ func NewOptions() *Options { } func (o *Options) Validate() []error { - return nil + var err []error + + res := validation.IsQualifiedName(o.HostClusterName) + if len(res) == 0 { + return err + } + + err = append(err, errors.New("failed to create the host cluster because of invalid cluster name")) + for _, str := range res { + err = append(err, errors.New(str)) + } + return err } func (o *Options) AddFlags(fs *pflag.FlagSet, s *Options) {