mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 11:13:48 +00:00
Merge pull request #127017 from carlory/flowcontrolv1beta3
remove resource flowschemas and prioritylevelconfigurations from legacyBetaEnabledByDefaultResources in v1.32
This commit is contained in:
commit
89fbb3f2d2
@ -452,14 +452,6 @@ var (
|
|||||||
flowcontrolv1.SchemeGroupVersion,
|
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 is for all future beta groupVersions.
|
||||||
betaAPIGroupVersionsDisabledByDefault = []schema.GroupVersion{
|
betaAPIGroupVersionsDisabledByDefault = []schema.GroupVersion{
|
||||||
admissionregistrationv1beta1.SchemeGroupVersion,
|
admissionregistrationv1beta1.SchemeGroupVersion,
|
||||||
@ -496,8 +488,5 @@ func DefaultAPIResourceConfigSource() *serverstorage.ResourceConfig {
|
|||||||
ret.DisableVersions(betaAPIGroupVersionsDisabledByDefault...)
|
ret.DisableVersions(betaAPIGroupVersionsDisabledByDefault...)
|
||||||
ret.DisableVersions(alphaAPIGroupVersionsDisabledByDefault...)
|
ret.DisableVersions(alphaAPIGroupVersionsDisabledByDefault...)
|
||||||
|
|
||||||
// enable the legacy beta resources that were present before stopped serving new beta APIs by default.
|
|
||||||
ret.EnableResources(legacyBetaEnabledByDefaultResources...)
|
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,6 @@ import (
|
|||||||
netutils "k8s.io/utils/net"
|
netutils "k8s.io/utils/net"
|
||||||
|
|
||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
flowcontrolv1bet3 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1beta3"
|
|
||||||
controlplaneapiserver "k8s.io/kubernetes/pkg/controlplane/apiserver"
|
controlplaneapiserver "k8s.io/kubernetes/pkg/controlplane/apiserver"
|
||||||
"k8s.io/kubernetes/pkg/controlplane/reconcilers"
|
"k8s.io/kubernetes/pkg/controlplane/reconcilers"
|
||||||
"k8s.io/kubernetes/pkg/controlplane/storageversionhashdata"
|
"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
|
// betaAPIGroupVersionsDisabledByDefault should contain only beta version
|
||||||
for i := range betaAPIGroupVersionsDisabledByDefault {
|
for i := range betaAPIGroupVersionsDisabledByDefault {
|
||||||
gv := betaAPIGroupVersionsDisabledByDefault[i]
|
gv := betaAPIGroupVersionsDisabledByDefault[i]
|
||||||
@ -466,15 +457,6 @@ func TestNewBetaResourcesEnabledByDefault(t *testing.T) {
|
|||||||
storageapiv1beta1.SchemeGroupVersion.WithResource("csinodes"): true,
|
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()
|
config := DefaultAPIResourceConfigSource()
|
||||||
for gvr, enable := range config.ResourceConfigs {
|
for gvr, enable := range config.ResourceConfigs {
|
||||||
if !strings.Contains(gvr.Version, "beta") {
|
if !strings.Contains(gvr.Version, "beta") {
|
||||||
@ -486,9 +468,6 @@ func TestNewBetaResourcesEnabledByDefault(t *testing.T) {
|
|||||||
if legacyEnabledBetaResources[gvr] {
|
if legacyEnabledBetaResources[gvr] {
|
||||||
continue // this is a legacy beta resource
|
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)
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,8 +84,6 @@ var GVRToStorageVersionHash = map[string]string{
|
|||||||
"admissionregistration.k8s.io/v1/validatingadmissionpolicies": "6OxvlMmQ6is=",
|
"admissionregistration.k8s.io/v1/validatingadmissionpolicies": "6OxvlMmQ6is=",
|
||||||
"admissionregistration.k8s.io/v1/validatingadmissionpolicybindings": "v9715VZqakg=",
|
"admissionregistration.k8s.io/v1/validatingadmissionpolicybindings": "v9715VZqakg=",
|
||||||
"events.k8s.io/v1/events": "r2yiGXH7wu8=",
|
"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/flowschemas": "GJVAJZSZBIw=",
|
||||||
"flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations": "Kir5PVfvNeI=",
|
"flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations": "Kir5PVfvNeI=",
|
||||||
}
|
}
|
||||||
|
@ -37,8 +37,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||||
"k8s.io/kubernetes/pkg/apis/flowcontrol"
|
"k8s.io/kubernetes/pkg/apis/flowcontrol"
|
||||||
flowcontrolapisv1 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1"
|
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"
|
flowcontrolapisv1beta3 "k8s.io/kubernetes/pkg/apis/flowcontrol/v1beta3"
|
||||||
"k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer"
|
"k8s.io/kubernetes/pkg/registry/flowcontrol/ensurer"
|
||||||
flowschemastore "k8s.io/kubernetes/pkg/registry/flowcontrol/flowschema/storage"
|
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) {
|
func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) (genericapiserver.APIGroupInfo, error) {
|
||||||
apiGroupInfo := genericapiserver.NewDefaultAPIGroupInfo(flowcontrol.GroupName, legacyscheme.Scheme, legacyscheme.ParameterCodec, legacyscheme.Codecs)
|
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 {
|
if storageMap, err := p.storage(apiResourceConfigSource, restOptionsGetter, flowcontrolapisv1beta3.SchemeGroupVersion); err != nil {
|
||||||
return genericapiserver.APIGroupInfo{}, err
|
return genericapiserver.APIGroupInfo{}, err
|
||||||
} else if len(storageMap) > 0 {
|
} else if len(storageMap) > 0 {
|
||||||
|
@ -24,23 +24,6 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestNoNewBetaAPIsByDefault(t *testing.T) {
|
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
|
// 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.
|
// is this setupWithResources method and you need to pass the resource you want to enable into it.
|
||||||
_, kubeClient, _, tearDownFn := setupWithResources(t,
|
_, kubeClient, _, tearDownFn := setupWithResources(t,
|
||||||
@ -67,12 +50,6 @@ func TestNoNewBetaAPIsByDefault(t *testing.T) {
|
|||||||
Version: currResource.Version,
|
Version: currResource.Version,
|
||||||
Resource: currResource.Name,
|
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. "+
|
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 "+
|
"See https://github.com/kubernetes/enhancements/blob/0ad0fc8269165ca300d05ca51c7ce190a79976a5/keps/sig-architecture/3136-beta-apis-off-by-default/README.md "+
|
||||||
|
Loading…
Reference in New Issue
Block a user