Skip to content

Commit 2787c3d

Browse files
committed
Plumb new gates logic into binaries
TODO: incomplete
1 parent a05f1e5 commit 2787c3d

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

pkg/controlplane/apiserver/options/options.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
logsapi "k8s.io/component-base/logs/api/v1"
3535
"k8s.io/component-base/metrics"
3636
"k8s.io/klog/v2"
37+
"k8s.io/kubernetes/pkg/features"
3738
netutil "k8s.io/utils/net"
3839

3940
_ "k8s.io/kubernetes/pkg/features"
@@ -101,7 +102,7 @@ type CompletedOptions struct {
101102
// NewOptions creates a new ServerRunOptions object with default parameters
102103
func NewOptions() *Options {
103104
s := Options{
104-
GenericServerRunOptions: genericoptions.NewServerRunOptions(),
105+
GenericServerRunOptions: genericoptions.NewServerRunOptions(features.KubernetesGates()),
105106
Etcd: genericoptions.NewEtcdOptions(storagebackend.NewDefaultConfig(kubeoptions.DefaultEtcdPathPrefix, nil)),
106107
SecureServing: kubeoptions.NewSecureServingOptions(),
107108
Audit: genericoptions.NewAuditOptions(),

staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/options/options.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2929
"k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
3030
"k8s.io/apiextensions-apiserver/pkg/apiserver"
31+
"k8s.io/apiextensions-apiserver/pkg/features"
3132
generatedopenapi "k8s.io/apiextensions-apiserver/pkg/generated/openapi"
3233
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3334
utilerrors "k8s.io/apimachinery/pkg/util/errors"
@@ -60,7 +61,7 @@ type CustomResourceDefinitionsServerOptions struct {
6061
// NewCustomResourceDefinitionsServerOptions creates default options of an apiextensions-apiserver.
6162
func NewCustomResourceDefinitionsServerOptions(out, errOut io.Writer) *CustomResourceDefinitionsServerOptions {
6263
o := &CustomResourceDefinitionsServerOptions{
63-
ServerRunOptions: genericoptions.NewServerRunOptions(),
64+
ServerRunOptions: genericoptions.NewServerRunOptions(features.FeatureGates()),
6465
RecommendedOptions: genericoptions.NewRecommendedOptions(
6566
defaultEtcdPathPrefix,
6667
apiserver.Codecs.LegacyCodec(v1beta1.SchemeGroupVersion, v1.SchemeGroupVersion),

staging/src/k8s.io/apiserver/pkg/server/options/server_run_options.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ import (
2323
"strings"
2424
"time"
2525

26+
"github.com/spf13/pflag"
2627
"k8s.io/apimachinery/pkg/runtime/serializer"
2728
"k8s.io/apimachinery/pkg/util/errors"
2829
"k8s.io/apiserver/pkg/server"
2930
utilfeature "k8s.io/apiserver/pkg/util/feature"
30-
31-
"github.com/spf13/pflag"
31+
"k8s.io/utils/feature"
3232
)
3333

3434
const (
@@ -89,9 +89,11 @@ type ServerRunOptions struct {
8989
// This grace period is orthogonal to other grace periods, and
9090
// it is not overridden by any other grace period.
9191
ShutdownWatchTerminationGracePeriod time.Duration
92+
93+
FeatureGates *feature.GateSet
9294
}
9395

94-
func NewServerRunOptions() *ServerRunOptions {
96+
func NewServerRunOptions(featureGates *feature.GateSet) *ServerRunOptions {
9597
defaults := server.NewConfig(serializer.CodecFactory{})
9698
return &ServerRunOptions{
9799
MaxRequestsInFlight: defaults.MaxRequestsInFlight,
@@ -104,6 +106,7 @@ func NewServerRunOptions() *ServerRunOptions {
104106
JSONPatchMaxCopyBytes: defaults.JSONPatchMaxCopyBytes,
105107
MaxRequestBodyBytes: defaults.MaxRequestBodyBytes,
106108
ShutdownSendRetryAfter: false,
109+
FeatureGates: featureGates,
107110
}
108111
}
109112

@@ -338,4 +341,6 @@ func (s *ServerRunOptions) AddUniversalFlags(fs *pflag.FlagSet) {
338341
"for active watch request(s) to drain during the graceful server shutdown window.")
339342

340343
utilfeature.DefaultMutableFeatureGate.AddFlag(fs)
344+
s.FeatureGates.EnablePFlagControl("new-feature-gates", fs)
345+
s.FeatureGates.EnableEnvControl("KUBE_FEATURE_", func(err error) { panic(err.Error()) })
341346
}

staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
3535
"k8s.io/kube-aggregator/pkg/apiserver"
3636
aggregatorscheme "k8s.io/kube-aggregator/pkg/apiserver/scheme"
37+
"k8s.io/kube-aggregator/pkg/features"
3738
"k8s.io/kube-aggregator/pkg/generated/openapi"
3839
)
3940

@@ -92,7 +93,7 @@ func (o *AggregatorOptions) AddFlags(fs *pflag.FlagSet) {
9293
// NewDefaultOptions builds a "normal" set of options. You wouldn't normally expose this, but hyperkube isn't cobra compatible
9394
func NewDefaultOptions(out, err io.Writer) *AggregatorOptions {
9495
o := &AggregatorOptions{
95-
ServerRunOptions: genericoptions.NewServerRunOptions(),
96+
ServerRunOptions: genericoptions.NewServerRunOptions(features.FeatureGates()),
9697
RecommendedOptions: genericoptions.NewRecommendedOptions(
9798
defaultEtcdPathPrefix,
9899
aggregatorscheme.Codecs.LegacyCodec(v1beta1.SchemeGroupVersion),

0 commit comments

Comments
 (0)