etcd

package
v1.13.6 Latest Latest
Warning

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

Go to latest
Published: May 22, 2019 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckConfigurationIsHA added in v1.11.7

func CheckConfigurationIsHA(cfg *kubeadmapi.Etcd) bool

CheckConfigurationIsHA returns true if the given InitConfiguration etcd block appears to be an HA configuration.

func GetClientURL added in v1.13.5

func GetClientURL(cfg *kubeadmapi.InitConfiguration) string

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

func GetClientURLByIP added in v1.13.5

func GetClientURLByIP(ip string) string

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

func GetPeerURL added in v1.13.5

func GetPeerURL(cfg *kubeadmapi.InitConfiguration) string

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

func PodManifestsHaveTLS

func PodManifestsHaveTLS(ManifestDir string) (bool, error)

PodManifestsHaveTLS reads the etcd staticpod manifest from disk and returns false if the TLS flags are missing from the command list. If all the flags are present it returns true.

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 added in v1.13.5

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

NewFromCluster creates an etcd client for the etcd endpoints defined in the ClusterStatus value stored in the kubeadm-config ConfigMap in kube-system namespace. Once created, the client synchronizes client's endpoints with the known endpoints from the etcd membership API (reality check).

func (*Client) AddMember added in v1.13.5

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

AddMember notifies an existing etcd cluster that a new member is joining

func (Client) ClusterAvailable

func (c Client) ClusterAvailable() (bool, error)

ClusterAvailable returns true if the cluster status indicates the cluster is available.

func (Client) GetClusterStatus

func (c Client) GetClusterStatus() (map[string]*clientv3.StatusResponse, error)

GetClusterStatus returns nil for status Up or error for status Down

func (Client) GetClusterVersions

func (c Client) GetClusterVersions() (map[string]string, error)

GetClusterVersions returns a map of the endpoints and their associated versions

func (Client) GetVersion

func (c Client) GetVersion() (string, error)

GetVersion returns the etcd version of the cluster. An error is returned if the version of all endpoints do not match

func (Client) HasTLS

func (c Client) HasTLS() bool

HasTLS returns true if etcd is configured for TLS

func (*Client) Sync added in v1.13.5

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(delay time.Duration, retries int, retryInterval time.Duration) (bool, error)

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

type ClusterInterrogator

type ClusterInterrogator interface {
	ClusterAvailable() (bool, error)
	GetClusterStatus() (map[string]*clientv3.StatusResponse, error)
	GetClusterVersions() (map[string]string, error)
	GetVersion() (string, error)
	HasTLS() bool
	WaitForClusterAvailable(delay time.Duration, retries int, retryInterval time.Duration) (bool, error)
	Sync() error
	AddMember(name string, peerAddrs string) ([]Member, error)
}

ClusterInterrogator is an interface to get etcd cluster related information

type Member added in v1.13.5

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

Jump to

Keyboard shortcuts

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