Documentation
¶
Index ¶
- func GetLeader(amRing AcmeManagerRing) (string, error)
- func GetLeaderIP(amRing AcmeManagerRing) (string, error)
- func IsLeader(amRing AcmeManagerRing) (bool, error)
- func NewMemberlistKVWithConfig(ringConfig Config, instanceID string, joinMembers []string, logger log.Logger, ...) *memberlist.KVInitService
- func SimpleRing(store kv.Client, logger log.Logger, reg prometheus.Registerer) (*ring.Ring, error)
- func SimpleRingLifecyclerWithConfig(store kv.Client, ringConfig Config, instanceID string, ...) (*ring.BasicLifecycler, error)
- type AcmeManagerRing
- type Config
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
Click to show internal directories.
Click to hide internal directories.