etcd

package
v1.72.1 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2023 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 61 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ClassNormal is a constant for a normal etcd (without extensive metrics or higher resource settings, etc.)
	ClassNormal Class = "normal"
	// ClassImportant is a constant for an important etcd (with extensive metrics or higher resource settings, etc.).
	// Such etcds are also unsafe to evict (from the PoV of the cluster-autoscaler when trying to scale down).
	ClassImportant Class = "important"

	// SecretNameClient is the name of the secret containing the client certificate and key for the etcd.
	SecretNameClient = "etcd-client"

	// LabelAppValue is the value of a label whose key is 'app'.
	LabelAppValue = "etcd-statefulset"
)
View Source
const (
	// Druid is a constant for the name of the etcd-druid.
	Druid = "etcd-druid"
)

Variables

View Source
var (
	// DefaultInterval is the default interval for retry operations.
	DefaultInterval = 5 * time.Second
	// DefaultSevereThreshold is the default threshold until an error reported by another component is treated as 'severe'.
	DefaultSevereThreshold = 3 * time.Minute
	// DefaultTimeout is the default timeout and defines how long Gardener should wait
	// for a successful reconciliation of an Etcd resource.
	DefaultTimeout = 5 * time.Minute
)
View Source
var (
	//go:embed crds/templates/crd-druid.gardener.cloud_etcds.yaml
	// CRD holds the etcd custom resource definition template
	CRD string
)
View Source
var (
	// TimeNow is a function returning the current time exposed for testing.
	TimeNow = time.Now
)
View Source
var TimeoutWaitForManagedResource = 2 * time.Minute

TimeoutWaitForManagedResource is the timeout used while waiting for the ManagedResources to become healthy or deleted.

Functions

func CentralLoggingConfiguration

func CentralLoggingConfiguration() (component.CentralLoggingConfig, error)

CentralLoggingConfiguration returns a fluent-bit parser and filter for the etcd and backup-restore sidecar logs.

func CheckEtcdObject

func CheckEtcdObject(obj client.Object) error

CheckEtcdObject checks if the given Etcd object was reconciled successfully.

func GetLabels

func GetLabels() map[string]string

GetLabels returns a set of labels that is common for all etcd resources.

func NewBootstrapper

func NewBootstrapper(
	c client.Client,
	namespace string,
	kubernetesVersion *semver.Version,
	etcdConfig *config.ETCDConfig,
	image string,
	imageVectorOverwrite *string,
	priorityClassName string,
) component.DeployWaiter

NewBootstrapper creates a new instance of DeployWaiter for the etcd bootstrapper.

func NewCRD added in v1.72.0

func NewCRD(c client.Client, applier kubernetes.Applier) component.Deployer

NewCRD can be used to deploy the CRD definitions for Etcd and EtcdCopyBackupsTask.

func NewDependencyWatchdogWeederConfiguration

func NewDependencyWatchdogWeederConfiguration(role string) (map[string]weederapi.DependantSelectors, error)

NewDependencyWatchdogWeederConfiguration returns the configuration for the dependency watchdog ensuring that its dependant pods are restarted as soon as it recovers from a crash loop.

Types

type BackupConfig

type BackupConfig struct {
	// Provider is the name of the infrastructure provider for the blob storage bucket.
	Provider string
	// Container is the name of the blob storage bucket.
	Container string
	// SecretRefName is the name of a Secret object containing the credentials of the selected infrastructure provider.
	SecretRefName string
	// Prefix is a prefix that shall be used for the filename of the backups of this etcd.
	Prefix string
	// FullSnapshotSchedule is a cron schedule that declares how frequent full snapshots shall be taken.
	FullSnapshotSchedule string
	// LeaderElection contains configuration for the leader election for the etcd backup-restore sidecar.
	LeaderElection *gardenletconfig.ETCDBackupLeaderElection
}

BackupConfig contains information for configuring the backup-restore sidecar so that it takes regularly backups of the etcd's data directory.

type Class

type Class string

Class is a string type alias for etcd classes.

type HVPAConfig

type HVPAConfig struct {
	// Enabled states whether an HVPA object shall be deployed.
	Enabled bool
	// MaintenanceTimeWindow contains begin and end of a time window that allows down-scaling the etcd in case its
	// resource requests/limits are unnecessarily high.
	MaintenanceTimeWindow gardencorev1beta1.MaintenanceTimeWindow
	// The update mode to use for scale down.
	ScaleDownUpdateMode *string
}

HVPAConfig contains information for configuring the HVPA object for the etcd.

type Interface

type Interface interface {
	component.DeployWaiter
	component.MonitoringComponent
	// Snapshot triggers the backup-restore sidecar to perform a full snapshot in case backup configuration is provided.
	Snapshot(context.Context, rest.HTTPClient) error
	// SetBackupConfig sets the backup configuration.
	SetBackupConfig(config *BackupConfig)
	// SetHVPAConfig sets the HVPA configuration.
	SetHVPAConfig(config *HVPAConfig)
	// Get retrieves the Etcd resource
	Get(context.Context) (*druidv1alpha1.Etcd, error)
	// Scale scales the etcd resource to the given replica count.
	Scale(context.Context, int32) error
	// RolloutPeerCA gets the peer CA and patches the
	// related `etcd` resource to use this new CA for peer communication.
	RolloutPeerCA(context.Context) error
	// GetValues returns the current configuration values of the deployer.
	GetValues() Values
	// GetReplicas gets the Replicas field in the Values.
	GetReplicas() *int32
	// SetReplicas sets the Replicas field in the Values.
	SetReplicas(*int32)
}

Interface contains functions for a etcd deployer.

func New

func New(
	log logr.Logger,
	c client.Client,
	namespace string,
	secretsManager secretsmanager.Interface,
	values Values,
) Interface

New creates a new instance of DeployWaiter for the Etcd.

type Values

type Values struct {
	NamePrefix                  string
	Role                        string
	Class                       Class
	Replicas                    *int32
	StorageCapacity             string
	StorageClassName            *string
	DefragmentationSchedule     *string
	CARotationPhase             gardencorev1beta1.CredentialsRotationPhase
	KubernetesVersion           *semver.Version
	RuntimeKubernetesVersion    *semver.Version
	BackupConfig                *BackupConfig
	HvpaConfig                  *HVPAConfig
	PriorityClassName           string
	HighAvailabilityEnabled     bool
	TopologyAwareRoutingEnabled bool
}

Values are the configuration values for the ETCD.

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

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