Documentation ¶
Index ¶
- Constants
- type EndpointsLock
- func (el *EndpointsLock) Create(ler LeaderElectionRecord) error
- func (el *EndpointsLock) Describe() string
- func (el *EndpointsLock) Get() (*LeaderElectionRecord, error)
- func (el *EndpointsLock) Identity() string
- func (el *EndpointsLock) RecordEvent(s string)
- func (el *EndpointsLock) Update(ler LeaderElectionRecord) error
- type Interface
- type LeaderElectionRecord
- type ResourceLockConfig
Constants ¶
const (
LeaderElectionRecordAnnotationKey = "control-plane.alpha.kubernetes.io/leader"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EndpointsLock ¶
type EndpointsLock struct { // EndpointsMeta should contain a Name and a Namespace of an // Endpoints object that the LeaderElector will attempt to lead. EndpointsMeta v1.ObjectMeta Client kubernetes.Interface LockConfig ResourceLockConfig // contains filtered or unexported fields }
func (*EndpointsLock) Create ¶
func (el *EndpointsLock) Create(ler LeaderElectionRecord) error
Create attempts to create a LeaderElectionRecord annotation
func (*EndpointsLock) Describe ¶
func (el *EndpointsLock) Describe() string
Describe is used to convert details on current resource lock into a string
func (*EndpointsLock) Get ¶
func (el *EndpointsLock) Get() (*LeaderElectionRecord, error)
func (*EndpointsLock) Identity ¶
func (el *EndpointsLock) Identity() string
returns the Identity of the lock
func (*EndpointsLock) RecordEvent ¶
func (el *EndpointsLock) RecordEvent(s string)
RecordEvent in leader election while adding meta-data
func (*EndpointsLock) Update ¶
func (el *EndpointsLock) Update(ler LeaderElectionRecord) error
Update will update and existing annotation on a given resource.
type Interface ¶
type Interface interface { // Get returns the LeaderElectionRecord Get() (*LeaderElectionRecord, error) // Create attempts to create a LeaderElectionRecord Create(ler LeaderElectionRecord) error // Update will update and existing LeaderElectionRecord Update(ler LeaderElectionRecord) error // RecordEvent is used to record events RecordEvent(string) // Identity will return the locks Identity Identity() string // Describe is used to convert details on current resource lock // into a string Describe() string }
Interface offers a common interface for locking on arbitrary resources used in leader election. The Interface is used to hide the details on specific implementations in order to allow them to change over time. This interface is strictly for use by the election code.
type LeaderElectionRecord ¶
type LeaderElectionRecord struct { HolderIdentity string `json:"holderIdentity"` LeaseDurationSeconds int `json:"leaseDurationSeconds"` AcquireTime metav1.Time `json:"acquireTime"` RenewTime metav1.Time `json:"renewTime"` LeaderTransitions int `json:"leaderTransitions"` }
LeaderElectionRecord is the record that is stored in the leader election annotation. This information should be used for observational purposes only and could be replaced with a random string (e.g. UUID) with only slight modification of this code. TODO(mikedanese): this should potentially be versioned
type ResourceLockConfig ¶
type ResourceLockConfig struct { Identity string EventRecorder record.EventRecorder }
ResourceLockConfig common data that exists across different resource locks