kubernetesk8s.io/kubernetes/cmd/kubeadm/app/util/etcd Index | Files

package etcd

import "k8s.io/kubernetes/cmd/kubeadm/app/util/etcd"

Index

Functions

func CreateDataDirectory

func CreateDataDirectory(dir string) error

CreateDataDirectory creates the etcd data directory (commonly /var/lib/etcd) with the right permissions.

func GetClientURL

func GetClientURL(localEndpoint *kubeadmapi.APIEndpoint) string

GetClientURL creates an HTTPS URL that uses the configured advertise address and client port for the API controller

func GetClientURLByIP

func GetClientURLByIP(ip string) string

GetClientURLByIP creates an HTTPS URL based on an IP address and the client listening port.

func GetPeerURL

func GetPeerURL(localEndpoint *kubeadmapi.APIEndpoint) string

GetPeerURL creates an HTTPS URL that uses the configured advertise address and peer port for the API controller

Types

type Client

type Client struct {
	Endpoints []string
	TLS       *tls.Config
}

Client provides connection parameters for an etcd cluster

func New

func New(endpoints []string, ca, cert, key string) (*Client, error)

New creates a new EtcdCluster client

func NewFromCluster

func NewFromCluster(client clientset.Interface, certificatesDir string) (*Client, error)

NewFromCluster creates an etcd client for the etcd endpoints present in etcd member list. In order to compose this information, it will first discover at least one etcd endpoint to connect to. Once created, the client synchronizes client's endpoints with the known endpoints from the etcd membership API, since it is the authoritative source of truth for the list of available members.

func (*Client) AddMember

func (c *Client) AddMember(name string, peerAddrs string) ([]Member, error)

AddMember notifies an existing etcd cluster that a new member is joining, and return the updated list of members. If the member has already been added to the cluster, this will return the existing list of etcd members.

func (*Client) CheckClusterHealth

func (c *Client) CheckClusterHealth() error

CheckClusterHealth returns nil for status Up or error for status Down

func (*Client) GetMemberID

func (c *Client) GetMemberID(peerURL string) (uint64, error)

GetMemberID returns the member ID of the given peer URL

func (*Client) ListMembers

func (c *Client) ListMembers() ([]Member, error)

ListMembers returns the member list.

func (*Client) RemoveMember

func (c *Client) RemoveMember(id uint64) ([]Member, error)

RemoveMember notifies an etcd cluster to remove an existing member

func (*Client) Sync

func (c *Client) Sync() error

Sync synchronizes client's endpoints with the known endpoints from the etcd membership.

func (*Client) WaitForClusterAvailable

func (c *Client) WaitForClusterAvailable(retries int, retryInterval time.Duration) (bool, error)

WaitForClusterAvailable returns true if all endpoints in the cluster are available after retry attempts, an error is returned otherwise

type ClusterInterrogator

type ClusterInterrogator interface {
	CheckClusterHealth() error
	WaitForClusterAvailable(retries int, retryInterval time.Duration) (bool, error)
	Sync() error
	ListMembers() ([]Member, error)
	AddMember(name string, peerAddrs string) ([]Member, error)
	GetMemberID(peerURL string) (uint64, error)
	RemoveMember(id uint64) ([]Member, error)
}

ClusterInterrogator is an interface to get etcd cluster related information

type Member

type Member struct {
	Name    string
	PeerURL string
}

Member struct defines an etcd member; it is used for avoiding to spread github.com/coreos/etcd dependency across kubeadm codebase

Source Files

etcd.go etcddata.go

Version
v1.23.7
Published
May 24, 2022
Platform
linux/amd64
Imports
22 packages
Last checked
1 hour ago

Tools for package owners.