Documentation ¶
Index ¶
- Constants
- Variables
- type AlarmType
- type Client
- func (c *Client) Alarms(ctx context.Context) ([]MemberAlarm, error)
- func (c *Client) Close() error
- func (c *Client) Members(ctx context.Context) ([]*Member, error)
- func (c *Client) MoveLeader(ctx context.Context, newLeaderID uint64) error
- func (c *Client) RemoveMember(ctx context.Context, id uint64) error
- func (c *Client) UpdateMemberPeerURLs(ctx context.Context, id uint64, peerURLs []string) ([]*Member, error)
- type ClientConfiguration
- type ClientFor
- type ClientGenerator
- type GRPCDial
- type Member
- type MemberAlarm
Constants ¶
const DefaultCallTimeout = 15 * time.Second
DefaultCallTimeout represents the duration that the etcd client waits at most for read and write operations to etcd.
Variables ¶
var AlarmTypeName = map[AlarmType]string{ AlarmOK: "NONE", AlarmNoSpace: "NOSPACE", AlarmCorrupt: "CORRUPT", }
AlarmTypeName provides a text translation for AlarmType codes.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { EtcdClient etcd Endpoint string LeaderID uint64 Errors []string CallTimeout time.Duration }
Client wraps an etcd client formatting its output to something more consumable.
func NewClient ¶
func NewClient(ctx context.Context, config ClientConfiguration) (*Client, error)
NewClient creates a new etcd client with the given configuration.
func (*Client) Alarms ¶
func (c *Client) Alarms(ctx context.Context) ([]MemberAlarm, error)
Alarms retrieves all alarms on a cluster.
func (*Client) MoveLeader ¶
MoveLeader moves the leader to the provided member ID.
func (*Client) RemoveMember ¶
RemoveMember removes a given member.
type ClientConfiguration ¶
type ClientConfiguration struct { Endpoint string Proxy proxy.Proxy TLSConfig *tls.Config DialTimeout time.Duration CallTimeout time.Duration }
ClientConfiguration describes the configuration for an etcd client.
type ClientFor ¶
type ClientFor interface { ForFirstAvailableNode(ctx context.Context, nodeNames []string) (*Client, error) ForLeader(ctx context.Context, nodeNames []string) (*Client, error) }
ClientFor is an interface for source etcd node selection.
type ClientGenerator ¶
type ClientGenerator struct {
// contains filtered or unexported fields
}
ClientGenerator generates etcd clients that connect to specific etcd members on particular control plane nodes.
func NewClientGenerator ¶
func NewClientGenerator(restConfig *rest.Config, tlsConfig *tls.Config, etcdDialTimeout, etcdCallTimeout time.Duration) *ClientGenerator
NewClientGenerator returns a new etcdClientGenerator instance.
func (*ClientGenerator) ForFirstAvailableNode ¶
func (c *ClientGenerator) ForFirstAvailableNode(ctx context.Context, nodeNames []string) (*Client, error)
ForFirstAvailableNode takes a list of nodes and returns a client for the first one that connects.
type Member ¶
type Member struct { // ClusterID is the ID of the cluster to which this member belongs ClusterID uint64 // ID is the ID of this cluster member ID uint64 // Name is the human-readable name of the member. If the member is not started, the name will be an empty string. Name string // PeerURLs is the list of URLs the member exposes to the cluster for communication. PeerURLs []string // ClientURLs is the list of URLs the member exposes to clients for communication. If the member is not started, clientURLs will be empty. ClientURLs []string // IsLearner indicates if the member is raft learner. IsLearner bool // Alarms is the list of alarms for a member. Alarms []AlarmType }
Member struct defines an etcd member; it is used to avoid spreading github.com/coreos/etcd dependencies.
type MemberAlarm ¶
type MemberAlarm struct { // MemberID is the ID of the member associated with the raised alarm. MemberID uint64 // Type is the type of alarm which has been raised. Type AlarmType }
MemberAlarm represents an alarm type association with a cluster member.