Documentation ¶
Overview ¶
Package election provides interfaces used for master election.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Notify ¶
func Notify(m MasterElector, path, id string, s Service, abort <-chan struct{})
Notify runs Elect() on m, and calls Start()/Stop() on s when the elected master starts/stops matching 'id'. Never returns.
Types ¶
type Fake ¶
type Fake struct {
// contains filtered or unexported fields
}
Fake allows for testing of anything consuming a MasterElector.
func (*Fake) ChangeMaster ¶
type Master ¶
type Master string
Master is used to announce the current elected master.
func (Master) IsAnAPIObject ¶
func (Master) IsAnAPIObject()
IsAnAPIObject is used solely so we can work with the watch package. TODO(k8s): Either fix watch so this isn't necessary, or make this a real API Object. TODO(k8s): when it becomes clear how this package will be used, move these declarations to to the proper place.
type MasterElector ¶
type MasterElector interface { // Elect makes the caller represented by 'id' enter into a master election for the // distributed lock defined by 'path' // The returned watch.Interface provides a stream of Master objects which // contain the current master. // Calling Stop on the returned interface relinquishes ownership (if currently possesed) // and removes the caller from the election Elect(path, id string) watch.Interface }
MasterElector is an interface for services that can elect masters. Important Note: MasterElectors are not inter-operable, all participants in the election need to be
using the same underlying implementation of this interface for correct behavior.
func NewEtcdMasterElector ¶
func NewEtcdMasterElector(h *etcd.Client) MasterElector
NewEtcdMasterElector returns an implementation of election.MasterElector backed by etcd.