etcd

package
v0.0.0-...-4f90778 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

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 NewFromStaticPod

func NewFromStaticPod(endpoints []string, manifestDir string, certificatesDir string) (*Client, error)

NewFromStaticPod creates a GenericClient from the given endpoints, manifestDir, and certificatesDir

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) 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)
}

ClusterInterrogator is an interface to get etcd cluster related information

Jump to

Keyboard shortcuts

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