shared

package
v0.10.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	NamespaceLocatorAnnotation = "kcp.dev/namespace-locator"
)
View Source
const (
	// SyncerFinalizerNamePrefix is the finalizer put onto resources by the syncer to claim ownership,
	// *before* a downstream object is created. It is only removed when the downstream object is deleted.
	SyncerFinalizerNamePrefix = "workload.kcp.dev/syncer-"
)

Variables

View Source
var SyncableClusterScopedResources = sets.NewString(schema.GroupVersionResource{Group: "", Version: "v1", Resource: "persistentvolumes"}.String())

SyncableClusterScopedResources holds a set of cluster-wide GVR that are allowed to be synced.

Functions

func DeprecatedGetAssignedSyncTarget deprecated

func DeprecatedGetAssignedSyncTarget(labels map[string]string) string

DeprecatedGetAssignedSyncTarget returns one assigned sync target in Sync state. It will likely lead to broken behaviour when there is one of those labels on a resource.

Deprecated: use GetResourceState per cluster instead.

func EnsureUpstreamFinalizerRemoved

func EnsureUpstreamFinalizerRemoved(ctx context.Context, gvr schema.GroupVersionResource, upstreamInformer kcpkubernetesinformers.GenericClusterInformer, upstreamClient kcpdynamic.ClusterInterface, upstreamNamespace, syncTargetKey string, logicalClusterName logicalcluster.Name, resourceName string) error

func GetDNSID added in v0.10.0

func GetDNSID(workspace logicalcluster.Name, syncTargetUID types.UID, syncTargetName string) string

GetDNSID returns a unique ID for DNS object derived from the sync target name, its UID and workspace. It's a valid DNS segment and can be used as namespace or object names.

func GetUpstreamResourceName added in v0.9.0

func GetUpstreamResourceName(downstreamResourceGVR schema.GroupVersionResource, downstreamResourceName string) string

GetUpstreamResourceName returns the name with which the resource is known upstream.

func PhysicalClusterNamespaceName

func PhysicalClusterNamespaceName(l NamespaceLocator) (string, error)

PhysicalClusterNamespaceName encodes the NamespaceLocator into a new namespace name for use on a physical cluster. The encoding is repeatable.

Types

type Cleaner added in v0.10.0

type Cleaner interface {
	// PlanCleaning adds the key to the list of keys to be cleaned up.
	// If the resource was already planned for cleaning the previous timestamp is kept.
	PlanCleaning(key string)
	// CancelCleaning removes the key from the list of keys to be cleaned up.
	// If it wasn't planned for deletion, it does nothing.
	CancelCleaning(key string)
}

Cleaner is an interface for cleaning up resources.

type NamespaceLocator

type NamespaceLocator struct {
	SyncTarget SyncTargetLocator   `json:"syncTarget"`
	Workspace  logicalcluster.Name `json:"workspace,omitempty"`
	Namespace  string              `json:"namespace"`
}

NamespaceLocator stores a logical cluster and namespace and is used as the source for the mapped namespace name in a physical cluster.

func LocatorFromAnnotations

func LocatorFromAnnotations(annotations map[string]string) (*NamespaceLocator, bool, error)

func NewNamespaceLocator

func NewNamespaceLocator(workspace, syncTargetWorkspace logicalcluster.Name, syncTargetUID types.UID, syncTargetName, upstreamNamespace string) NamespaceLocator

func NewNamespaceLocatorV060 added in v0.6.1

func NewNamespaceLocatorV060(workspace, syncTargetWorkspace logicalcluster.Name, syncTargetUID types.UID, syncTargetName, upstreamNamespace string) NamespaceLocator

type SyncTargetLocator

type SyncTargetLocator struct {
	Workspace      string    `json:"workspace,omitempty"`
	DeprecatedPath string    `json:"path,omitempty"`
	Name           string    `json:"name"`
	UID            types.UID `json:"uid"`
}

Jump to

Keyboard shortcuts

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