etcd3

package
v0.32.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: Apache-2.0 Imports: 43 Imported by: 71

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func EtcdHealthCheck added in v0.16.4

func EtcdHealthCheck(data []byte) error

EtcdHealthCheck decodes data returned from etcd /healthz handler. Deprecated: Validate health by passing storagebackend.Config directly to storagefactory.CreateProber.

func New

func New(c *kubernetes.Client, codec runtime.Codec, newFunc, newListFunc func() runtime.Object, prefix, resourcePrefix string, groupResource schema.GroupResource, transformer value.Transformer, leaseManagerConfig LeaseManagerConfig, decoder Decoder, versioner storage.Versioner) storage.Interface

New returns an etcd3 implementation of storage.Interface.

func NewETCDLatencyTracker added in v0.24.0

func NewETCDLatencyTracker(delegate clientv3.KV) clientv3.KV

NewETCDLatencyTracker returns an implementation of clientv3.KV that times the calls from the specified 'delegate' KV instance in order to track latency incurred.

func NewStoreWithUnsafeCorruptObjectDeletion added in v0.32.0

func NewStoreWithUnsafeCorruptObjectDeletion(delegate storage.Interface, gr schema.GroupResource) storage.Interface

NewStoreWithUnsafeCorruptObjectDeletion wraps the given store implementation and adds support for unsafe deletion of corrupt objects

func StartCompactor

func StartCompactor(ctx context.Context, client *clientv3.Client, compactInterval time.Duration)

StartCompactor starts a compactor in the background to compact old version of keys that's not needed. By default, we save the most recent 5 minutes data and compact versions > 5minutes ago. It should be enough for slow watchers and to tolerate burst. TODO: We might keep a longer history (12h) in the future once storage API can take advantage of past version of keys.

func TestOnlySetFatalOnDecodeError

func TestOnlySetFatalOnDecodeError(b bool)

TestOnlySetFatalOnDecodeError should only be used for cases where decode errors are expected and need to be tested. e.g. conversion webhooks.

func WithCorruptObjErrorHandlingTransformer added in v0.32.0

func WithCorruptObjErrorHandlingTransformer(transformer value.Transformer) value.Transformer

WithCorruptObjErrorHandlingTransformer decorates the given decoder, it determines if the error returned by the given transformer represents a corrupt object (the data from the storage is untransformable), and then it wraps the error appropriately so the unsafe deleter can determine if the object is a candidate for unsafe deletion

Types

type Decoder added in v0.32.0

type Decoder interface {
	// Decode decodes value of bytes into object. It will also
	// set the object resource version to rev.
	// On success, objPtr would be set to the object.
	Decode(value []byte, objPtr runtime.Object, rev int64) error

	// DecodeListItem decodes bytes value in array into object.
	DecodeListItem(ctx context.Context, data []byte, rev uint64, newItemFunc func() runtime.Object) (runtime.Object, error)
}

Decoder is used by the etcd storage implementation to decode transformed data from the storage into an object

func NewDefaultDecoder added in v0.32.0

func NewDefaultDecoder(codec runtime.Codec, versioner storage.Versioner) Decoder

NewDefaultDecoder returns the default decoder for etcd3 store

func WithCorruptObjErrorHandlingDecoder added in v0.32.0

func WithCorruptObjErrorHandlingDecoder(decoder Decoder) Decoder

WithCorruptObjErrorHandlingDecoder decorates the given decoder, it determines if the error returned by the given decoder represents a corrupt object (the object is undecodable), and then it wraps the error appropriately so the unsafe deleter can determine if the object is a candidate for unsafe deletion

type LeaseManagerConfig added in v0.18.18

type LeaseManagerConfig struct {
	// ReuseDurationSeconds specifies time in seconds that each lease is reused
	ReuseDurationSeconds int64
	// MaxObjectCount specifies how many objects that a lease can attach
	MaxObjectCount int64
}

LeaseManagerConfig is configuration for creating a lease manager.

func NewDefaultLeaseManagerConfig added in v0.18.18

func NewDefaultLeaseManagerConfig() LeaseManagerConfig

NewDefaultLeaseManagerConfig creates a LeaseManagerConfig with default values

type ListErrorAggregator added in v0.32.0

type ListErrorAggregator interface {
	// Aggregate aggregates the given error from list operation
	// key: it identifies the given object in the storage.
	// err: it represents the error the list operation encountered while
	// retrieving the given object from the storage.
	// done: true if the aggregation is done and the list operation should
	// abort, otherwise the list operation will continue
	Aggregate(key string, err error) bool

	// Err returns the aggregated error
	Err() error
}

ListErrorAggregator aggregates the error(s) that the LIST operation encounters while retrieving object(s) from the storage

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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