syncer

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2020 License: Apache-2.0 Imports: 19 Imported by: 6

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultResourcesEquivalent added in v0.6.0

func DefaultResourcesEquivalent(obj1, obj2 *unstructured.Unstructured) bool

func ResourcesNotEquivalent added in v0.6.2

func ResourcesNotEquivalent(obj1, obj2 *unstructured.Unstructured) bool

Types

type Interface

type Interface interface {
	Start(stopCh <-chan struct{}) error

	AwaitStopped()

	GetResource(name, namespace string) (runtime.Object, bool, error)

	ListResources() ([]runtime.Object, error)
}

func NewResourceSyncer

func NewResourceSyncer(config *ResourceSyncerConfig) (Interface, error)

type OnSuccessfulSyncFunc added in v0.6.0

type OnSuccessfulSyncFunc func(synced runtime.Object, op Operation)

OnSuccessfulSyncFunc is invoked after a successful sync operation.

type Operation added in v0.5.0

type Operation int
const (
	Create Operation = iota
	Update
	Delete
)

func (Operation) String added in v0.5.0

func (o Operation) String() string

type ResourceEquivalenceFunc added in v0.6.0

type ResourceEquivalenceFunc func(obj1, obj2 *unstructured.Unstructured) bool

type ResourceSyncerConfig

type ResourceSyncerConfig struct {
	// Name of this syncer used for logging.
	Name string

	// SourceClient the client used to obtain the resources to sync.
	SourceClient dynamic.Interface

	// SourceNamespace the namespace of the resources to sync.
	SourceNamespace string

	// SourceLabelSelector optional selector to restrict the resources to sync by their labels.
	SourceLabelSelector string

	// SourceFieldSelector optional selector to restrict the resources to sync by their fields.
	SourceFieldSelector string

	// LocalClusterID the cluster ID of the source client. This is used in conjunction with Direction to avoid
	// loops when syncing the same resources between the local and remote sources.
	LocalClusterID string

	// Direction specifies how resources are synced. It is assumed that resources emanating from a remote source have
	// the cluster ID label specified by federate.ClusterIDLabelKey set appropriately. If set to LocalToRemote, only
	// resources that do not have a cluster ID label are synced. This avoids re-syncing non-local resources. If set to
	// RemoteToLocal, resources whose cluster ID label matches LocalClusterID are not synced. This avoids syncing
	// local resources from the remote source.
	Direction SyncDirection

	// RestMapper used to obtain GroupVersionResources.
	RestMapper meta.RESTMapper

	// Federator used to perform the syncing.
	Federator federate.Federator

	// ResourceType the type of the resources to sync.
	ResourceType runtime.Object

	// Transform function used to transform resources prior to syncing.
	Transform TransformFunc

	// OnSuccessfulSync function invoked after a successful sync operation.
	OnSuccessfulSync OnSuccessfulSyncFunc

	// ResourcesEquivalent function to compare two resources for equivalence. This is invoked on an update notification
	// to compare the old and new resources. If true is returned, the update is ignored, otherwise the update is processed.
	// By default all updates are processed.
	ResourcesEquivalent ResourceEquivalenceFunc

	// WaitForCacheSync if true, waits for the informer cache to sync on Start. Default is true.
	WaitForCacheSync *bool

	// Scheme used to convert resource objects. By default the global k8s Scheme is used.
	Scheme *runtime.Scheme

	// ResyncPeriod if non-zero, the period at which resources will be re-synced regardless if anything changed. Default is 0.
	ResyncPeriod time.Duration
}

type SyncDirection

type SyncDirection int
const (
	// Resources are synced from a local source to a remote source.
	LocalToRemote SyncDirection = iota

	// Resources are synced from a remote source to a local source.
	RemoteToLocal
)

type TransformFunc

type TransformFunc func(from runtime.Object, op Operation) (runtime.Object, bool)

TransformFunc is invoked prior to syncing to transform the resource or evaluate if it should be synced. If nil is returned, the resource is not synced and, if the second return value is true, the resource is re-queued to be retried later.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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