Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RunElection ¶
func RunElection(ctx context.Context, config *LeaderElectionConfig) error
RunElection starts a client with the provided config or panics. RunElection blocks until leader election loop is stopped by ctx or it has stopped holding the leader lease.
func RunElectionOrDie ¶
func RunElectionOrDie(ctx context.Context, config *LeaderElectionConfig)
RunElectionOrDie behaves the same way as RunElection but panics if there is an error.
Types ¶
type ClientConfig ¶
ClientConfig contains the client to connect to the etcd cluster.
type LeaderCallbacks ¶
type LeaderCallbacks struct { // OnStartedLeading is called when this member starts leading. OnStartedLeading func(context.Context) // OnStoppedLeading is called when this member stops leading. OnStoppedLeading func() // OnNewLeader is called when the client observes a leader that is // not the previously observed leader. This includes the first observed // leader when the client starts. OnNewLeader func(identity string) }
LeaderCallbacks are callbacks that are triggered during certain lifecycle events of the election.
type LeaderElectionConfig ¶
type LeaderElectionConfig struct { // EtcdConfig contains the client to connect to the etcd cluster. EtcdConfig ClientConfig // Name uniquely identifies this leader election. All members of the same election // should use the same value here. Name string // MemberID identifies uniquely this contestant from other in the leader election. // It will be converted to an int64 using a hash, so theoretically collisions are possible // when using a string. If you want to guarantee safety, us MemberUniqueID to specify a unique // int64 directly. // If two processes start a leader election using the same MemberID, one of them will // fail. MemberID string // MemberUniqueID is the int equivalent to MemberID that allows to override the default conversion // from string to int using hashing. MemberUniqueID *int64 // LeaseDurationSeconds is the duration that non-leader candidates will // wait to force acquire leadership. // This is just a request to the etcd server but it's not guaranteed, the server // might decide to make the duration longer. LeaseDurationSeconds int64 // Callbacks are callbacks that are triggered during certain lifecycle // events of the LeaderElector Callbacks LeaderCallbacks }
LeaderElectionConfig allows to configure the leader election params.
Click to show internal directories.
Click to hide internal directories.