From fcf2df9ad7ea688d75b2e9abb036b9d7abcc6e7c Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Mon, 26 Jun 2017 11:48:35 +0800 Subject: [PATCH] Validate --storage-backend type. --- staging/src/k8s.io/apiserver/pkg/server/options/BUILD | 1 + .../src/k8s.io/apiserver/pkg/server/options/etcd.go | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index 02afcb85038..999afcd2e8a 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -51,6 +51,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/initializer:go_default_library", "//vendor/k8s.io/apiserver/pkg/audit:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go b/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go index bdaa0f2af67..16a111397ac 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go @@ -22,6 +22,7 @@ import ( "github.com/spf13/pflag" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/registry/generic" genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/server" @@ -47,6 +48,12 @@ type EtcdOptions struct { DefaultWatchCacheSize int } +var storageTypes = sets.NewString( + storagebackend.StorageTypeUnset, + storagebackend.StorageTypeETCD2, + storagebackend.StorageTypeETCD3, +) + func NewEtcdOptions(backendConfig *storagebackend.Config) *EtcdOptions { return &EtcdOptions{ StorageConfig: *backendConfig, @@ -64,6 +71,10 @@ func (s *EtcdOptions) Validate() []error { allErrors = append(allErrors, fmt.Errorf("--etcd-servers must be specified")) } + if !storageTypes.Has(s.StorageConfig.Type) { + allErrors = append(allErrors, fmt.Errorf("--storage-backend invalid, must be 'etcd3' or 'etcd2'. If not specified, it will default to 'etcd3'")) + } + return allErrors }