Documentation ¶
Index ¶
Constants ¶
View Source
const (
//nolint:gosec
DefaultAPITokenMountPath = "/var/run/secrets/kubernetes.io/serviceaccount"
)
View Source
const (
RetainTerminatingObjectFinalizer = common.DefaultPrefix + "retain-terminating-object"
)
Variables ¶
This section is empty.
Functions ¶
func RetainOrMergeClusterFields ¶
func RetainOrMergeClusterFields( targetGvk schema.GroupVersionKind, desiredObj, clusterObj *unstructured.Unstructured, ) error
RetainOrMergeClusterFields updates the desired object with values retained from the cluster object.
Types ¶
type CheckUnmanagedDispatcher ¶
type CheckUnmanagedDispatcher interface { OperationDispatcher CheckRemovedOrUnlabeled(ctx context.Context, clusterName string) }
func NewCheckUnmanagedDispatcher ¶
func NewCheckUnmanagedDispatcher( clientAccessor clientAccessorFunc, targetGVR schema.GroupVersionResource, targetName common.QualifiedName, ) CheckUnmanagedDispatcher
type FederatedResourceForDispatch ¶
type FederatedResourceForDispatch interface { // TargetName returns the name of the resource's target object. TargetName() common.QualifiedName // TargetGVK returns the resource's target group/version/kind. TargetGVK() schema.GroupVersionKind // TargetGVR returns the resource's target group/version/resource. TargetGVR() schema.GroupVersionResource // TypeConfig returns the FederatedTypeConfig for the resource's target type. TypeConfig() *fedcorev1a1.FederatedTypeConfig // Object returns the underlying FederatedObject or ClusterFederatedObject // as a GenericFederatedObject. Object() fedcorev1a1.GenericFederatedObject // VersionForCluster returns the resource's last propagated version for the given cluster. VersionForCluster(clusterName string) (string, error) // ObjectForCluster returns the resource's desired object for the given cluster. ObjectForCluster(clusterName string) (*unstructured.Unstructured, error) // ApplyOverrides applies cluster-specific overrides to the given object. ApplyOverrides(obj *unstructured.Unstructured, clusterName string) error // RecordError records an error for the resource. RecordError(errorCode string, err error) // RecordEvent records an event for the resource. RecordEvent(reason, messageFmt string, args ...interface{}) }
FederatedResourceForDispatch is the subset of the FederatedResource interface required for dispatching operations to managed resources.
type ManagedDispatcher ¶
type ManagedDispatcher interface { UnmanagedDispatcher Create(ctx context.Context, clusterName string) Update(ctx context.Context, clusterName string, clusterObj *unstructured.Unstructured) VersionMap() map[string]string CollectedStatus() status.CollectedPropagationStatus RecordClusterError(propStatus fedcorev1a1.PropagationStatusType, clusterName string, err error) RecordStatus(clusterName string, propStatus fedcorev1a1.PropagationStatusType) }
ManagedDispatcher dispatches operations to member clusters for resources managed by a federated resource.
func NewManagedDispatcher ¶
func NewManagedDispatcher( clientAccessor clientAccessorFunc, fedResource FederatedResourceForDispatch, skipAdoptingResources bool, metrics stats.Metrics, ) ManagedDispatcher
type OperationDispatcher ¶
type OperationDispatcher interface { // Wait returns true for ok if all operations completed // successfully and false if only some operations completed // successfully. An error is returned on timeout. Wait() (ok bool, timeoutErr error) }
OperationDispatcher provides an interface to wait for operations dispatched to member clusters.
type UnmanagedDispatcher ¶
type UnmanagedDispatcher interface { OperationDispatcher Delete(ctx context.Context, clusterName string, clusterObj *unstructured.Unstructured) RemoveManagedLabel(ctx context.Context, clusterName string, clusterObj *unstructured.Unstructured) }
UnmanagedDispatcher dispatches operations to member clusters for resources that are no longer managed by a federated resource.
func NewUnmanagedDispatcher ¶
func NewUnmanagedDispatcher( clientAccessor clientAccessorFunc, targetGVR schema.GroupVersionResource, targetName common.QualifiedName, metrics stats.Metrics, ) UnmanagedDispatcher
Click to show internal directories.
Click to hide internal directories.