Skip to content

Commit 5ca9c9d

Browse files
committed
features: removed GA'ed ServerSideFieldValidation and ServerSideApply feature gate
See kubernetes/kubernetes#127058 On-behalf-of: @SAP [email protected] Signed-off-by: Robert Vasek <[email protected]>
1 parent 3cc2772 commit 5ca9c9d

File tree

3 files changed

+29
-41
lines changed

3 files changed

+29
-41
lines changed

pkg/features/kcp_features.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,8 @@ var defaultGenericControlPlaneFeatureGates = map[featuregate.Feature]featuregate
8989
WorkspaceMounts: {Default: false, PreRelease: featuregate.Alpha},
9090
// inherited features from generic apiserver, relisted here to get a conflict if it is changed
9191
// unintentionally on either side:
92-
genericfeatures.APIResponseCompression: {Default: true, PreRelease: featuregate.Beta},
93-
genericfeatures.OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta},
94-
genericfeatures.ServerSideFieldValidation: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
92+
genericfeatures.APIResponseCompression: {Default: true, PreRelease: featuregate.Beta},
93+
genericfeatures.OpenAPIEnums: {Default: true, PreRelease: featuregate.Beta},
9594

9695
logsapi.LoggingBetaOptions: {Default: true, PreRelease: featuregate.Beta},
9796
logsapi.ContextualLogging: {Default: true, PreRelease: featuregate.Alpha},

pkg/virtual/framework/dynamic/apiserver/handler.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ import (
3232
"k8s.io/apiserver/pkg/endpoints/handlers/responsewriters"
3333
"k8s.io/apiserver/pkg/endpoints/metrics"
3434
apirequest "k8s.io/apiserver/pkg/endpoints/request"
35-
"k8s.io/apiserver/pkg/features"
3635
"k8s.io/apiserver/pkg/registry/rest"
3736
kubernetesscheme "k8s.io/client-go/kubernetes/scheme"
3837
"k8s.io/kube-openapi/pkg/validation/spec"
3938

40-
kcpfeatures "github.com/kcp-dev/kcp/pkg/features"
4139
"github.com/kcp-dev/kcp/pkg/virtual/framework/dynamic/apidefinition"
4240
dynamiccontext "github.com/kcp-dev/kcp/pkg/virtual/framework/dynamic/context"
4341
apisv1alpha1 "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha1"
@@ -178,6 +176,7 @@ func (r *resourceHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
178176
supportedTypes := []string{
179177
string(types.JSONPatchType),
180178
string(types.MergePatchType),
179+
string(types.ApplyPatchType),
181180
}
182181

183182
// HACK: Support resources of the client-go scheme the way existing clients expect it:
@@ -202,10 +201,6 @@ func (r *resourceHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
202201
}
203202
}
204203

205-
if kcpfeatures.DefaultFeatureGate.Enabled(features.ServerSideApply) {
206-
supportedTypes = append(supportedTypes, string(types.ApplyPatchType))
207-
}
208-
209204
var handlerFunc http.HandlerFunc
210205
subresources := apiResourceVersion.Subresources
211206
switch {

pkg/virtual/framework/dynamic/apiserver/serving_info.go

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import (
3838
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
3939
"k8s.io/apiserver/pkg/endpoints/handlers"
4040
"k8s.io/apiserver/pkg/endpoints/openapi"
41-
"k8s.io/apiserver/pkg/features"
4241
"k8s.io/apiserver/pkg/registry/rest"
4342
genericapiserver "k8s.io/apiserver/pkg/server"
4443
utilopenapi "k8s.io/apiserver/pkg/util/openapi"
@@ -47,7 +46,6 @@ import (
4746

4847
"github.com/kcp-dev/logicalcluster/v3"
4948

50-
kcpfeatures "github.com/kcp-dev/kcp/pkg/features"
5149
"github.com/kcp-dev/kcp/pkg/virtual/framework/dynamic/apidefinition"
5250
apisv1alpha1 "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha1"
5351
)
@@ -245,23 +243,21 @@ func CreateServingInfoFor(genericConfig genericapiserver.CompletedConfig, apiRes
245243
OpenapiModels: modelsByGKV,
246244
}
247245

248-
if kcpfeatures.DefaultFeatureGate.Enabled(features.ServerSideApply) {
249-
if withResetFields, canGetResetFields := storage.(rest.ResetFieldsStrategy); canGetResetFields {
250-
resetFields := withResetFields.GetResetFields()
251-
reqScope := *requestScope
252-
reqScope, err = apiextensionsapiserver.ScopeWithFieldManager(
253-
typeConverter,
254-
reqScope,
255-
resetFields,
256-
"",
257-
)
258-
if err != nil {
259-
return nil, err
260-
}
261-
requestScope = &reqScope
262-
} else {
263-
return nil, fmt.Errorf("storage for resource %q should define GetResetFields", gvk.String())
246+
if withResetFields, canGetResetFields := storage.(rest.ResetFieldsStrategy); canGetResetFields {
247+
resetFields := withResetFields.GetResetFields()
248+
reqScope := *requestScope
249+
reqScope, err = apiextensionsapiserver.ScopeWithFieldManager(
250+
typeConverter,
251+
reqScope,
252+
resetFields,
253+
"",
254+
)
255+
if err != nil {
256+
return nil, err
264257
}
258+
requestScope = &reqScope
259+
} else {
260+
return nil, fmt.Errorf("storage for resource %q should define GetResetFields", gvk.String())
265261
}
266262

267263
var statusScope handlers.RequestScope
@@ -275,21 +271,19 @@ func CreateServingInfoFor(genericConfig genericapiserver.CompletedConfig, apiRes
275271
ClusterScoped: clusterScoped,
276272
}
277273

278-
if kcpfeatures.DefaultFeatureGate.Enabled(features.ServerSideApply) {
279-
if withResetFields, canGetResetFields := statusStorage.(rest.ResetFieldsStrategy); canGetResetFields {
280-
resetFields := withResetFields.GetResetFields()
281-
statusScope, err = apiextensionsapiserver.ScopeWithFieldManager(
282-
typeConverter,
283-
statusScope,
284-
resetFields,
285-
"status",
286-
)
287-
if err != nil {
288-
return nil, err
289-
}
290-
} else {
291-
return nil, fmt.Errorf("storage for resource %q status should define GetResetFields", gvk.String())
274+
if withResetFields, canGetResetFields := statusStorage.(rest.ResetFieldsStrategy); canGetResetFields {
275+
resetFields := withResetFields.GetResetFields()
276+
statusScope, err = apiextensionsapiserver.ScopeWithFieldManager(
277+
typeConverter,
278+
statusScope,
279+
resetFields,
280+
"status",
281+
)
282+
if err != nil {
283+
return nil, err
292284
}
285+
} else {
286+
return nil, fmt.Errorf("storage for resource %q status should define GetResetFields", gvk.String())
293287
}
294288
}
295289

0 commit comments

Comments
 (0)