From ec8ef0df20e4795dbd0710a091f7b3eecfabff16 Mon Sep 17 00:00:00 2001 From: Eric Ernst Date: Mon, 17 Jun 2019 12:42:05 -0700 Subject: [PATCH] pod overhead: drop from RuntimeClass base on feature-gate Signed-off-by: Eric Ernst --- pkg/registry/node/runtimeclass/strategy.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/registry/node/runtimeclass/strategy.go b/pkg/registry/node/runtimeclass/strategy.go index b68150964df..848b55c3864 100644 --- a/pkg/registry/node/runtimeclass/strategy.go +++ b/pkg/registry/node/runtimeclass/strategy.go @@ -23,9 +23,11 @@ import ( "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/apiserver/pkg/storage/names" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/api/legacyscheme" "k8s.io/kubernetes/pkg/apis/node" "k8s.io/kubernetes/pkg/apis/node/validation" + "k8s.io/kubernetes/pkg/features" ) // strategy implements verification logic for RuntimeClass. @@ -56,7 +58,12 @@ func (strategy) AllowCreateOnUpdate() bool { // PrepareForCreate clears fields that are not allowed to be set by end users // on creation. func (strategy) PrepareForCreate(ctx context.Context, obj runtime.Object) { - _ = obj.(*node.RuntimeClass) + rc := obj.(*node.RuntimeClass) + + if !utilfeature.DefaultFeatureGate.Enabled(features.PodOverhead) && rc != nil { + // Set Overhead to nil only if the feature is disabled and it is not used + rc.Overhead = nil + } } // PrepareForUpdate clears fields that are not allowed to be set by end users on update.