Skip to content

Commit 9274a58

Browse files
committed
Split k8s.io/component-base/registry and add into k8s.io/component-base/version and k8s.io/component-base/featuregate
1 parent 81cd728 commit 9274a58

File tree

40 files changed

+340
-357
lines changed

40 files changed

+340
-357
lines changed

cmd/kube-apiserver/app/options/options_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import (
3838
"k8s.io/component-base/featuregate"
3939
"k8s.io/component-base/logs"
4040
"k8s.io/component-base/metrics"
41-
utilversion "k8s.io/component-base/registry"
41+
utilversion "k8s.io/component-base/version"
4242
kapi "k8s.io/kubernetes/pkg/apis/core"
4343
controlplaneapiserver "k8s.io/kubernetes/pkg/controlplane/apiserver/options"
4444
"k8s.io/kubernetes/pkg/controlplane/reconcilers"
@@ -48,7 +48,7 @@ import (
4848
)
4949

5050
func TestAddFlags(t *testing.T) {
51-
componentGlobalsRegistry := utilversion.DefaultComponentGlobalsRegistry
51+
componentGlobalsRegistry := featuregate.DefaultComponentGlobalsRegistry
5252
t.Cleanup(func() {
5353
componentGlobalsRegistry.Reset()
5454
})
@@ -149,7 +149,7 @@ func TestAddFlags(t *testing.T) {
149149
JSONPatchMaxCopyBytes: int64(3 * 1024 * 1024),
150150
MaxRequestBodyBytes: int64(3 * 1024 * 1024),
151151
ComponentGlobalsRegistry: componentGlobalsRegistry,
152-
ComponentName: utilversion.DefaultKubeComponent,
152+
ComponentName: featuregate.DefaultKubeComponent,
153153
},
154154
Admission: &kubeoptions.AdmissionOptions{
155155
GenericAdmission: &apiserveroptions.AdmissionOptions{

cmd/kube-apiserver/app/options/validation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424

2525
genericoptions "k8s.io/apiserver/pkg/server/options"
2626
utilfeature "k8s.io/apiserver/pkg/util/feature"
27-
utilversion "k8s.io/component-base/registry"
27+
utilversion "k8s.io/component-base/version"
2828
netutils "k8s.io/utils/net"
2929

3030
controlplaneapiserver "k8s.io/kubernetes/pkg/controlplane/apiserver/options"

cmd/kube-apiserver/app/server.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@ import (
3636
serverstorage "k8s.io/apiserver/pkg/server/storage"
3737
utilfeature "k8s.io/apiserver/pkg/util/feature"
3838
"k8s.io/apiserver/pkg/util/notfoundhandler"
39-
utilversion "k8s.io/apiserver/pkg/util/version"
4039
"k8s.io/apiserver/pkg/util/webhook"
4140
clientgoinformers "k8s.io/client-go/informers"
4241
"k8s.io/client-go/rest"
4342
cliflag "k8s.io/component-base/cli/flag"
4443
"k8s.io/component-base/cli/globalflag"
44+
"k8s.io/component-base/featuregate"
4545
"k8s.io/component-base/logs"
4646
logsapi "k8s.io/component-base/logs/api/v1"
4747
_ "k8s.io/component-base/metrics/prometheus/workqueue"
4848
"k8s.io/component-base/term"
49-
"k8s.io/component-base/version"
49+
utilversion "k8s.io/component-base/version"
5050
"k8s.io/component-base/version/verflag"
5151
"k8s.io/klog/v2"
5252
aggregatorapiserver "k8s.io/kube-aggregator/pkg/apiserver"
@@ -64,8 +64,8 @@ func init() {
6464

6565
// NewAPIServerCommand creates a *cobra.Command object with default parameters
6666
func NewAPIServerCommand() *cobra.Command {
67-
_, featureGate := utilversion.DefaultComponentGlobalsRegistry.ComponentGlobalsOrRegister(
68-
utilversion.DefaultKubeComponent, utilversion.DefaultBuildEffectiveVersion(), utilfeature.DefaultMutableFeatureGate)
67+
_, featureGate := featuregate.DefaultComponentGlobalsRegistry.ComponentGlobalsOrRegister(
68+
featuregate.DefaultKubeComponent, utilversion.DefaultBuildEffectiveVersion(), utilfeature.DefaultMutableFeatureGate)
6969
s := options.NewServerRunOptions()
7070

7171
cmd := &cobra.Command{
@@ -78,7 +78,7 @@ cluster's shared state through which all other components interact.`,
7878
// stop printing usage when the command errors
7979
SilenceUsage: true,
8080
PersistentPreRunE: func(*cobra.Command, []string) error {
81-
if err := utilversion.DefaultComponentGlobalsRegistry.Set(); err != nil {
81+
if err := featuregate.DefaultComponentGlobalsRegistry.Set(); err != nil {
8282
return err
8383
}
8484
// silence client-go warnings.
@@ -139,7 +139,7 @@ cluster's shared state through which all other components interact.`,
139139
// Run runs the specified APIServer. This should never exit.
140140
func Run(ctx context.Context, opts options.CompletedOptions) error {
141141
// To help debugging, immediately log version
142-
klog.Infof("Version: %+v", version.Get())
142+
klog.Infof("Version: %+v", utilversion.Get())
143143

144144
klog.InfoS("Golang settings", "GOGC", os.Getenv("GOGC"), "GOMAXPROCS", os.Getenv("GOMAXPROCS"), "GOTRACEBACK", os.Getenv("GOTRACEBACK"))
145145

cmd/kube-apiserver/app/testing/testserver.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ import (
5555
clientgotransport "k8s.io/client-go/transport"
5656
"k8s.io/client-go/util/cert"
5757
"k8s.io/client-go/util/keyutil"
58+
"k8s.io/component-base/featuregate"
5859
featuregatetesting "k8s.io/component-base/featuregate/testing"
5960
logsapi "k8s.io/component-base/logs/api/v1"
60-
utilversion "k8s.io/component-base/registry"
61+
utilversion "k8s.io/component-base/version"
6162
"k8s.io/klog/v2"
6263
"k8s.io/kube-aggregator/pkg/apiserver"
6364
"k8s.io/kubernetes/pkg/features"
@@ -204,8 +205,8 @@ func StartTestServer(t ktesting.TB, instanceOptions *TestServerInstanceOptions,
204205
}
205206
// need to call SetFeatureGateEmulationVersionDuringTest to reset the feature gate emulation version at the end of the test.
206207
featuregatetesting.SetFeatureGateEmulationVersionDuringTest(t, featureGate, effectiveVersion.EmulationVersion())
207-
utilversion.DefaultComponentGlobalsRegistry.Reset()
208-
utilruntime.Must(utilversion.DefaultComponentGlobalsRegistry.Register(utilversion.DefaultKubeComponent, effectiveVersion, featureGate))
208+
featuregate.DefaultComponentGlobalsRegistry.Reset()
209+
utilruntime.Must(featuregate.DefaultComponentGlobalsRegistry.Register(featuregate.DefaultKubeComponent, effectiveVersion, featureGate))
209210

210211
s := options.NewServerRunOptions()
211212
if instanceOptions.RequestTimeout > 0 {
@@ -373,7 +374,7 @@ func StartTestServer(t ktesting.TB, instanceOptions *TestServerInstanceOptions,
373374
s.Authentication.RequestHeader.ExtraHeaderPrefixes = extraHeaders
374375
}
375376

376-
if err := utilversion.DefaultComponentGlobalsRegistry.Set(); err != nil {
377+
if err := featuregate.DefaultComponentGlobalsRegistry.Set(); err != nil {
377378
return result, err
378379
}
379380

cmd/kube-controller-manager/app/controllermanager.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ import (
6262
metricsfeatures "k8s.io/component-base/metrics/features"
6363
controllersmetrics "k8s.io/component-base/metrics/prometheus/controllers"
6464
"k8s.io/component-base/metrics/prometheus/slis"
65-
utilversion "k8s.io/component-base/registry"
6665
"k8s.io/component-base/term"
67-
"k8s.io/component-base/version"
66+
utilversion "k8s.io/component-base/version"
6867
"k8s.io/component-base/version/verflag"
6968
genericcontrollermanager "k8s.io/controller-manager/app"
7069
"k8s.io/controller-manager/controller"
@@ -107,8 +106,8 @@ const (
107106

108107
// NewControllerManagerCommand creates a *cobra.Command object with default parameters
109108
func NewControllerManagerCommand() *cobra.Command {
110-
_, _ = utilversion.DefaultComponentGlobalsRegistry.ComponentGlobalsOrRegister(
111-
utilversion.DefaultKubeComponent, utilversion.DefaultBuildEffectiveVersion(), utilfeature.DefaultMutableFeatureGate)
109+
_, _ = featuregate.DefaultComponentGlobalsRegistry.ComponentGlobalsOrRegister(
110+
featuregate.DefaultKubeComponent, utilversion.DefaultBuildEffectiveVersion(), utilfeature.DefaultMutableFeatureGate)
112111

113112
s, err := options.NewKubeControllerManagerOptions()
114113
if err != nil {
@@ -150,7 +149,7 @@ controller, and serviceaccounts controller.`,
150149
}
151150

152151
// add feature enablement metrics
153-
fg := s.ComponentGlobalsRegistry.FeatureGateFor(utilversion.DefaultKubeComponent)
152+
fg := s.ComponentGlobalsRegistry.FeatureGateFor(featuregate.DefaultKubeComponent)
154153
fg.(featuregate.MutableFeatureGate).AddMetrics()
155154
return Run(context.Background(), c.Complete())
156155
},
@@ -194,7 +193,7 @@ func Run(ctx context.Context, c *config.CompletedConfig) error {
194193
stopCh := ctx.Done()
195194

196195
// To help debugging, immediately log version
197-
logger.Info("Starting", "version", version.Get())
196+
logger.Info("Starting", "version", utilversion.Get())
198197

199198
logger.Info("Golang settings", "GOGC", os.Getenv("GOGC"), "GOMAXPROCS", os.Getenv("GOMAXPROCS"), "GOTRACEBACK", os.Getenv("GOTRACEBACK"))
200199

@@ -293,11 +292,11 @@ func Run(ctx context.Context, c *config.CompletedConfig) error {
293292
}
294293

295294
if utilfeature.DefaultFeatureGate.Enabled(kubefeatures.CoordinatedLeaderElection) {
296-
binaryVersion, err := semver.ParseTolerant(utilversion.DefaultComponentGlobalsRegistry.EffectiveVersionFor(utilversion.DefaultKubeComponent).BinaryVersion().String())
295+
binaryVersion, err := semver.ParseTolerant(featuregate.DefaultComponentGlobalsRegistry.EffectiveVersionFor(featuregate.DefaultKubeComponent).BinaryVersion().String())
297296
if err != nil {
298297
return err
299298
}
300-
emulationVersion, err := semver.ParseTolerant(utilversion.DefaultComponentGlobalsRegistry.EffectiveVersionFor(utilversion.DefaultKubeComponent).EmulationVersion().String())
299+
emulationVersion, err := semver.ParseTolerant(featuregate.DefaultComponentGlobalsRegistry.EffectiveVersionFor(featuregate.DefaultKubeComponent).EmulationVersion().String())
301300
if err != nil {
302301
return err
303302
}

cmd/kube-controller-manager/app/options/options.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import (
3939
"k8s.io/component-base/logs"
4040
logsapi "k8s.io/component-base/logs/api/v1"
4141
"k8s.io/component-base/metrics"
42-
utilversion "k8s.io/component-base/registry"
42+
utilversion "k8s.io/component-base/version"
4343
cmoptions "k8s.io/controller-manager/options"
4444
"k8s.io/klog/v2"
4545
kubectrlmgrconfigv1alpha1 "k8s.io/kube-controller-manager/config/v1alpha1"
@@ -104,7 +104,7 @@ type KubeControllerManagerOptions struct {
104104
ShowHiddenMetricsForVersion string
105105

106106
// ComponentGlobalsRegistry is the registry where the effective versions and feature gates for all components are stored.
107-
ComponentGlobalsRegistry utilversion.ComponentGlobalsRegistry
107+
ComponentGlobalsRegistry featuregate.ComponentGlobalsRegistry
108108
}
109109

110110
// NewKubeControllerManagerOptions creates a new KubeControllerManagerOptions with a default config.
@@ -114,10 +114,10 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
114114
return nil, err
115115
}
116116

117-
if utilversion.DefaultComponentGlobalsRegistry.EffectiveVersionFor(utilversion.DefaultKubeComponent) == nil {
117+
if featuregate.DefaultComponentGlobalsRegistry.EffectiveVersionFor(featuregate.DefaultKubeComponent) == nil {
118118
featureGate := utilfeature.DefaultMutableFeatureGate
119119
effectiveVersion := utilversion.DefaultKubeEffectiveVersion()
120-
utilruntime.Must(utilversion.DefaultComponentGlobalsRegistry.Register(utilversion.DefaultKubeComponent, effectiveVersion, featureGate))
120+
utilruntime.Must(featuregate.DefaultComponentGlobalsRegistry.Register(featuregate.DefaultKubeComponent, effectiveVersion, featureGate))
121121
}
122122

123123
s := KubeControllerManagerOptions{
@@ -209,7 +209,7 @@ func NewKubeControllerManagerOptions() (*KubeControllerManagerOptions, error) {
209209
Authorization: apiserveroptions.NewDelegatingAuthorizationOptions(),
210210
Metrics: metrics.NewOptions(),
211211
Logs: logs.NewOptions(),
212-
ComponentGlobalsRegistry: utilversion.DefaultComponentGlobalsRegistry,
212+
ComponentGlobalsRegistry: featuregate.DefaultComponentGlobalsRegistry,
213213
}
214214

215215
s.Authentication.RemoteKubeConfigFileOptional = true
@@ -450,7 +450,7 @@ func (s *KubeControllerManagerOptions) Validate(allControllers []string, disable
450450
errs = append(errs, s.Authentication.Validate()...)
451451
errs = append(errs, s.Authorization.Validate()...)
452452
errs = append(errs, s.Metrics.Validate()...)
453-
errs = append(errs, utilversion.ValidateKubeEffectiveVersion(s.ComponentGlobalsRegistry.EffectiveVersionFor(utilversion.DefaultKubeComponent)))
453+
errs = append(errs, utilversion.ValidateKubeEffectiveVersion(s.ComponentGlobalsRegistry.EffectiveVersionFor(featuregate.DefaultKubeComponent)))
454454

455455
// TODO: validate component config, master and kubeconfig
456456

cmd/kube-controller-manager/app/options/options_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434

3535
"k8s.io/apiserver/pkg/apis/apiserver"
3636
apiserveroptions "k8s.io/apiserver/pkg/server/options"
37-
utilversion "k8s.io/component-base/registry"
37+
utilversion "k8s.io/component-base/version"
3838

3939
componentbaseconfig "k8s.io/component-base/config"
4040
"k8s.io/component-base/featuregate"
@@ -449,7 +449,7 @@ func TestAddFlags(t *testing.T) {
449449
Master: "192.168.4.20",
450450
Metrics: &metrics.Options{},
451451
Logs: logs.NewOptions(),
452-
ComponentGlobalsRegistry: utilversion.DefaultComponentGlobalsRegistry,
452+
ComponentGlobalsRegistry: featuregate.DefaultComponentGlobalsRegistry,
453453
}
454454

455455
// Sort GCIgnoredResources because it's built from a map, which means the
@@ -659,7 +659,7 @@ func TestApplyTo(t *testing.T) {
659659

660660
func TestEmulatedVersion(t *testing.T) {
661661
var cleanupAndSetupFunc = func() featuregate.FeatureGate {
662-
componentGlobalsRegistry := utilversion.DefaultComponentGlobalsRegistry
662+
componentGlobalsRegistry := featuregate.DefaultComponentGlobalsRegistry
663663
componentGlobalsRegistry.Reset() // make sure this test have a clean state
664664
t.Cleanup(func() {
665665
componentGlobalsRegistry.Reset() // make sure this test doesn't leak a dirty state
@@ -676,7 +676,7 @@ func TestEmulatedVersion(t *testing.T) {
676676
{Version: version.MustParse("1.31"), Default: false, PreRelease: featuregate.Alpha},
677677
},
678678
}))
679-
utilruntime.Must(componentGlobalsRegistry.Register(utilversion.DefaultKubeComponent, verKube, fg))
679+
utilruntime.Must(componentGlobalsRegistry.Register(featuregate.DefaultKubeComponent, verKube, fg))
680680
return fg
681681
}
682682

cmd/kube-scheduler/app/options/options.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ import (
4141
cliflag "k8s.io/component-base/cli/flag"
4242
componentbaseconfig "k8s.io/component-base/config"
4343
"k8s.io/component-base/config/options"
44+
"k8s.io/component-base/featuregate"
4445
"k8s.io/component-base/logs"
4546
logsapi "k8s.io/component-base/logs/api/v1"
4647
"k8s.io/component-base/metrics"
47-
utilversion "k8s.io/component-base/registry"
48+
utilversion "k8s.io/component-base/version"
4849
"k8s.io/klog/v2"
4950
schedulerappconfig "k8s.io/kubernetes/cmd/kube-scheduler/app/config"
5051
"k8s.io/kubernetes/pkg/scheduler"
@@ -75,7 +76,7 @@ type Options struct {
7576
Master string
7677

7778
// ComponentGlobalsRegistry is the registry where the effective versions and feature gates for all components are stored.
78-
ComponentGlobalsRegistry utilversion.ComponentGlobalsRegistry
79+
ComponentGlobalsRegistry featuregate.ComponentGlobalsRegistry
7980

8081
// Flags hold the parsed CLI flags.
8182
Flags *cliflag.NamedFlagSets
@@ -84,10 +85,10 @@ type Options struct {
8485
// NewOptions returns default scheduler app options.
8586
func NewOptions() *Options {
8687
// make sure DefaultKubeComponent is registered in the DefaultComponentGlobalsRegistry.
87-
if utilversion.DefaultComponentGlobalsRegistry.EffectiveVersionFor(utilversion.DefaultKubeComponent) == nil {
88+
if featuregate.DefaultComponentGlobalsRegistry.EffectiveVersionFor(featuregate.DefaultKubeComponent) == nil {
8889
featureGate := utilfeature.DefaultMutableFeatureGate
8990
effectiveVersion := utilversion.DefaultKubeEffectiveVersion()
90-
utilruntime.Must(utilversion.DefaultComponentGlobalsRegistry.Register(utilversion.DefaultKubeComponent, effectiveVersion, featureGate))
91+
utilruntime.Must(featuregate.DefaultComponentGlobalsRegistry.Register(featuregate.DefaultKubeComponent, effectiveVersion, featureGate))
9192
}
9293
o := &Options{
9394
SecureServing: apiserveroptions.NewSecureServingOptions().WithLoopback(),
@@ -107,7 +108,7 @@ func NewOptions() *Options {
107108
},
108109
Metrics: metrics.NewOptions(),
109110
Logs: logs.NewOptions(),
110-
ComponentGlobalsRegistry: utilversion.DefaultComponentGlobalsRegistry,
111+
ComponentGlobalsRegistry: featuregate.DefaultComponentGlobalsRegistry,
111112
}
112113

113114
o.Authentication.TolerateInClusterLookupFailure = true
@@ -279,7 +280,7 @@ func (o *Options) Validate() []error {
279280
errs = append(errs, o.Authorization.Validate()...)
280281
errs = append(errs, o.Metrics.Validate()...)
281282

282-
effectiveVersion := o.ComponentGlobalsRegistry.EffectiveVersionFor(utilversion.DefaultKubeComponent)
283+
effectiveVersion := o.ComponentGlobalsRegistry.EffectiveVersionFor(featuregate.DefaultKubeComponent)
283284
if err := utilversion.ValidateKubeEffectiveVersion(effectiveVersion); err != nil {
284285
errs = append(errs, err)
285286
}

0 commit comments

Comments
 (0)