Skip to content

Commit

Permalink
Merge pull request #624 from rramkumar1/cherry-pick-leader-elect
Browse files Browse the repository at this point in the history
Cherrypick #623 on 1.4 branch
  • Loading branch information
k8s-ci-robot authored Feb 11, 2019
2 parents 25a9bf9 + 0986a9f commit ccde57d
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion cmd/glbc/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
crdclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
"k8s.io/client-go/kubernetes"
clientset "k8s.io/client-go/kubernetes"
restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/leaderelection"
"k8s.io/client-go/tools/leaderelection/resourcelock"
"k8s.io/client-go/tools/record"
Expand Down Expand Up @@ -83,6 +84,12 @@ func main() {
glog.Fatalf("Failed to create kubernetes client: %v", err)
}

// Due to scaling issues, leader election must be configured with a separate k8s client.
leaderElectKubeClient, err := kubernetes.NewForConfig(restclient.AddUserAgent(kubeConfig, "leader-election"))
if err != nil {
glog.Fatalf("Failed to create kubernetes client for leader election: %v", err)
}

// Ingress only reads status of ManagedCertificate CR which is set in another component.
mcrtClient, err := managedcertificatesclient.NewForConfig(kubeConfig)
if err != nil {
Expand Down Expand Up @@ -137,7 +144,7 @@ func main() {
return
}

electionConfig, err := makeLeaderElectionConfig(kubeClient, ctx.Recorder(flags.F.LeaderElection.LockObjectNamespace), func() {
electionConfig, err := makeLeaderElectionConfig(leaderElectKubeClient, ctx.Recorder(flags.F.LeaderElection.LockObjectNamespace), func() {
runControllers(ctx)
})
if err != nil {
Expand Down

0 comments on commit ccde57d

Please sign in to comment.