diff --git a/pkg/admission/config_test.go b/pkg/admission/config_test.go index 459a2093e..6e6ec449b 100644 --- a/pkg/admission/config_test.go +++ b/pkg/admission/config_test.go @@ -22,6 +22,8 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/require" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/json" "k8s.io/apiserver/pkg/apis/apiserver" @@ -137,8 +139,8 @@ func TestReadAdmissionConfiguration(t *testing.T) { } scheme := runtime.NewScheme() - apiserver.AddToScheme(scheme) - apiserverapiv1alpha1.AddToScheme(scheme) + require.NoError(t, apiserver.AddToScheme(scheme)) + require.NoError(t, apiserverapiv1alpha1.AddToScheme(scheme)) for testName, testCase := range testCases { if err = ioutil.WriteFile(configFileName, []byte(testCase.ConfigBody), 0644); err != nil { @@ -209,8 +211,8 @@ func TestEmbeddedConfiguration(t *testing.T) { for desc, test := range testCases { scheme := runtime.NewScheme() - apiserver.AddToScheme(scheme) - apiserverapiv1alpha1.AddToScheme(scheme) + require.NoError(t, apiserver.AddToScheme(scheme)) + require.NoError(t, apiserverapiv1alpha1.AddToScheme(scheme)) if err = ioutil.WriteFile(configFileName, []byte(test.ConfigBody), 0644); err != nil { t.Errorf("[%s] unexpected err writing temp file: %v", desc, err) diff --git a/pkg/admission/plugin/webhook/config/client.go b/pkg/admission/plugin/webhook/config/client.go index d520fd032..9667a396d 100644 --- a/pkg/admission/plugin/webhook/config/client.go +++ b/pkg/admission/plugin/webhook/config/client.go @@ -58,7 +58,9 @@ func NewClientManager() (ClientManager, error) { return ClientManager{}, err } admissionScheme := runtime.NewScheme() - admissionv1beta1.AddToScheme(admissionScheme) + if err := admissionv1beta1.AddToScheme(admissionScheme); err != nil { + return ClientManager{}, err + } return ClientManager{ cache: cache, negotiatedSerializer: serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{ diff --git a/pkg/admission/plugin/webhook/config/kubeconfig.go b/pkg/admission/plugin/webhook/config/kubeconfig.go index 7cf0d3193..3f5d22f95 100644 --- a/pkg/admission/plugin/webhook/config/kubeconfig.go +++ b/pkg/admission/plugin/webhook/config/kubeconfig.go @@ -24,6 +24,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission" "k8s.io/apiserver/pkg/admission/plugin/webhook/config/apis/webhookadmission/v1alpha1" @@ -35,8 +36,8 @@ var ( ) func init() { - webhookadmission.AddToScheme(scheme) - v1alpha1.AddToScheme(scheme) + utilruntime.Must(webhookadmission.AddToScheme(scheme)) + utilruntime.Must(v1alpha1.AddToScheme(scheme)) } // LoadConfig extract the KubeConfigFile from configFile diff --git a/pkg/admission/plugin/webhook/generic/conversion_test.go b/pkg/admission/plugin/webhook/generic/conversion_test.go index 704c24638..499853566 100644 --- a/pkg/admission/plugin/webhook/generic/conversion_test.go +++ b/pkg/admission/plugin/webhook/generic/conversion_test.go @@ -20,6 +20,8 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" @@ -29,16 +31,16 @@ import ( example2v1 "k8s.io/apiserver/pkg/apis/example2/v1" ) -func initiateScheme() *runtime.Scheme { +func initiateScheme(t *testing.T) *runtime.Scheme { s := runtime.NewScheme() - example.AddToScheme(s) - examplev1.AddToScheme(s) - example2v1.AddToScheme(s) + require.NoError(t, example.AddToScheme(s)) + require.NoError(t, examplev1.AddToScheme(s)) + require.NoError(t, example2v1.AddToScheme(s)) return s } func TestConvertToGVK(t *testing.T) { - scheme := initiateScheme() + scheme := initiateScheme(t) c := convertor{Scheme: scheme} table := map[string]struct { obj runtime.Object @@ -134,7 +136,7 @@ func TestConvertToGVK(t *testing.T) { // TestRuntimeSchemeConvert verifies that scheme.Convert(x, x, nil) for an unstructured x is a no-op. // This did not use to be like that and we had to wrap scheme.Convert before. func TestRuntimeSchemeConvert(t *testing.T) { - scheme := initiateScheme() + scheme := initiateScheme(t) obj := &unstructured.Unstructured{ Object: map[string]interface{}{ "foo": "bar", diff --git a/pkg/admission/plugin/webhook/mutating/dispatcher_test.go b/pkg/admission/plugin/webhook/mutating/dispatcher_test.go index 874f43a71..efa534c08 100644 --- a/pkg/admission/plugin/webhook/mutating/dispatcher_test.go +++ b/pkg/admission/plugin/webhook/mutating/dispatcher_test.go @@ -21,6 +21,8 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/require" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" @@ -44,9 +46,9 @@ var sampleCRD = unstructured.Unstructured{ func TestDispatch(t *testing.T) { scheme := runtime.NewScheme() - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) - example2v1.AddToScheme(scheme) + require.NoError(t, example.AddToScheme(scheme)) + require.NoError(t, examplev1.AddToScheme(scheme)) + require.NoError(t, example2v1.AddToScheme(scheme)) tests := []struct { name string diff --git a/pkg/admission/plugin/webhook/mutating/plugin_test.go b/pkg/admission/plugin/webhook/mutating/plugin_test.go index b60a62f3b..12715d5dd 100644 --- a/pkg/admission/plugin/webhook/mutating/plugin_test.go +++ b/pkg/admission/plugin/webhook/mutating/plugin_test.go @@ -22,6 +22,8 @@ import ( "strings" "testing" + "github.com/stretchr/testify/require" + "k8s.io/api/admission/v1beta1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -34,8 +36,8 @@ import ( // TestAdmit tests that MutatingWebhook#Admit works as expected func TestAdmit(t *testing.T) { scheme := runtime.NewScheme() - v1beta1.AddToScheme(scheme) - corev1.AddToScheme(scheme) + require.NoError(t, v1beta1.AddToScheme(scheme)) + require.NoError(t, corev1.AddToScheme(scheme)) testServer := webhooktesting.NewTestServer(t) testServer.StartTLS() @@ -103,8 +105,8 @@ func TestAdmit(t *testing.T) { // TestAdmitCachedClient tests that MutatingWebhook#Admit should cache restClient func TestAdmitCachedClient(t *testing.T) { scheme := runtime.NewScheme() - v1beta1.AddToScheme(scheme) - corev1.AddToScheme(scheme) + require.NoError(t, v1beta1.AddToScheme(scheme)) + require.NoError(t, corev1.AddToScheme(scheme)) testServer := webhooktesting.NewTestServer(t) testServer.StartTLS() diff --git a/pkg/admission/plugin/webhook/validating/plugin_test.go b/pkg/admission/plugin/webhook/validating/plugin_test.go index 1cc031c57..a616e9f0f 100644 --- a/pkg/admission/plugin/webhook/validating/plugin_test.go +++ b/pkg/admission/plugin/webhook/validating/plugin_test.go @@ -21,6 +21,8 @@ import ( "strings" "testing" + "github.com/stretchr/testify/require" + "k8s.io/api/admission/v1beta1" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/errors" @@ -31,8 +33,8 @@ import ( // TestValidate tests that ValidatingWebhook#Validate works as expected func TestValidate(t *testing.T) { scheme := runtime.NewScheme() - v1beta1.AddToScheme(scheme) - corev1.AddToScheme(scheme) + require.NoError(t, v1beta1.AddToScheme(scheme)) + require.NoError(t, corev1.AddToScheme(scheme)) testServer := webhooktesting.NewTestServer(t) testServer.StartTLS() @@ -94,8 +96,8 @@ func TestValidate(t *testing.T) { // TestValidateCachedClient tests that ValidatingWebhook#Validate should cache restClient func TestValidateCachedClient(t *testing.T) { scheme := runtime.NewScheme() - v1beta1.AddToScheme(scheme) - corev1.AddToScheme(scheme) + require.NoError(t, v1beta1.AddToScheme(scheme)) + require.NoError(t, corev1.AddToScheme(scheme)) testServer := webhooktesting.NewTestServer(t) testServer.StartTLS() diff --git a/pkg/audit/scheme.go b/pkg/audit/scheme.go index 61c32f526..330b8a7f1 100644 --- a/pkg/audit/scheme.go +++ b/pkg/audit/scheme.go @@ -22,6 +22,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/apis/audit/v1alpha1" "k8s.io/apiserver/pkg/apis/audit/v1beta1" ) @@ -31,6 +32,6 @@ var Codecs = serializer.NewCodecFactory(Scheme) func init() { v1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: "v1"}) - v1alpha1.AddToScheme(Scheme) - v1beta1.AddToScheme(Scheme) + utilruntime.Must(v1alpha1.AddToScheme(Scheme)) + utilruntime.Must(v1beta1.AddToScheme(Scheme)) } diff --git a/pkg/endpoints/apiserver_test.go b/pkg/endpoints/apiserver_test.go index bffdf2b8c..651795b4e 100644 --- a/pkg/endpoints/apiserver_test.go +++ b/pkg/endpoints/apiserver_test.go @@ -54,6 +54,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/diff" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/admission" @@ -126,8 +127,8 @@ func init() { scheme.AddUnversionedTypes(grouplessGroupVersion, &metav1.Status{}) metav1.AddToGroupVersion(scheme, grouplessGroupVersion) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) } func addGrouplessTypes() { diff --git a/pkg/endpoints/handlers/rest_test.go b/pkg/endpoints/handlers/rest_test.go index 549e45438..4aecc6fc2 100644 --- a/pkg/endpoints/handlers/rest_test.go +++ b/pkg/endpoints/handlers/rest_test.go @@ -36,6 +36,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/diff" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/strategicpatch" "k8s.io/apiserver/pkg/apis/example" examplev1 "k8s.io/apiserver/pkg/apis/example/v1" @@ -51,8 +52,8 @@ var ( func init() { metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) } type testPatchType struct { diff --git a/pkg/registry/generic/registry/store_test.go b/pkg/registry/generic/registry/store_test.go index ff9d52a75..7f2d4466b 100644 --- a/pkg/registry/generic/registry/store_test.go +++ b/pkg/registry/generic/registry/store_test.go @@ -39,6 +39,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/selection" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" @@ -66,8 +67,8 @@ const validInitializerName = "test.k8s.io" func init() { metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) } type testGracefulStrategy struct { diff --git a/pkg/server/genericapiserver_test.go b/pkg/server/genericapiserver_test.go index 00a9f87fe..bde27d483 100644 --- a/pkg/server/genericapiserver_test.go +++ b/pkg/server/genericapiserver_test.go @@ -38,6 +38,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/version" "k8s.io/apiserver/pkg/apis/example" @@ -75,8 +76,8 @@ func init() { &metav1.APIGroup{}, &metav1.APIResourceList{}, ) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) } func buildTestOpenAPIDefinition() kubeopenapi.OpenAPIDefinition { diff --git a/pkg/server/options/admission.go b/pkg/server/options/admission.go index 37d0457d7..d28d07e95 100644 --- a/pkg/server/options/admission.go +++ b/pkg/server/options/admission.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/pflag" "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apiserver/pkg/admission" "k8s.io/apiserver/pkg/admission/initializer" @@ -42,8 +43,8 @@ import ( var configScheme = runtime.NewScheme() func init() { - apiserverapi.AddToScheme(configScheme) - apiserverapiv1alpha1.AddToScheme(configScheme) + utilruntime.Must(apiserverapi.AddToScheme(configScheme)) + utilruntime.Must(apiserverapiv1alpha1.AddToScheme(configScheme)) } // AdmissionOptions holds the admission options diff --git a/pkg/server/resourceconfig/helpers_test.go b/pkg/server/resourceconfig/helpers_test.go index dd5d04c69..0ab1070a1 100644 --- a/pkg/server/resourceconfig/helpers_test.go +++ b/pkg/server/resourceconfig/helpers_test.go @@ -20,6 +20,8 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/require" + apiv1 "k8s.io/api/core/v1" extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" "k8s.io/apimachinery/pkg/runtime" @@ -27,7 +29,7 @@ import ( ) func TestParseRuntimeConfig(t *testing.T) { - scheme := newFakeScheme() + scheme := newFakeScheme(t) apiv1GroupVersion := apiv1.SchemeGroupVersion testCases := []struct { runtimeConfig map[string]string @@ -163,10 +165,10 @@ func newFakeAPIResourceConfigSource() *serverstore.ResourceConfig { return ret } -func newFakeScheme() *runtime.Scheme { +func newFakeScheme(t *testing.T) *runtime.Scheme { ret := runtime.NewScheme() - apiv1.AddToScheme(ret) - extensionsapiv1beta1.AddToScheme(ret) + require.NoError(t, apiv1.AddToScheme(ret)) + require.NoError(t, extensionsapiv1beta1.AddToScheme(ret)) ret.SetVersionPriority(apiv1.SchemeGroupVersion) ret.SetVersionPriority(extensionsapiv1beta1.SchemeGroupVersion) diff --git a/pkg/storage/etcd/etcd_helper_test.go b/pkg/storage/etcd/etcd_helper_test.go index 277ad9ac7..c89270eb1 100644 --- a/pkg/storage/etcd/etcd_helper_test.go +++ b/pkg/storage/etcd/etcd_helper_test.go @@ -27,6 +27,8 @@ import ( "time" etcd "github.com/coreos/etcd/client" + "github.com/stretchr/testify/require" + apitesting "k8s.io/apimachinery/pkg/api/testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/conversion" @@ -77,9 +79,9 @@ func testScheme(t *testing.T) (*runtime.Scheme, serializer.CodecFactory) { scheme := runtime.NewScheme() scheme.Log(t) scheme.AddKnownTypes(schema.GroupVersion{Version: runtime.APIVersionInternal}, &storagetesting.TestResource{}) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) - if err := scheme.AddConversionFuncs( + require.NoError(t, example.AddToScheme(scheme)) + require.NoError(t, examplev1.AddToScheme(scheme)) + require.NoError(t, scheme.AddConversionFuncs( func(in *storagetesting.TestResource, out *storagetesting.TestResource, s conversion.Scope) error { *out = *in return nil @@ -88,9 +90,7 @@ func testScheme(t *testing.T) (*runtime.Scheme, serializer.CodecFactory) { *out = *in return nil }, - ); err != nil { - panic(err) - } + )) codecs := serializer.NewCodecFactory(scheme) return scheme, codecs } diff --git a/pkg/storage/etcd3/store_test.go b/pkg/storage/etcd3/store_test.go index 1624a6829..7bd0c53fb 100644 --- a/pkg/storage/etcd3/store_test.go +++ b/pkg/storage/etcd3/store_test.go @@ -39,6 +39,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/util/diff" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/apis/example" examplev1 "k8s.io/apiserver/pkg/apis/example/v1" @@ -54,8 +55,8 @@ const defaultTestPrefix = "test!" func init() { metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) capnslog.SetGlobalLogLevel(capnslog.CRITICAL) } diff --git a/pkg/storage/storagebackend/factory/tls_test.go b/pkg/storage/storagebackend/factory/tls_test.go index d16e25a51..5273c4031 100644 --- a/pkg/storage/storagebackend/factory/tls_test.go +++ b/pkg/storage/storagebackend/factory/tls_test.go @@ -31,6 +31,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apiserver/pkg/apis/example" examplev1 "k8s.io/apiserver/pkg/apis/example/v1" "k8s.io/apiserver/pkg/storage/etcd/testing/testingcert" @@ -42,8 +43,8 @@ var codecs = serializer.NewCodecFactory(scheme) func init() { metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) } func TestTLSConnection(t *testing.T) { diff --git a/pkg/storage/tests/cacher_test.go b/pkg/storage/tests/cacher_test.go index 6a508d5c6..87ae7ff38 100644 --- a/pkg/storage/tests/cacher_test.go +++ b/pkg/storage/tests/cacher_test.go @@ -34,6 +34,7 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" @@ -55,8 +56,8 @@ var ( func init() { metav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion) - example.AddToScheme(scheme) - examplev1.AddToScheme(scheme) + utilruntime.Must(example.AddToScheme(scheme)) + utilruntime.Must(examplev1.AddToScheme(scheme)) } // GetAttrs returns labels and fields of a given object for filtering purposes.