diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index b1ba932376bd..4edf917bcd17 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -28,8 +28,6 @@ import ( "os" "time" - configv1 "github.com/openshift/api/config/v1" - openshiftfeatures "github.com/openshift/library-go/pkg/features" "k8s.io/kubernetes/openshift-kube-apiserver/admission/admissionenablement" "k8s.io/kubernetes/openshift-kube-apiserver/enablement" "k8s.io/kubernetes/openshift-kube-apiserver/openshiftkubeapiserver" @@ -84,12 +82,6 @@ import ( "k8s.io/kubernetes/pkg/serviceaccount" ) -// OpenShiftKubeAPIServerFeatureGates contains list of feature gates that -// will be honored by openshift-kube-apiserver -var OpenShiftKubeAPIServerFeatureGates []configv1.FeatureGateName = []configv1.FeatureGateName{ - configv1.FeatureGateRouteExternalCertificate, -} - func init() { utilruntime.Must(logsapi.AddFeatureGates(utilfeature.DefaultMutableFeatureGate)) } @@ -178,11 +170,6 @@ cluster's shared state through which all other components interact.`, // openshift feature gates need to be mandatorily initialized before flag set is used // feature gates - if err := openshiftfeatures.InitializeFeatureGates(utilfeature.DefaultMutableFeatureGate, - OpenShiftKubeAPIServerFeatureGates..., - ); err != nil { - klog.Fatal(err) - } fs := cmd.Flags() namedFlagSets := s.Flags() diff --git a/pkg/features/openshift_features.go b/pkg/features/openshift_features.go new file mode 100644 index 000000000000..a5e1e9a52942 --- /dev/null +++ b/pkg/features/openshift_features.go @@ -0,0 +1,31 @@ +package features + +import ( + "k8s.io/apimachinery/pkg/util/runtime" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/component-base/featuregate" + + configv1 "github.com/openshift/api/config/v1" +) + +var OpenshiftFeatureGates = []configv1.FeatureGateName{ + configv1.FeatureGateRouteExternalCertificate, +} + +func init() { + registerOpenshiftFeatures() +} + +func registerOpenshiftFeatures() { + osKubeFeatureGates := map[featuregate.Feature]featuregate.FeatureSpec{} + + for _, featureGateName := range OpenshiftFeatureGates { + osFeature := featuregate.Feature(featureGateName) + + osKubeFeatureGates[osFeature] = featuregate.FeatureSpec{ + Default: false, PreRelease: featuregate.Alpha, + } + } + + runtime.Must(utilfeature.DefaultMutableFeatureGate.Add(osKubeFeatureGates)) +}