@@ -60,6 +60,7 @@ import (
60
60
"k8s.io/apimachinery/pkg/watch"
61
61
"k8s.io/apiserver/pkg/authentication/serviceaccount"
62
62
genericregistry "k8s.io/apiserver/pkg/registry/generic/registry"
63
+ "k8s.io/client-go/discovery"
63
64
"k8s.io/client-go/dynamic"
64
65
clientset "k8s.io/client-go/kubernetes"
65
66
watchtools "k8s.io/client-go/tools/watch"
@@ -450,7 +451,26 @@ var _ = SIGDescribe("Kubectl client", func() {
450
451
}
451
452
452
453
apiGroups , err := c .Discovery ().ServerPreferredResources ()
453
- framework .ExpectNoError (err )
454
+
455
+ if discovery .IsGroupDiscoveryFailedError (err ) {
456
+ discoveryErr := err .(* discovery.ErrGroupDiscoveryFailed )
457
+ for gv := range discoveryErr .Groups {
458
+ if strings .Contains (gv .Group , "." ) && ! strings .HasSuffix (gv .Group , ".k8s.io" ) {
459
+ // tolerate discovery errors for non-k8s.io groups (like aggregated/crd groups)
460
+ continue
461
+ }
462
+ if gv .Group == "wardle.k8s.io" || gv .Group == "metrics.k8s.io" {
463
+ // tolerate discovery errors for known test k8s.io groups like aggregated/metrics groups
464
+ continue
465
+ }
466
+ // otherwise, fail
467
+ framework .ExpectNoError (err )
468
+ }
469
+ } else {
470
+ // fail immediately if this isn't a discovery error
471
+ framework .ExpectNoError (err )
472
+
473
+ }
454
474
455
475
testableResources := etcd .GetEtcdStorageDataForNamespace (f .Namespace .Name )
456
476
0 commit comments