etcd

package
v1.70.3 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: 57 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"

	// NetworkPolicyNameClient is the name of a network policy that allows ingress traffic to etcd from certain sources.
	NetworkPolicyNameClient = "allow-etcd"

	// NetworkPolicyNamePeer is the name of a network policy that allows ingress traffic to etcd from member pods.
	NetworkPolicyNamePeer = "allow-etcd-peer"
)
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 added in v1.25.0

func CheckEtcdObject(obj client.Object) error

CheckEtcdObject checks if the given Etcd object was reconciled successfully.

func GetLabels added in v1.49.0

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

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

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

type Values struct {
	NamePrefix                  string
	Role                        string
	Class                       Class
	Replicas                    *int32
	StorageCapacity             string
	StorageClassName            *string
	DefragmentationSchedule     *string
	CARotationPhase             gardencorev1beta1.CredentialsRotationPhase
	KubernetesVersion           *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