Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChannelElector ¶
ChannelElector emits role events from an input channel.
type KubernetesLeaseConfig ¶
type KubernetesLeaseConfig struct {
APIBaseURL string
Namespace string
LeaseName string
Identity string
//nolint:gosec // Bearer token is required for Kubernetes API authentication.
BearerToken string
LeaseDuration time.Duration
RetryPeriod time.Duration
HTTPClient *http.Client
Now func() time.Time
Sleep func(time.Duration)
}
KubernetesLeaseConfig configures Kubernetes Lease-based election.
type KubernetesLeaseElector ¶
type KubernetesLeaseElector struct {
// contains filtered or unexported fields
}
KubernetesLeaseElector implements leader election with coordination.k8s.io Lease resources.
func NewKubernetesLeaseElector ¶
func NewKubernetesLeaseElector(cfg KubernetesLeaseConfig) (*KubernetesLeaseElector, error)
NewKubernetesLeaseElector creates a Kubernetes Lease elector.
func (*KubernetesLeaseElector) Run ¶
func (e *KubernetesLeaseElector) Run(ctx context.Context, emit func(isLeader bool)) error
Run evaluates lease ownership in a retry loop and emits leadership state.
func (*KubernetesLeaseElector) TryAcquireOrRenew ¶
func (e *KubernetesLeaseElector) TryAcquireOrRenew(ctx context.Context) (bool, error)
TryAcquireOrRenew attempts to create, renew, or take over the configured lease.
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner adapts an Elector into role and error channels used by runtime orchestration.
type StaticElector ¶
type StaticElector struct {
IsLeader bool
}
StaticElector emits a fixed role and then waits for context cancellation.
Click to show internal directories.
Click to hide internal directories.