Skip to content

chengxiangwang/kube-leaderelection

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

kube-leaderelection

Leader election for your services, using Kubernetes' APIs/etcd.

Example

// create new elector
elector, err := election.NewLeaderElector()
if err != nil {
	panic(err)
}
// register a listener to be called on election events
elector.Register(listener)
// add this group to the nodes taking part in the election
elector.Run(ctx)

Your listener(s) looks something like this. You can register as many as you want.

// invoked when this node becomes the leader
func (l *listener) StartedLeading() {
	log.Print("started leading")
}

// invoked when this node stops being the leader
func (l *listener) StoppedLeading() {
	log.Print("stopped leading")
}

// invoked when a new leader is elected
func (l *listener) NewLeader(id string) {
	logq.Printf("new leader: %s", id)
}

License

MIT


About

Leader election for your own services, building on Kubernetes' APIs/etcd.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 93.8%
  • Makefile 5.5%
  • Dockerfile 0.7%