translator

package
v0.14.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PrintChanges added in v0.9.1

func PrintChanges(oldObject, newObject client.Object, log loghelper.Logger)

Types

type MetadataTranslator

type MetadataTranslator interface {
	// TranslateMetadata translates the object's metadata
	TranslateMetadata(vObj client.Object) client.Object

	// TranslateMetadataUpdate translates the object's metadata annotations and labels and determines
	// if they have changed between the physical and virtual object
	TranslateMetadataUpdate(vObj client.Object, pObj client.Object) (changed bool, annotations map[string]string, labels map[string]string)
}

MetadataTranslator is used to convert metadata between virtual and physical objects and vice versa

type NameTranslator

type NameTranslator interface {
	// IsManaged determines if a physical object is managed by the vcluster
	IsManaged(pObj client.Object) (bool, error)

	// VirtualToPhysical translates a virtual name to a physical name
	VirtualToPhysical(req types.NamespacedName, vObj client.Object) types.NamespacedName

	// PhysicalToVirtual translates a physical name to a virtual name
	PhysicalToVirtual(pObj client.Object) types.NamespacedName
}

NameTranslator is used to convert virtual to physical names and vice versa

type NamespacedTranslator

type NamespacedTranslator interface {
	Translator

	// EventRecorder returns
	EventRecorder() record.EventRecorder

	// RegisterIndices registers the default indices for the syncer
	RegisterIndices(ctx *context.RegisterContext) error

	// SyncDownCreate creates the given pObj in the target namespace
	SyncDownCreate(ctx *context.SyncContext, vObj, pObj client.Object) (ctrl.Result, error)

	// SyncDownUpdate updates the given pObj (if not nil) in the target namespace
	SyncDownUpdate(ctx *context.SyncContext, vObj, pObj client.Object) (ctrl.Result, error)

	// Function to override default VirtualToPhysical name translation
	SetNameTranslator(nameTranslator translate.PhysicalNamespacedNameTranslator)
}

NamespacedTranslator provides some helper functions to ease sync down translation

func NewNamespacedTranslator

func NewNamespacedTranslator(ctx *context.RegisterContext, name string, obj client.Object, excludedAnnotations ...string) NamespacedTranslator

type Translator

type Translator interface {
	Resource() client.Object
	Name() string
	NameTranslator
	MetadataTranslator
}

Translator is used to translate names as well as metadata between virtual and physical objects

func NewClusterTranslator

func NewClusterTranslator(ctx *context.RegisterContext, name string, obj client.Object, nameTranslator translate.PhysicalNameTranslator, excludedAnnotations ...string) Translator

func NewMirrorPhysicalTranslator

func NewMirrorPhysicalTranslator(name string, obj client.Object) Translator

Jump to

Keyboard shortcuts

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