mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
e2e: allow unknown providers with a warning
The E2E refactoring tightened the sanity checking of the --provider parameter such that it only allowed known providers. That seemed to make sense because it catches typos, but it turned out that various callers depended on the "accept arbitrary provider value" behavior, therefore it gets restored.
This commit is contained in:
parent
daf17e2aee
commit
bf08f5c63c
@ -134,6 +134,7 @@ go_library(
|
||||
"//vendor/github.com/onsi/ginkgo/config:go_default_library",
|
||||
"//vendor/github.com/onsi/gomega:go_default_library",
|
||||
"//vendor/github.com/onsi/gomega/types:go_default_library",
|
||||
"//vendor/github.com/pkg/errors:go_default_library",
|
||||
"//vendor/github.com/prometheus/common/expfmt:go_default_library",
|
||||
"//vendor/github.com/prometheus/common/model:go_default_library",
|
||||
"//vendor/golang.org/x/crypto/ssh:go_default_library",
|
||||
|
@ -18,8 +18,11 @@ package framework
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"sync"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
clientset "k8s.io/client-go/kubernetes"
|
||||
)
|
||||
@ -66,7 +69,7 @@ func SetupProviderConfig(providerName string) (ProviderInterface, error) {
|
||||
defer mutex.Unlock()
|
||||
factory, ok := providers[providerName]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("The provider %s is unknown.", providerName)
|
||||
return nil, errors.Wrapf(os.ErrNotExist, "The provider %s is unknown.", providerName)
|
||||
}
|
||||
provider, err := factory()
|
||||
|
||||
|
@ -25,6 +25,7 @@ import (
|
||||
|
||||
"github.com/golang/glog"
|
||||
"github.com/onsi/ginkgo/config"
|
||||
"github.com/pkg/errors"
|
||||
utilflag "k8s.io/apiserver/pkg/util/flag"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
@ -366,7 +367,20 @@ func AfterReadingAllFlags(t *TestContextType) {
|
||||
// Make sure that all test runs have a valid TestContext.CloudConfig.Provider.
|
||||
var err error
|
||||
TestContext.CloudConfig.Provider, err = SetupProviderConfig(TestContext.Provider)
|
||||
if err == nil {
|
||||
return
|
||||
}
|
||||
if !os.IsNotExist(errors.Cause(err)) {
|
||||
Failf("Failed to setup provider config: %v", err)
|
||||
}
|
||||
// We allow unknown provider parameters for historic reasons. At least log a
|
||||
// warning to catch typos.
|
||||
// TODO (https://github.com/kubernetes/kubernetes/issues/70200):
|
||||
// - remove the fallback for unknown providers
|
||||
// - proper error message instead of Failf (which panics)
|
||||
glog.Warningf("Unknown provider %q, proceeding as for --provider=skeleton.", TestContext.Provider)
|
||||
TestContext.CloudConfig.Provider, err = SetupProviderConfig("skeleton")
|
||||
if err != nil {
|
||||
Failf("Failed to setup provide r config: %v", err)
|
||||
Failf("Failed to setup fallback skeleton provider config: %v", err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user