Merge pull request #122571 from p0lyn0mial/upstream-client-go-watch-list-fg

client-go/features: introduce WatchListClient feature gate

Kubernetes-commit: 026a27e5eb431c553d1204817cbf09f1005eca9b
This commit is contained in:
Kubernetes Publisher 2024-01-15 18:20:55 +01:00
commit b13c4f4b00
4 changed files with 53 additions and 10 deletions

View File

@ -141,9 +141,3 @@ var (
// should use AddFeaturesToExistingFeatureGates followed by ReplaceFeatureGates.
featureGates = &atomic.Value{}
)
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
//
// To add a new feature, define a key for it above and add it here. The features will be
// available throughout Kubernetes binaries.
var defaultKubernetesFeatureGates = map[Feature]FeatureSpec{}

View File

@ -0,0 +1,49 @@
/*
Copyright 2024 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package features
const (
// Every feature gate should add method here following this template:
//
// // owner: @username
// // alpha: v1.4
// MyFeature featuregate.Feature = "MyFeature"
//
// Feature gates should be listed in alphabetical, case-sensitive
// (upper before any lower case character) order. This reduces the risk
// of code conflicts because changes are more likely to be scattered
// across the file.
// owner: @p0lyn0mial
// beta: v1.30
//
// Allow the client to get a stream of individual items instead of chunking from the server.
//
// NOTE:
// The feature is disabled in Beta by default because
// it will only be turned on for selected control plane component(s).
WatchListClient Feature = "WatchListClient"
)
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
//
// To add a new feature, define a key for it above and add it here.
// After registering with the binary, the features are, by default, controllable using environment variables.
// For more details, please see envVarFeatureGates implementation.
var defaultKubernetesFeatureGates = map[Feature]FeatureSpec{
WatchListClient: {Default: false, PreRelease: Beta},
}

4
go.mod
View File

@ -24,7 +24,7 @@ require (
golang.org/x/term v0.15.0
golang.org/x/time v0.3.0
google.golang.org/protobuf v1.31.0
k8s.io/api v0.0.0-20240111211838-39c80441f814
k8s.io/api v0.0.0-20240114225744-c9c2aecc731b
k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d
k8s.io/klog/v2 v2.120.0
k8s.io/kube-openapi v0.0.0-20231113174909-778a5567bc1e
@ -61,6 +61,6 @@ require (
)
replace (
k8s.io/api => k8s.io/api v0.0.0-20240111211838-39c80441f814
k8s.io/api => k8s.io/api v0.0.0-20240114225744-c9c2aecc731b
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d
)

4
go.sum
View File

@ -157,8 +157,8 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/api v0.0.0-20240111211838-39c80441f814 h1:w+YEku14/5m9DIMFpUc18gIT7kd/1XnNpuRkel34p34=
k8s.io/api v0.0.0-20240111211838-39c80441f814/go.mod h1:gd8eHKGEAgKEJvMyjMHG88jdPdPbUS/GKULUOrS7+EU=
k8s.io/api v0.0.0-20240114225744-c9c2aecc731b h1:P4NQ7C/VCZXHN3HQh5/Xd5eNqwzh9o22d8GMzU2r2IU=
k8s.io/api v0.0.0-20240114225744-c9c2aecc731b/go.mod h1:gd8eHKGEAgKEJvMyjMHG88jdPdPbUS/GKULUOrS7+EU=
k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d h1:3/zPMR6GopaaAWJTZvob/eJ3uujM6vYgB5Hf7y1gg3s=
k8s.io/apimachinery v0.0.0-20240111211623-02a41040d88d/go.mod h1:TZi5dqCSETF0//y9r5QGBxc7W2udb08uXh6atA++S6Q=
k8s.io/klog/v2 v2.120.0 h1:z+q5mfovBj1fKFxiRzsa2DsJLPIVMk/KFL81LMOfK+8=