ring

package
v0.7.1 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetLeader

func GetLeader(amRing AcmeManagerRing) (string, error)

func GetLeaderIP

func GetLeaderIP(amRing AcmeManagerRing) (string, error)

func IsLeader

func IsLeader(amRing AcmeManagerRing) (bool, error)

IsLeader checks whether this instance is the leader replica

func NewMemberlistKVWithConfig

func NewMemberlistKVWithConfig(ringConfig Config, instanceID string, joinMembers []string, logger log.Logger, reg prometheus.Registerer, flagSet *flag.FlagSet, flagPrefix string) *memberlist.KVInitService

NewMemberlistKVWithConfig creates memberlist KV using the structured config

func SimpleRing

func SimpleRing(store kv.Client, logger log.Logger, reg prometheus.Registerer) (*ring.Ring, error)

SimpleRing returns an instance of `ring.Ring` as a service. Starting and Stopping the service is upto the caller.

func SimpleRingLifecyclerWithConfig

func SimpleRingLifecyclerWithConfig(store kv.Client, ringConfig Config, instanceID string, instanceInterfaceNames []string, logger log.Logger, reg prometheus.Registerer) (*ring.BasicLifecycler, error)

SimpleRingLifecyclerWithConfig returns an instance lifecycler using the Config values

Types

type AcmeManagerRing

type AcmeManagerRing struct {
	Client            *ring.Ring
	Lifecycler        *ring.BasicLifecycler
	Memberlistsvc     *memberlist.KVInitService
	KvStore           *memberlist.KV
	CertificateClient *memberlist.Client
	TokenClient       *memberlist.Client
	ChallengeClient   *memberlist.Client
	RateLimitClient   *memberlist.Client
}

func New

func New(instanceID, instanceAddr, joinMembers, instanceInterfaceNames string, instancePort int, logger log.Logger, flagSet *flag.FlagSet, flagPrefix string) (AcmeManagerRing, error)

Keep the original New function for backward compatibility

func NewWithConfig

func NewWithConfig(ringConfig Config, logger log.Logger, flagSet *flag.FlagSet, flagPrefix string) (AcmeManagerRing, error)

NewWithConfig creates a new AcmeManagerRing using the Config struct

type Config

type Config struct {
	// Memberlist configuration
	MemberlistKV memberlist.KVConfig

	// Instance configuration (not covered by memberlist config)
	InstanceID             string
	InstanceAddr           string
	InstancePort           int
	InstanceInterfaceNames string
	JoinMembers            string

	// Ring lifecycler configuration
	KeepInstanceInTheRingOnShutdown bool
	HeartbeatPeriod                 time.Duration
	HeartbeatTimeout                time.Duration
}

Config holds all ring-related configuration

func (*Config) RegisterFlagsWithPrefix

func (cfg *Config) RegisterFlagsWithPrefix(fs *flag.FlagSet, prefix string)

RegisterFlagsWithPrefix registers all ring flags with the given prefix

Jump to

Keyboard shortcuts

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