Lock ServerSideApply feature to true
Kubernetes-commit: 57c95fbfa12bc04456330d8b0b29f333106cf156
This commit is contained in:
parent
66c3451890
commit
baa5a012e9
|
|
@ -260,7 +260,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
||||||
}
|
}
|
||||||
|
|
||||||
var resetFields map[fieldpath.APIVersion]*fieldpath.Set
|
var resetFields map[fieldpath.APIVersion]*fieldpath.Set
|
||||||
if a.group.OpenAPIModels != nil && utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
if a.group.OpenAPIModels != nil {
|
||||||
if resetFieldsStrategy, isResetFieldsStrategy := storage.(rest.ResetFieldsStrategy); isResetFieldsStrategy {
|
if resetFieldsStrategy, isResetFieldsStrategy := storage.(rest.ResetFieldsStrategy); isResetFieldsStrategy {
|
||||||
resetFields = resetFieldsStrategy.GetResetFields()
|
resetFields = resetFieldsStrategy.GetResetFields()
|
||||||
}
|
}
|
||||||
|
|
@ -599,7 +599,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
||||||
if a.group.MetaGroupVersion != nil {
|
if a.group.MetaGroupVersion != nil {
|
||||||
reqScope.MetaGroupVersion = *a.group.MetaGroupVersion
|
reqScope.MetaGroupVersion = *a.group.MetaGroupVersion
|
||||||
}
|
}
|
||||||
if a.group.OpenAPIModels != nil && utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
if a.group.OpenAPIModels != nil {
|
||||||
reqScope.FieldManager, err = fieldmanager.NewDefaultFieldManager(
|
reqScope.FieldManager, err = fieldmanager.NewDefaultFieldManager(
|
||||||
a.group.TypeConverter,
|
a.group.TypeConverter,
|
||||||
a.group.UnsafeConvertor,
|
a.group.UnsafeConvertor,
|
||||||
|
|
@ -785,9 +785,7 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
|
||||||
string(types.JSONPatchType),
|
string(types.JSONPatchType),
|
||||||
string(types.MergePatchType),
|
string(types.MergePatchType),
|
||||||
string(types.StrategicMergePatchType),
|
string(types.StrategicMergePatchType),
|
||||||
}
|
string(types.ApplyPatchType),
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
|
||||||
supportedTypes = append(supportedTypes, string(types.ApplyPatchType))
|
|
||||||
}
|
}
|
||||||
handler := metrics.InstrumentRouteFunc(action.Verb, group, version, resource, subresource, requestScope, metrics.APIServerComponent, deprecated, removedRelease, restfulPatchResource(patcher, reqScope, admit, supportedTypes))
|
handler := metrics.InstrumentRouteFunc(action.Verb, group, version, resource, subresource, requestScope, metrics.APIServerComponent, deprecated, removedRelease, restfulPatchResource(patcher, reqScope, admit, supportedTypes))
|
||||||
handler = utilwarning.AddWarningsHandler(handler, warnings)
|
handler = utilwarning.AddWarningsHandler(handler, warnings)
|
||||||
|
|
|
||||||
|
|
@ -605,7 +605,7 @@ func CleanVerb(verb string, request *http.Request) string {
|
||||||
if verb == "WATCHLIST" {
|
if verb == "WATCHLIST" {
|
||||||
reportedVerb = "WATCH"
|
reportedVerb = "WATCH"
|
||||||
}
|
}
|
||||||
if verb == "PATCH" && request.Header.Get("Content-Type") == string(types.ApplyPatchType) && utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
if verb == "PATCH" && request.Header.Get("Content-Type") == string(types.ApplyPatchType) {
|
||||||
reportedVerb = "APPLY"
|
reportedVerb = "APPLY"
|
||||||
}
|
}
|
||||||
return reportedVerb
|
return reportedVerb
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
|
||||||
|
|
||||||
RemoveSelfLink: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
|
RemoveSelfLink: {Default: true, PreRelease: featuregate.GA, LockToDefault: true},
|
||||||
|
|
||||||
ServerSideApply: {Default: true, PreRelease: featuregate.GA},
|
ServerSideApply: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.29
|
||||||
|
|
||||||
ServerSideFieldValidation: {Default: true, PreRelease: featuregate.Beta},
|
ServerSideFieldValidation: {Default: true, PreRelease: featuregate.Beta},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,7 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
"k8s.io/apiserver/pkg/admission"
|
"k8s.io/apiserver/pkg/admission"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
"k8s.io/apiserver/pkg/features"
|
|
||||||
"k8s.io/apiserver/pkg/storage/names"
|
"k8s.io/apiserver/pkg/storage/names"
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
|
||||||
"k8s.io/apiserver/pkg/warning"
|
"k8s.io/apiserver/pkg/warning"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -121,11 +119,6 @@ func BeforeCreate(strategy RESTCreateStrategy, ctx context.Context, obj runtime.
|
||||||
|
|
||||||
strategy.PrepareForCreate(ctx, obj)
|
strategy.PrepareForCreate(ctx, obj)
|
||||||
|
|
||||||
// Ensure managedFields is not set unless the feature is enabled
|
|
||||||
if !utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
|
||||||
objectMeta.SetManagedFields(nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
if errs := strategy.Validate(ctx, obj); len(errs) > 0 {
|
if errs := strategy.Validate(ctx, obj); len(errs) > 0 {
|
||||||
return errors.NewInvalid(kind.GroupKind(), objectMeta.GetName(), errs)
|
return errors.NewInvalid(kind.GroupKind(), objectMeta.GetName(), errs)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,6 @@ import (
|
||||||
"k8s.io/apimachinery/pkg/util/validation/field"
|
"k8s.io/apimachinery/pkg/util/validation/field"
|
||||||
"k8s.io/apiserver/pkg/admission"
|
"k8s.io/apiserver/pkg/admission"
|
||||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||||
"k8s.io/apiserver/pkg/features"
|
|
||||||
utilfeature "k8s.io/apiserver/pkg/util/feature"
|
|
||||||
"k8s.io/apiserver/pkg/warning"
|
"k8s.io/apiserver/pkg/warning"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -128,12 +126,6 @@ func BeforeUpdate(strategy RESTUpdateStrategy, ctx context.Context, obj, old run
|
||||||
}
|
}
|
||||||
objectMeta.SetGeneration(oldMeta.GetGeneration())
|
objectMeta.SetGeneration(oldMeta.GetGeneration())
|
||||||
|
|
||||||
// Ensure managedFields state is removed unless ServerSideApply is enabled
|
|
||||||
if !utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
|
||||||
oldMeta.SetManagedFields(nil)
|
|
||||||
objectMeta.SetManagedFields(nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
strategy.PrepareForUpdate(ctx, obj, old)
|
strategy.PrepareForUpdate(ctx, obj, old)
|
||||||
|
|
||||||
// Use the existing UID if none is provided
|
// Use the existing UID if none is provided
|
||||||
|
|
|
||||||
|
|
@ -666,7 +666,7 @@ func (s *GenericAPIServer) installAPIResources(apiPrefix string, apiGroupInfo *A
|
||||||
}
|
}
|
||||||
apiGroupVersion.OpenAPIModels = openAPIModels
|
apiGroupVersion.OpenAPIModels = openAPIModels
|
||||||
|
|
||||||
if openAPIModels != nil && utilfeature.DefaultFeatureGate.Enabled(features.ServerSideApply) {
|
if openAPIModels != nil {
|
||||||
typeConverter, err := fieldmanager.NewTypeConverter(openAPIModels, false)
|
typeConverter, err := fieldmanager.NewTypeConverter(openAPIModels, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue