From f2b6dc93c0b549177db4e746e5eb2dff00bcffa5 Mon Sep 17 00:00:00 2001 From: aimuz Date: Thu, 18 Jun 2020 13:38:46 +0800 Subject: [PATCH] leaderelection add context --- leaderelection/leader_election.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/leaderelection/leader_election.go b/leaderelection/leader_election.go index efd58e849..25fdf70a9 100644 --- a/leaderelection/leader_election.go +++ b/leaderelection/leader_election.go @@ -60,6 +60,8 @@ type leaderElection struct { renewDeadline time.Duration retryPeriod time.Duration + ctx context.Context + clientset kubernetes.Interface } @@ -127,6 +129,11 @@ func (l *leaderElection) WithRetryPeriod(retryPeriod time.Duration) { l.retryPeriod = retryPeriod } +// WithContext Add context +func (l *leaderElection) WithContext(ctx context.Context) { + l.ctx = ctx +} + func (l *leaderElection) Run() error { if l.identity == "" { id, err := defaultLeaderElectionIdentity() @@ -174,7 +181,11 @@ func (l *leaderElection) Run() error { }, } - leaderelection.RunOrDie(context.TODO(), leaderConfig) + ctx := l.ctx + if ctx == nil { + ctx = context.Background() + } + leaderelection.RunOrDie(ctx, leaderConfig) return nil // should never reach here }