mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-09-05 08:47:21 +00:00
28 lines
1.0 KiB
Go
28 lines
1.0 KiB
Go
package helpers
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/labels"
|
|
"k8s.io/apimachinery/pkg/util/sets"
|
|
|
|
clusterlister "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta1"
|
|
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
|
clustersdkv1beta1 "open-cluster-management.io/sdk-go/pkg/apis/cluster/v1beta1"
|
|
)
|
|
|
|
type PlacementDecisionGetter struct {
|
|
Client clusterlister.PlacementDecisionLister
|
|
}
|
|
|
|
func (pdl PlacementDecisionGetter) List(selector labels.Selector, namespace string) ([]*clusterv1beta1.PlacementDecision, error) {
|
|
return pdl.Client.PlacementDecisions(namespace).List(selector)
|
|
}
|
|
|
|
// Get added and deleted clusters names
|
|
func GetClusterChanges(client clusterlister.PlacementDecisionLister, placement *clusterv1beta1.Placement,
|
|
existingClusters sets.Set[string]) (sets.Set[string], sets.Set[string], error) {
|
|
pdtracker := clustersdkv1beta1.NewPlacementDecisionClustersTracker(
|
|
placement, PlacementDecisionGetter{Client: client}, existingClusters)
|
|
|
|
return pdtracker.GetClusterChanges()
|
|
}
|