From 49b2c969a301f2e2be0d323423284b717fa8075a Mon Sep 17 00:00:00 2001 From: carlory Date: Fri, 30 Aug 2024 14:42:33 +0800 Subject: [PATCH] remove resource flowschemas and prioritylevelconfigurations from legacyBetaEnabledByDefaultResources in v1.32 --- pkg/controlplane/instance.go | 11 --------- pkg/controlplane/instance_test.go | 21 ----------------- .../storageversionhashdata/data.go | 2 -- .../flowcontrol/rest/storage_flowcontrol.go | 14 ----------- .../apiserver/no_new_betas_test.go | 23 ------------------- 5 files changed, 71 deletions(-) diff --git a/pkg/controlplane/instance.go b/pkg/controlplane/instance.go index 62ebf0a8395..e5480d3ad18 100644 --- a/pkg/controlplane/instance.go +++ b/pkg/controlplane/instance.go @@ -452,14 +452,6 @@ var ( flowcontrolv1.SchemeGroupVersion, } - // legacyBetaEnabledByDefaultResources is the list of beta resources we enable. You may only add to this list - // if your resource is already enabled by default in a beta level we still serve AND there is no stable API for it. - // see https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/3136-beta-apis-off-by-default - // for more details. - legacyBetaEnabledByDefaultResources = []schema.GroupVersionResource{ - flowcontrolv1beta3.SchemeGroupVersion.WithResource("flowschemas"), // deprecate in 1.29, remove in 1.32 - flowcontrolv1beta3.SchemeGroupVersion.WithResource("prioritylevelconfigurations"), // deprecate in 1.29, remove in 1.32 - } // betaAPIGroupVersionsDisabledByDefault is for all future beta groupVersions. betaAPIGroupVersionsDisabledByDefault = []schema.GroupVersion{ admissionregistrationv1beta1.SchemeGroupVersion, @@ -496,8 +488,5 @@ func DefaultAPIResourceConfigSource() *serverstorage.ResourceConfig { ret.DisableVersions(betaAPIGroupVersionsDisabledByDefault...) ret.DisableVersions(alphaAPIGroupVersionsDisabledByDefault...) - // enable the legacy beta resources that were present before stopped serving new beta APIs by default. - ret.EnableResources(legacyBetaEnabledByDefaultResources...) - return ret } diff --git a/pkg/controlplane/instance_test.go b/pkg/controlplane/instance_test.go index 524a529520a..ec25b951d2f 100644 --- a/pkg/controlplane/instance_test.go +++ b/pkg/controlplane/instance_test.go @@ -66,7 +66,6 @@ import ( netutils "k8s.io/utils/net" "k8s.io/kubernetes/pkg/api/legacyscheme" - flowcontrolv1bet3 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1beta3" controlplaneapiserver "k8s.io/kubernetes/pkg/controlplane/apiserver" "k8s.io/kubernetes/pkg/controlplane/reconcilers" "k8s.io/kubernetes/pkg/controlplane/storageversionhashdata" @@ -426,14 +425,6 @@ func TestDefaultVars(t *testing.T) { } } - // legacyBetaEnabledByDefaultResources should contain only beta version - for i := range legacyBetaEnabledByDefaultResources { - gv := legacyBetaEnabledByDefaultResources[i] - if !strings.Contains(gv.Version, "beta") { - t.Errorf("legacyBetaEnabledByDefaultResources should contain beta version, but found: %q", gv.String()) - } - } - // betaAPIGroupVersionsDisabledByDefault should contain only beta version for i := range betaAPIGroupVersionsDisabledByDefault { gv := betaAPIGroupVersionsDisabledByDefault[i] @@ -466,15 +457,6 @@ func TestNewBetaResourcesEnabledByDefault(t *testing.T) { storageapiv1beta1.SchemeGroupVersion.WithResource("csinodes"): true, } - // legacyBetaResourcesWithoutStableEquivalents contains those groupresources that were enabled by default as beta - // before we changed that policy and do not have stable versions. These resources are allowed to have additional - // beta versions enabled by default. Nothing new should be added here. There are no future exceptions because there - // are no more beta resources enabled by default. - legacyBetaResourcesWithoutStableEquivalents := map[schema.GroupResource]bool{ - flowcontrolv1bet3.SchemeGroupVersion.WithResource("flowschemas").GroupResource(): true, - flowcontrolv1bet3.SchemeGroupVersion.WithResource("prioritylevelconfigurations").GroupResource(): true, - } - config := DefaultAPIResourceConfigSource() for gvr, enable := range config.ResourceConfigs { if !strings.Contains(gvr.Version, "beta") { @@ -486,9 +468,6 @@ func TestNewBetaResourcesEnabledByDefault(t *testing.T) { if legacyEnabledBetaResources[gvr] { continue // this is a legacy beta resource } - if legacyBetaResourcesWithoutStableEquivalents[gvr.GroupResource()] { - continue // this is another beta of a legacy beta resource with no stable equivalent - } t.Errorf("no new beta resources can be enabled by default, see https://github.com/kubernetes/enhancements/blob/0ad0fc8269165ca300d05ca51c7ce190a79976a5/keps/sig-architecture/3136-beta-apis-off-by-default/README.md: %v", gvr) } } diff --git a/pkg/controlplane/storageversionhashdata/data.go b/pkg/controlplane/storageversionhashdata/data.go index b38b6a64dd8..9948983b426 100644 --- a/pkg/controlplane/storageversionhashdata/data.go +++ b/pkg/controlplane/storageversionhashdata/data.go @@ -84,8 +84,6 @@ var GVRToStorageVersionHash = map[string]string{ "admissionregistration.k8s.io/v1/validatingadmissionpolicies": "6OxvlMmQ6is=", "admissionregistration.k8s.io/v1/validatingadmissionpolicybindings": "v9715VZqakg=", "events.k8s.io/v1/events": "r2yiGXH7wu8=", - "flowcontrol.apiserver.k8s.io/v1beta3/flowschemas": "GJVAJZSZBIw=", - "flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations": "Kir5PVfvNeI=", "flowcontrol.apiserver.k8s.io/v1/flowschemas": "GJVAJZSZBIw=", "flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations": "Kir5PVfvNeI=", } diff --git a/pkg/registry/flowcontrol/rest/storage_flowcontrol.go b/pkg/registry/flowcontrol/rest/storage_flowcontrol.go index 64413b2305c..ca00bb71fce 100644 --- a/pkg/registry/flowcontrol/rest/storage_flowcontrol.go +++ b/pkg/registry/flowcontrol/rest/storage_flowcontrol.go @@ -37,8 +37,6 @@ import ( "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/flowcontrol" flowcontrolapisv1 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1" - flowcontrolapisv1beta1 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1beta1" - flowcontrolapisv1beta2 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1beta2" flowcontrolapisv1beta3 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1beta3" "k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer" flowschemastore "k8s.io/kubernetes/pkg/registry/flowcontrol/flowschema/storage" @@ -59,18 +57,6 @@ const PostStartHookName = "priority-and-fairness-config-producer" func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, error) { apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(flowcontrol.GroupName, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs) - if storageMap, err := p.storage(apiResourceConfigSource, restOptionsGetter, flowcontrolapisv1beta1.SchemeGroupVersion); err != nil { - return genericapiserver.APIGroupInfo{}, err - } else if len(storageMap) > 0 { - apiGroupInfo.VersionedResourcesStorageMap[flowcontrolapisv1beta1.SchemeGroupVersion.Version] = storageMap - } - - if storageMap, err := p.storage(apiResourceConfigSource, restOptionsGetter, flowcontrolapisv1beta2.SchemeGroupVersion); err != nil { - return genericapiserver.APIGroupInfo{}, err - } else if len(storageMap) > 0 { - apiGroupInfo.VersionedResourcesStorageMap[flowcontrolapisv1beta2.SchemeGroupVersion.Version] = storageMap - } - if storageMap, err := p.storage(apiResourceConfigSource, restOptionsGetter, flowcontrolapisv1beta3.SchemeGroupVersion); err != nil { return genericapiserver.APIGroupInfo{}, err } else if len(storageMap) > 0 { diff --git a/test/integration/apiserver/no_new_betas_test.go b/test/integration/apiserver/no_new_betas_test.go index 03f8add3514..1df2f084147 100644 --- a/test/integration/apiserver/no_new_betas_test.go +++ b/test/integration/apiserver/no_new_betas_test.go @@ -24,23 +24,6 @@ import ( ) func TestNoNewBetaAPIsByDefault(t *testing.T) { - // yes, this *is* a copy/paste from somewhere else. We really do mean it when we say you shouldn't be modifying - // this list and this test was created to make it more painful. - // legacyBetaEnabledByDefaultResources is the list of beta resources we enable. You may not add to this list - legacyBetaEnabledByDefaultResources := map[schema.GroupVersionResource]bool{ - gvr("flowcontrol.apiserver.k8s.io", "v1beta2", "flowschemas"): true, // remove in 1.29 - gvr("flowcontrol.apiserver.k8s.io", "v1beta2", "prioritylevelconfigurations"): true, // remove in 1.29 - } - - // legacyBetaResourcesWithoutStableEquivalents contains those groupresources that were enabled by default as beta - // before we changed that policy and do not have stable versions. These resources are allowed to have additional - // beta versions enabled by default. Nothing new should be added here. There are no future exceptions because there - // are no more beta resources enabled by default. - legacyBetaResourcesWithoutStableEquivalents := map[schema.GroupResource]bool{ - gvr("flowcontrol.apiserver.k8s.io", "v1beta1", "flowschemas").GroupResource(): true, - gvr("flowcontrol.apiserver.k8s.io", "v1beta1", "prioritylevelconfigurations").GroupResource(): true, - } - // if you found this because you want to create an integration test for your new beta API, the method you're looking for // is this setupWithResources method and you need to pass the resource you want to enable into it. _, kubeClient, _, tearDownFn := setupWithResources(t, @@ -67,12 +50,6 @@ func TestNoNewBetaAPIsByDefault(t *testing.T) { Version: currResource.Version, Resource: currResource.Name, } - if legacyBetaEnabledByDefaultResources[enabledGVR] { - continue - } - if legacyBetaResourcesWithoutStableEquivalents[enabledGVR.GroupResource()] { - continue - } t.Errorf("%v is a new beta API. New beta APIs may not be enabled by default. "+ "See https://github.com/kubernetes/enhancements/blob/0ad0fc8269165ca300d05ca51c7ce190a79976a5/keps/sig-architecture/3136-beta-apis-off-by-default/README.md "+