From d127ef5a44f79e69805b6464460f59cd41b3e7d4 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Fri, 24 May 2019 15:52:55 +0800 Subject: [PATCH] Report error when illegal values are provided for configType and overrideType --- .../legacy-cloud-providers/azure/azure.go | 26 +++++++++++++++++++ .../azure/azure_config.go | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go index a6a1b4835d4..d567db56cdb 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure.go @@ -273,6 +273,32 @@ func (az *Cloud) initializeCloudFromConfig(config *Config, fromSecret bool) erro config.VMType = vmTypeStandard } + if config.OverrideType == "" { + // The default override type is secretOverrideTypeCan. + config.OverrideType = secretOverrideTypeCan + } else { + supportedOverrideTypes := sets.NewString( + string(secretOverrideTypeCan), + string(secretOverrideTypeMust), + string(secretOverrideTypeNo)) + if !supportedOverrideTypes.Has(string(config.OverrideType)) { + return fmt.Errorf("overrideType %v is not supported, supported values are %v", config.OverrideType, supportedOverrideTypes.List()) + } + } + + if config.ConfigType == "" { + // The default config type is secretConfigureAll. + config.ConfigType = secretConfigureAll + } else { + supportedConfigTypes := sets.NewString( + string(secretConfigureAll), + string(secretConfigureNode), + string(secretConfigureControlPlane)) + if !supportedConfigTypes.Has(string(config.ConfigType)) { + return fmt.Errorf("configType %v is not supported, supported values are %v", config.ConfigType, supportedConfigTypes.List()) + } + } + env, err := auth.ParseAzureEnvironment(config.Cloud) if err != nil { return err diff --git a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go index d5211c7827c..bdc9474e1c6 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go +++ b/staging/src/k8s.io/legacy-cloud-providers/azure/azure_config.go @@ -1,5 +1,5 @@ /* -Copyright 2016 The Kubernetes Authors. +Copyright 2019 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.