Documentation ¶
Index ¶
- type MultiClusterSyncManager
- type ResourceSyncer
- func (s *ResourceSyncer) OnAdd(obj client.Object)
- func (s *ResourceSyncer) OnDelete(obj client.Object)
- func (s *ResourceSyncer) OnGeneric(obj client.Object)
- func (s *ResourceSyncer) OnUpdate(obj client.Object)
- func (s *ResourceSyncer) Run(ctx context.Context) error
- func (s *ResourceSyncer) Source() SyncSource
- func (s *ResourceSyncer) Stop(ctx context.Context) error
- func (s *ResourceSyncer) SyncRule() v1beta1.ResourceSyncRule
- type SingleClusterSyncManager
- type SyncReconciler
- func (r *SyncReconciler) CreateEvent(ce event.CreateEvent, queue workqueue.RateLimitingInterface)
- func (r *SyncReconciler) DeleteEvent(de event.DeleteEvent, queue workqueue.RateLimitingInterface)
- func (r *SyncReconciler) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error)
- func (r *SyncReconciler) SetupWithManager(mgr ctrl.Manager) error
- func (r *SyncReconciler) UpdateEvent(ue event.UpdateEvent, queue workqueue.RateLimitingInterface)
- type SyncSource
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MultiClusterSyncManager ¶
type MultiClusterSyncManager interface { Create(ctx context.Context, clusterName string, config *rest.Config) (SingleClusterSyncManager, error) Start(ctx context.Context, clusterName string) error Stop(ctx context.Context, clusterName string) GetForCluster(clusterName string) (SingleClusterSyncManager, bool) }
MultiClusterSyncManager defines the interface for synchronizing across multiple clusters.
func NewMultiClusterSyncManager ¶
func NewMultiClusterSyncManager(baseContext context.Context, controller controller.Controller, storage storage.ResourceStorage) MultiClusterSyncManager
NewMultiClusterSyncManager creates a new MultiClusterSyncManager instance with the given context, controller and storage.
type ResourceSyncer ¶
type ResourceSyncer struct {
// contains filtered or unexported fields
}
ResourceSyncer is the main struct that holds the necessary fields and methods for the resource syncer component.
func NewResourceSyncer ¶
func NewResourceSyncer(cluster string, dynamicClient dynamic.Interface, rsr v1beta1.ResourceSyncRule, storage storage.ResourceStorage) *ResourceSyncer
NewResourceSyncer creates a new instance of the ResourceSyncer with the given parameters.
func (*ResourceSyncer) OnAdd ¶
func (s *ResourceSyncer) OnAdd(obj client.Object)
OnAdd handles the addition of a Kubernetes object.
func (*ResourceSyncer) OnDelete ¶
func (s *ResourceSyncer) OnDelete(obj client.Object)
OnDelete handles the deletion of a Kubernetes object.
func (*ResourceSyncer) OnGeneric ¶
func (s *ResourceSyncer) OnGeneric(obj client.Object)
OnGeneric handles generic events for a Kubernetes object.
func (*ResourceSyncer) OnUpdate ¶
func (s *ResourceSyncer) OnUpdate(obj client.Object)
OnUpdate handles updates to a Kubernetes object.
func (*ResourceSyncer) Run ¶
func (s *ResourceSyncer) Run(ctx context.Context) error
Run starts the ResourceSyncer and its workers to process Kubernetes object events.
func (*ResourceSyncer) Source ¶
func (s *ResourceSyncer) Source() SyncSource
Source returns the SyncSource associated with the ResourceSyncer.
func (*ResourceSyncer) Stop ¶
func (s *ResourceSyncer) Stop(ctx context.Context) error
Stop stops the ResourceSyncer and cleans up resources.
func (*ResourceSyncer) SyncRule ¶
func (s *ResourceSyncer) SyncRule() v1beta1.ResourceSyncRule
SyncRule returns the ResourceSyncRule associated with the ResourceSyncer.
type SingleClusterSyncManager ¶
type SingleClusterSyncManager interface { Start(context.Context) error Started() bool Stop(context.Context) Stopped() bool UpdateSyncResources(context.Context, []*searchv1beta1.ResourceSyncRule) error HasSyncResource(schema.GroupVersionResource) bool ClusterConfig() *rest.Config }
SingleClusterSyncManager defines the interface for managing synchronization of resources across a single cluster.
func NewSingleClusterSyncManager ¶
func NewSingleClusterSyncManager(baseContext context.Context, clusterName string, config *rest.Config, controller controller.Controller, storage storage.ResourceStorage, ) (SingleClusterSyncManager, error)
NewSingleClusterSyncManager creates a new instance of the singleClusterSyncManager with the given context, cluster name, config, controller, and storage.
type SyncReconciler ¶
type SyncReconciler struct {
// contains filtered or unexported fields
}
SyncReconciler is the main structure that holds the state and dependencies for the multi-cluster syncer reconciler.
func NewSyncReconciler ¶
func NewSyncReconciler(storage storage.ResourceStorage) *SyncReconciler
NewSyncReconciler creates a new instance of the SyncReconciler structure with the given storage.
func (*SyncReconciler) CreateEvent ¶
func (r *SyncReconciler) CreateEvent(ce event.CreateEvent, queue workqueue.RateLimitingInterface)
CreateEvent handles the creation event for a resource and enqueues it for reconciliation.
func (*SyncReconciler) DeleteEvent ¶
func (r *SyncReconciler) DeleteEvent(de event.DeleteEvent, queue workqueue.RateLimitingInterface)
DeleteEvent handles the deletion event for a resource and enqueues it for reconciliation.
func (*SyncReconciler) Reconcile ¶
func (r *SyncReconciler) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error)
Reconcile is the main entry point for the syncer reconciler, which is called whenever there is a change in the watched resources.
func (*SyncReconciler) SetupWithManager ¶
func (r *SyncReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the SyncReconciler with the given manager and registers it as a controller.
func (*SyncReconciler) UpdateEvent ¶
func (r *SyncReconciler) UpdateEvent(ue event.UpdateEvent, queue workqueue.RateLimitingInterface)
UpdateEvent handles the update event for a resource and enqueues it for reconciliation.
type SyncSource ¶
type SyncSource interface { source.Source clientgocache.Store Cluster() string SyncRule() v1beta1.ResourceSyncRule Stop(context.Context) error HasSynced() bool }
SyncSource defines the interface for sources that can be synced, including methods for interacting with the Kubernetes API and cache.
func NewSource ¶
func NewSource(cluster string, client dynamic.Interface, rsr v1beta1.ResourceSyncRule, storage storage.ResourceStorage) SyncSource
NewSource creates a new instance of informerSource with the provided parameters, including cluster name, Kubernetes client, sync rule, and storage.