Refactoring ValidateUsages for for bootstrap tokens.

This commit is contained in:
xiangpengzhao 2017-11-23 20:05:28 +08:00
parent 980a5e80b1
commit 926baf5fe7
3 changed files with 8 additions and 5 deletions

View File

@ -25,6 +25,7 @@ import (
"time"
"k8s.io/api/core/v1"
bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api"
"k8s.io/kubernetes/pkg/registry/core/service/ipallocator"
"k8s.io/kubernetes/pkg/util/version"
)
@ -220,7 +221,7 @@ var (
AuthorizationWebhookConfigPath = filepath.Join(KubernetesDir, "webhook_authz.conf")
// DefaultTokenUsages specifies the default functions a token will get
DefaultTokenUsages = []string{"signing", "authentication"}
DefaultTokenUsages = bootstrapapi.KnownTokenUsages
// MasterComponents defines the master component names
MasterComponents = []string{KubeAPIServer, KubeControllerManager, KubeScheduler}

View File

@ -37,16 +37,15 @@ func ValidateBootstrapGroupName(name string) error {
// ValidateUsages validates that the passed in string are valid usage strings for bootstrap tokens.
func ValidateUsages(usages []string) error {
usageAuthentication := strings.TrimPrefix(BootstrapTokenUsageAuthentication, BootstrapTokenUsagePrefix)
usageSigning := strings.TrimPrefix(BootstrapTokenUsageSigningKey, BootstrapTokenUsagePrefix)
validUsages := sets.NewString(KnownTokenUsages...)
invalidUsages := sets.NewString()
for _, usage := range usages {
if usage != usageAuthentication && usage != usageSigning {
if !validUsages.Has(usage) {
invalidUsages.Insert(usage)
}
}
if len(invalidUsages) > 0 {
return fmt.Errorf("invalide bootstrap token usage string: %s, valid usage option: %s, %s", strings.Join(invalidUsages.List(), ","), usageAuthentication, usageSigning)
return fmt.Errorf("invalide bootstrap token usage string: %s, valid usage options: %s", strings.Join(invalidUsages.List(), ","), strings.Join(KnownTokenUsages, ","))
}
return nil
}

View File

@ -95,3 +95,6 @@ const (
// tokens (in addition to any groups from BootstrapTokenExtraGroupsKey).
BootstrapDefaultGroup = "system:bootstrappers"
)
// KnownTokenUsages specifies the known functions a token will get.
var KnownTokenUsages = []string{"signing", "authentication"}