Update leasecandidate client to read from cache

Kubernetes-commit: 5a306036a53754ce26938cedd89b2ddf3b105aa2
This commit is contained in:
Jefftree
2026-01-22 16:55:50 +00:00
committed by Kubernetes Publisher
parent a179e3b9fb
commit d6503fcc3e

View File

@@ -35,6 +35,8 @@ import (
"k8s.io/client-go/util/workqueue"
"k8s.io/klog/v2"
"k8s.io/utils/clock"
coordinationv1beta1listers "k8s.io/client-go/listers/coordination/v1beta1"
)
const requeueInterval = 5 * time.Minute
@@ -46,6 +48,7 @@ type CacheSyncWaiter interface {
type LeaseCandidate struct {
leaseClient coordinationv1beta1client.LeaseCandidateInterface
leaseCandidateInformer cache.SharedIndexInformer
leaseCandidateLister coordinationv1beta1listers.LeaseCandidateLister
informerFactory informers.SharedInformerFactory
hasSynced cache.InformerSynced
@@ -81,15 +84,18 @@ func NewCandidate(clientset kubernetes.Interface,
// are started for leader elected components
informerFactory := informers.NewSharedInformerFactoryWithOptions(
clientset, 5*time.Minute,
informers.WithNamespace(candidateNamespace),
informers.WithTweakListOptions(func(options *metav1.ListOptions) {
options.FieldSelector = fieldSelector
}),
)
leaseCandidateInformer := informerFactory.Coordination().V1beta1().LeaseCandidates().Informer()
leaseCandidateLister := informerFactory.Coordination().V1beta1().LeaseCandidates().Lister()
lc := &LeaseCandidate{
leaseClient: clientset.CoordinationV1beta1().LeaseCandidates(candidateNamespace),
leaseCandidateInformer: leaseCandidateInformer,
leaseCandidateLister: leaseCandidateLister,
informerFactory: informerFactory,
name: candidateName,
namespace: candidateNamespace,
@@ -173,7 +179,7 @@ func (c *LeaseCandidate) enqueueLease() {
// a bool (true if this call created the lease), or any error that occurs.
func (c *LeaseCandidate) ensureLease(ctx context.Context) error {
logger := klog.FromContext(ctx)
lease, err := c.leaseClient.Get(ctx, c.name, metav1.GetOptions{})
lease, err := c.leaseCandidateLister.LeaseCandidates(c.namespace).Get(c.name)
if apierrors.IsNotFound(err) {
logger.V(2).Info("Creating lease candidate")
// lease does not exist, create it.