diff --git a/pkg/registry/apps/daemonset/strategy.go b/pkg/registry/apps/daemonset/strategy.go index edcdd0423dc..6cfd65ed7d5 100644 --- a/pkg/registry/apps/daemonset/strategy.go +++ b/pkg/registry/apps/daemonset/strategy.go @@ -19,7 +19,6 @@ package daemonset import ( "context" - appsv1beta2 "k8s.io/api/apps/v1beta2" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" apivalidation "k8s.io/apimachinery/pkg/api/validation" @@ -48,20 +47,12 @@ type daemonSetStrategy struct { // Strategy is the default logic that applies when creating and updating DaemonSet objects. var Strategy = daemonSetStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} -// DefaultGarbageCollectionPolicy returns OrphanDependents for extensions/v1beta1 and apps/v1beta2 for backwards compatibility, -// and DeleteDependents for all other versions. +// Make sure we correctly implement the interface. +var _ = rest.GarbageCollectionDeleteStrategy(Strategy) + +// DefaultGarbageCollectionPolicy returns DeleteDependents for all currently served versions. func (daemonSetStrategy) DefaultGarbageCollectionPolicy(ctx context.Context) rest.GarbageCollectionPolicy { - var groupVersion schema.GroupVersion - if requestInfo, found := genericapirequest.RequestInfoFrom(ctx); found { - groupVersion = schema.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion} - } - switch groupVersion { - case extensionsv1beta1.SchemeGroupVersion, appsv1beta2.SchemeGroupVersion: - // for back compatibility - return rest.OrphanDependents - default: - return rest.DeleteDependents - } + return rest.DeleteDependents } // NamespaceScoped returns true because all DaemonSets need to be within a namespace. diff --git a/pkg/registry/apps/daemonset/strategy_test.go b/pkg/registry/apps/daemonset/strategy_test.go index dfc30e2866c..82839fbbfa9 100644 --- a/pkg/registry/apps/daemonset/strategy_test.go +++ b/pkg/registry/apps/daemonset/strategy_test.go @@ -25,7 +25,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/rest" utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/apis/apps" @@ -40,60 +39,6 @@ const ( namespace = "test-namespace" ) -func TestDaemonsetDefaultGarbageCollectionPolicy(t *testing.T) { - // Make sure we correctly implement the interface. - // Otherwise a typo could silently change the default. - var gcds rest.GarbageCollectionDeleteStrategy = Strategy - tests := []struct { - requestInfo genericapirequest.RequestInfo - expectedGCPolicy rest.GarbageCollectionPolicy - isNilRequestInfo bool - }{ - { - genericapirequest.RequestInfo{ - APIGroup: "extensions", - APIVersion: "v1beta1", - Resource: "daemonsets", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1beta2", - Resource: "daemonsets", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1", - Resource: "daemonsets", - }, - rest.DeleteDependents, - false, - }, - { - expectedGCPolicy: rest.DeleteDependents, - isNilRequestInfo: true, - }, - } - - for _, test := range tests { - context := genericapirequest.NewContext() - if !test.isNilRequestInfo { - context = genericapirequest.WithRequestInfo(context, &test.requestInfo) - } - if got, want := gcds.DefaultGarbageCollectionPolicy(context), test.expectedGCPolicy; got != want { - t.Errorf("%s/%s: DefaultGarbageCollectionPolicy() = %#v, want %#v", test.requestInfo.APIGroup, - test.requestInfo.APIVersion, got, want) - } - } -} - func TestSelectorImmutability(t *testing.T) { tests := []struct { requestInfo genericapirequest.RequestInfo diff --git a/pkg/registry/apps/deployment/strategy.go b/pkg/registry/apps/deployment/strategy.go index 43ca93f7d8e..71938f3280f 100644 --- a/pkg/registry/apps/deployment/strategy.go +++ b/pkg/registry/apps/deployment/strategy.go @@ -20,7 +20,6 @@ import ( "context" appsv1beta1 "k8s.io/api/apps/v1beta1" - appsv1beta2 "k8s.io/api/apps/v1beta2" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" apivalidation "k8s.io/apimachinery/pkg/api/validation" @@ -47,20 +46,12 @@ type deploymentStrategy struct { // objects via the REST API. var Strategy = deploymentStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} -// DefaultGarbageCollectionPolicy returns OrphanDependents for extensions/v1beta1, apps/v1beta1, and apps/v1beta2 for backwards compatibility, -// and DeleteDependents for all other versions. +// Make sure we correctly implement the interface. +var _ = rest.GarbageCollectionDeleteStrategy(Strategy) + +// DefaultGarbageCollectionPolicy returns DeleteDependents for all currently served versions. func (deploymentStrategy) DefaultGarbageCollectionPolicy(ctx context.Context) rest.GarbageCollectionPolicy { - var groupVersion schema.GroupVersion - if requestInfo, found := genericapirequest.RequestInfoFrom(ctx); found { - groupVersion = schema.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion} - } - switch groupVersion { - case extensionsv1beta1.SchemeGroupVersion, appsv1beta1.SchemeGroupVersion, appsv1beta2.SchemeGroupVersion: - // for back compatibility - return rest.OrphanDependents - default: - return rest.DeleteDependents - } + return rest.DeleteDependents } // NamespaceScoped is true for deployment. diff --git a/pkg/registry/apps/deployment/strategy_test.go b/pkg/registry/apps/deployment/strategy_test.go index 8955cb5754b..44d702e72e1 100644 --- a/pkg/registry/apps/deployment/strategy_test.go +++ b/pkg/registry/apps/deployment/strategy_test.go @@ -26,7 +26,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/apis/apps" api "k8s.io/kubernetes/pkg/apis/core" ) @@ -186,69 +185,6 @@ func newDeploymentWithSelectorLabels(selectorLabels map[string]string) *apps.Dep } } -func TestDeploymentDefaultGarbageCollectionPolicy(t *testing.T) { - // Make sure we correctly implement the interface. - // Otherwise a typo could silently change the default. - var gcds rest.GarbageCollectionDeleteStrategy = Strategy - tests := []struct { - requestInfo genericapirequest.RequestInfo - expectedGCPolicy rest.GarbageCollectionPolicy - isNilRequestInfo bool - }{ - { - genericapirequest.RequestInfo{ - APIGroup: "extensions", - APIVersion: "v1beta1", - Resource: "deployments", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1beta1", - Resource: "deployments", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1beta2", - Resource: "deployments", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1", - Resource: "deployments", - }, - rest.DeleteDependents, - false, - }, - { - expectedGCPolicy: rest.DeleteDependents, - isNilRequestInfo: true, - }, - } - - for _, test := range tests { - context := genericapirequest.NewContext() - if !test.isNilRequestInfo { - context = genericapirequest.WithRequestInfo(context, &test.requestInfo) - } - if got, want := gcds.DefaultGarbageCollectionPolicy(context), test.expectedGCPolicy; got != want { - t.Errorf("%s/%s: DefaultGarbageCollectionPolicy() = %#v, want %#v", test.requestInfo.APIGroup, - test.requestInfo.APIVersion, got, want) - } - } -} - func newDeploymentWithHugePageValue(reousreceName api.ResourceName, value resource.Quantity) *apps.Deployment { return &apps.Deployment{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/registry/apps/replicaset/strategy.go b/pkg/registry/apps/replicaset/strategy.go index c8729d63cac..add8c23927d 100644 --- a/pkg/registry/apps/replicaset/strategy.go +++ b/pkg/registry/apps/replicaset/strategy.go @@ -23,7 +23,6 @@ import ( "fmt" "strconv" - appsv1beta2 "k8s.io/api/apps/v1beta2" extensionsv1beta1 "k8s.io/api/extensions/v1beta1" apiequality "k8s.io/apimachinery/pkg/api/equality" apivalidation "k8s.io/apimachinery/pkg/api/validation" @@ -53,20 +52,12 @@ type rsStrategy struct { // Strategy is the default logic that applies when creating and updating ReplicaSet objects. var Strategy = rsStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} -// DefaultGarbageCollectionPolicy returns OrphanDependents for extensions/v1beta1 and apps/v1beta2 for backwards compatibility, -// and DeleteDependents for all other versions. +// Make sure we correctly implement the interface. +var _ = rest.GarbageCollectionDeleteStrategy(Strategy) + +// DefaultGarbageCollectionPolicy returns DeleteDependents for all currently served versions. func (rsStrategy) DefaultGarbageCollectionPolicy(ctx context.Context) rest.GarbageCollectionPolicy { - var groupVersion schema.GroupVersion - if requestInfo, found := genericapirequest.RequestInfoFrom(ctx); found { - groupVersion = schema.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion} - } - switch groupVersion { - case extensionsv1beta1.SchemeGroupVersion, appsv1beta2.SchemeGroupVersion: - // for back compatibility - return rest.OrphanDependents - default: - return rest.DeleteDependents - } + return rest.DeleteDependents } // NamespaceScoped returns true because all ReplicaSets need to be within a namespace. diff --git a/pkg/registry/apps/replicaset/strategy_test.go b/pkg/registry/apps/replicaset/strategy_test.go index b136d7d98bc..d76ed810be8 100644 --- a/pkg/registry/apps/replicaset/strategy_test.go +++ b/pkg/registry/apps/replicaset/strategy_test.go @@ -23,7 +23,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/apis/apps" api "k8s.io/kubernetes/pkg/apis/core" ) @@ -228,57 +227,3 @@ func newReplicaSetWithSelectorLabels(selectorLabels map[string]string) *apps.Rep }, } } - -func TestReplicasetDefaultGarbageCollectionPolicy(t *testing.T) { - // Make sure we correctly implement the interface. - // Otherwise a typo could silently change the default. - var gcds rest.GarbageCollectionDeleteStrategy = Strategy - tests := []struct { - requestInfo genericapirequest.RequestInfo - expectedGCPolicy rest.GarbageCollectionPolicy - isNilRequestInfo bool - }{ - { - genericapirequest.RequestInfo{ - APIGroup: "extensions", - APIVersion: "v1beta1", - Resource: "replicasets", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1beta2", - Resource: "replicasets", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1", - Resource: "replicasets", - }, - rest.DeleteDependents, - false, - }, - { - expectedGCPolicy: rest.DeleteDependents, - isNilRequestInfo: true, - }, - } - - for _, test := range tests { - context := genericapirequest.NewContext() - if !test.isNilRequestInfo { - context = genericapirequest.WithRequestInfo(context, &test.requestInfo) - } - if got, want := gcds.DefaultGarbageCollectionPolicy(context), test.expectedGCPolicy; got != want { - t.Errorf("%s/%s: DefaultGarbageCollectionPolicy() = %#v, want %#v", test.requestInfo.APIGroup, - test.requestInfo.APIVersion, got, want) - } - } -} diff --git a/pkg/registry/apps/statefulset/strategy.go b/pkg/registry/apps/statefulset/strategy.go index 5b5ff04af95..21ed15771d8 100644 --- a/pkg/registry/apps/statefulset/strategy.go +++ b/pkg/registry/apps/statefulset/strategy.go @@ -21,13 +21,9 @@ import ( utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/features" - appsv1beta1 "k8s.io/api/apps/v1beta1" - appsv1beta2 "k8s.io/api/apps/v1beta2" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/util/validation/field" - genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api/legacyscheme" @@ -46,20 +42,12 @@ type statefulSetStrategy struct { // Strategy is the default logic that applies when creating and updating Replication StatefulSet objects. var Strategy = statefulSetStrategy{legacyscheme.Scheme, names.SimpleNameGenerator} -// DefaultGarbageCollectionPolicy returns OrphanDependents for apps/v1beta1 and apps/v1beta2 for backwards compatibility, -// and DeleteDependents for all other versions. +// Make sure we correctly implement the interface. +var _ = rest.GarbageCollectionDeleteStrategy(Strategy) + +// DefaultGarbageCollectionPolicy returns DeleteDependents for all currently served versions. func (statefulSetStrategy) DefaultGarbageCollectionPolicy(ctx context.Context) rest.GarbageCollectionPolicy { - var groupVersion schema.GroupVersion - if requestInfo, found := genericapirequest.RequestInfoFrom(ctx); found { - groupVersion = schema.GroupVersion{Group: requestInfo.APIGroup, Version: requestInfo.APIVersion} - } - switch groupVersion { - case appsv1beta1.SchemeGroupVersion, appsv1beta2.SchemeGroupVersion: - // for back compatibility - return rest.OrphanDependents - default: - return rest.DeleteDependents - } + return rest.DeleteDependents } // NamespaceScoped returns true because all StatefulSet' need to be within a namespace. diff --git a/pkg/registry/apps/statefulset/strategy_test.go b/pkg/registry/apps/statefulset/strategy_test.go index ae47f56fad0..1b360cea5d3 100644 --- a/pkg/registry/apps/statefulset/strategy_test.go +++ b/pkg/registry/apps/statefulset/strategy_test.go @@ -23,7 +23,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/diff" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/rest" utilfeature "k8s.io/apiserver/pkg/util/feature" featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/apis/apps" @@ -194,60 +193,6 @@ func TestStatefulSetStrategy(t *testing.T) { } } -func TestStatefulsetDefaultGarbageCollectionPolicy(t *testing.T) { - // Make sure we correctly implement the interface. - // Otherwise a typo could silently change the default. - var gcds rest.GarbageCollectionDeleteStrategy = Strategy - tests := []struct { - requestInfo genericapirequest.RequestInfo - expectedGCPolicy rest.GarbageCollectionPolicy - isNilRequestInfo bool - }{ - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1beta1", - Resource: "statefulsets", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1beta2", - Resource: "statefulsets", - }, - rest.OrphanDependents, - false, - }, - { - genericapirequest.RequestInfo{ - APIGroup: "apps", - APIVersion: "v1", - Resource: "statefulsets", - }, - rest.DeleteDependents, - false, - }, - { - expectedGCPolicy: rest.DeleteDependents, - isNilRequestInfo: true, - }, - } - - for _, test := range tests { - context := genericapirequest.NewContext() - if !test.isNilRequestInfo { - context = genericapirequest.WithRequestInfo(context, &test.requestInfo) - } - if got, want := gcds.DefaultGarbageCollectionPolicy(context), test.expectedGCPolicy; got != want { - t.Errorf("%s/%s: DefaultGarbageCollectionPolicy() = %#v, want %#v", test.requestInfo.APIGroup, - test.requestInfo.APIVersion, got, want) - } - } -} - func TestStatefulSetStatusStrategy(t *testing.T) { ctx := genericapirequest.NewDefaultContext() if !StatusStrategy.NamespaceScoped() {