leaderelection

package
v0.9.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package leaderelection provides a Kubernetes leader election implementation for coordinating distributed components in the vArmor system.

This package is modified from "github.com/kyverno/kyverno/pkg/leaderelection". The main enhancement is the support for dynamically selecting leaseDuration, renewDeadline, and retryPeriod based on the cluster size, which improves leader election performance and reliability in large-scale deployments.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Interface

type Interface interface {
	// Run is a blocking call that runs a leader election
	Run(ctx context.Context)

	// ID returns this instances unique identifier
	ID() string

	// Name returns the name of the leader election
	Name() string

	// Namespace is the Kubernetes namespace used to coordinate the leader election
	Namespace() string

	// IsLeader indicates if this instance is the leader
	IsLeader() bool

	// GetLeader returns the leader ID
	GetLeader() string
}

func New

func New(kubeClient *kubernetes.Clientset, name, namespace string, id string, startWork func(context.Context), stopWork func(), log logr.Logger) (Interface, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL