@@ -2,13 +2,13 @@ package k8s
22
33import (
44 "context"
5+ "fmt"
56 "os"
67 "time"
78
89 "github.com/golang/glog"
910
1011 v1 "k8s.io/api/core/v1"
11- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1212 "k8s.io/client-go/kubernetes"
1313 "k8s.io/client-go/kubernetes/scheme"
1414 "k8s.io/client-go/tools/leaderelection"
@@ -26,18 +26,25 @@ func newLeaderElector(client kubernetes.Interface, callbacks leaderelection.Lead
2626 source := v1.EventSource {Component : "nginx-ingress-leader-elector" , Host : hostname }
2727 recorder := broadcaster .NewRecorder (scheme .Scheme , source )
2828
29- lock := resourcelock.ConfigMapLock {
30- ConfigMapMeta : metav1.ObjectMeta {Namespace : namespace , Name : lockName },
31- Client : client .CoreV1 (),
32- LockConfig : resourcelock.ResourceLockConfig {
33- Identity : podName ,
34- EventRecorder : recorder ,
35- },
29+ lc := resourcelock.ResourceLockConfig {
30+ Identity : podName ,
31+ EventRecorder : recorder ,
32+ }
33+
34+ lock , err := resourcelock .New (resourcelock .ConfigMapsLeasesResourceLock ,
35+ namespace ,
36+ lockName ,
37+ client .CoreV1 (),
38+ client .CoordinationV1 (),
39+ lc ,
40+ )
41+ if err != nil {
42+ return nil , fmt .Errorf ("error creating leader election lock: %w" , err )
3643 }
3744
3845 ttl := 30 * time .Second
3946 return leaderelection .NewLeaderElector (leaderelection.LeaderElectionConfig {
40- Lock : & lock ,
47+ Lock : lock ,
4148 LeaseDuration : ttl ,
4249 RenewDeadline : ttl / 2 ,
4350 RetryPeriod : ttl / 4 ,
0 commit comments