feat: implements svm controller

Signed-off-by: Nilekh Chaudhari <1626598+nilekhc@users.noreply.github.com>

Kubernetes-commit: 9161302e7fd3a5fb055b2f2572c6e1228240bb51
This commit is contained in:
Nilekh Chaudhari 2024-01-04 19:34:05 +00:00 committed by Kubernetes Publisher
parent b0efa42e52
commit 02f21344ac
2 changed files with 12 additions and 1 deletions

View File

@ -37,6 +37,10 @@ const (
// The feature is disabled in Beta by default because // The feature is disabled in Beta by default because
// it will only be turned on for selected control plane component(s). // it will only be turned on for selected control plane component(s).
WatchListClient Feature = "WatchListClient" WatchListClient Feature = "WatchListClient"
// owner: @nilekhc
// alpha: v1.30
InformerResourceVersion Feature = "InformerResourceVersion"
) )
// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys. // defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.
@ -45,5 +49,6 @@ const (
// After registering with the binary, the features are, by default, controllable using environment variables. // After registering with the binary, the features are, by default, controllable using environment variables.
// For more details, please see envVarFeatureGates implementation. // For more details, please see envVarFeatureGates implementation.
var defaultKubernetesFeatureGates = map[Feature]FeatureSpec{ var defaultKubernetesFeatureGates = map[Feature]FeatureSpec{
WatchListClient: {Default: false, PreRelease: Beta}, WatchListClient: {Default: false, PreRelease: Beta},
InformerResourceVersion: {Default: false, PreRelease: Alpha},
} }

View File

@ -31,6 +31,8 @@ import (
"k8s.io/utils/clock" "k8s.io/utils/clock"
"k8s.io/klog/v2" "k8s.io/klog/v2"
clientgofeaturegate "k8s.io/client-go/features"
) )
// SharedInformer provides eventually consistent linkage of its // SharedInformer provides eventually consistent linkage of its
@ -409,6 +411,10 @@ func (v *dummyController) HasSynced() bool {
} }
func (v *dummyController) LastSyncResourceVersion() string { func (v *dummyController) LastSyncResourceVersion() string {
if clientgofeaturegate.FeatureGates().Enabled(clientgofeaturegate.InformerResourceVersion) {
return v.informer.LastSyncResourceVersion()
}
return "" return ""
} }