kubernetesk8s.io/kubernetes/contrib/mesos/pkg/election Index | Files

package election

import "k8s.io/kubernetes/contrib/mesos/pkg/election"

Package election provides interfaces used for master election.

Index

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 NewFake

func NewFake() *Fake

NewFake makes a new fake MasterElector.

func (*Fake) ChangeMaster

func (f *Fake) ChangeMaster(newMaster Master)

func (*Fake) Elect

func (f *Fake) Elect(path, id string) watch.Interface

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 tools.EtcdClient) MasterElector

NewEtcdMasterElector returns an implementation of election.MasterElector backed by etcd.

type Service

type Service interface {
	Validate(desired, current Master)
	Start()
	Stop()
}

Service represents anything that can start and stop on demand.

Source Files

doc.go etcd_master.go fake.go master.go

Version
v1.1.4-beta.0
Published
Dec 7, 2015
Platform
js/wasm
Imports
10 packages
Last checked
54 seconds ago

Tools for package owners.