apiserver: k8s.io/apiserver/pkg/storage/etcd3 Index | Files | Directories

package etcd3

import "k8s.io/apiserver/pkg/storage/etcd3"


Package Files

api_object_versioner.go compact.go errors.go event.go healthcheck.go lease_manager.go logger.go store.go watcher.go


var Versioner storage.Versioner = APIObjectVersioner{}

Versioner implements Versioner

func EtcdHealthCheck Uses

func EtcdHealthCheck(data []byte) error

EtcdHealthCheck decodes data returned from etcd /healthz handler.

func New Uses

func New(c *clientv3.Client, codec runtime.Codec, newFunc func() runtime.Object, prefix string, transformer value.Transformer, pagingEnabled bool) storage.Interface

New returns an etcd3 implementation of storage.Interface.

func StartCompactor Uses

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 10 minutes data and compact versions > 10minutes 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 Uses

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.

type APIObjectVersioner Uses

type APIObjectVersioner struct{}

APIObjectVersioner implements versioning and extracting etcd node information for objects that have an embedded ObjectMeta or ListMeta field.

func (APIObjectVersioner) CompareResourceVersion Uses

func (a APIObjectVersioner) CompareResourceVersion(lhs, rhs runtime.Object) int

CompareResourceVersion compares etcd resource versions. Outside this API they are all strings, but etcd resource versions are special, they're actually ints, so we can easily compare them.

func (APIObjectVersioner) ObjectResourceVersion Uses

func (a APIObjectVersioner) ObjectResourceVersion(obj runtime.Object) (uint64, error)

ObjectResourceVersion implements Versioner

func (APIObjectVersioner) ParseResourceVersion Uses

func (a APIObjectVersioner) ParseResourceVersion(resourceVersion string) (uint64, error)

ParseResourceVersion takes a resource version argument and converts it to the etcd version. For watch we should pass to helper.Watch(). Because resourceVersion is an opaque value, the default watch behavior for non-zero watch is to watch the next value (if you pass "1", you will see updates from "2" onwards).

func (APIObjectVersioner) PrepareObjectForStorage Uses

func (a APIObjectVersioner) PrepareObjectForStorage(obj runtime.Object) error

PrepareObjectForStorage clears resource version and self link prior to writing to etcd.

func (APIObjectVersioner) UpdateList Uses

func (a APIObjectVersioner) UpdateList(obj runtime.Object, resourceVersion uint64, nextKey string, count *int64) error

UpdateList implements Versioner

func (APIObjectVersioner) UpdateObject Uses

func (a APIObjectVersioner) UpdateObject(obj runtime.Object, resourceVersion uint64) error

UpdateObject implements Versioner



Package etcd3 imports 32 packages (graph) and is imported by 35 packages. Updated 2020-11-03. Refresh now. Tools for package owners.