mirror of
https://github.com/open-cluster-management-io/ocm.git
synced 2026-08-23 22:26:49 +00:00
upgrade clusterset api to v1beta2 (#273)
Signed-off-by: ldpliu <daliu@redhat.com> Signed-off-by: ldpliu <daliu@redhat.com>
This commit is contained in:
@@ -116,7 +116,7 @@ You can find more details for cluster join process from this [design doc](https:
|
||||
1. Create a cluster set by `ManagedClusterSet` API
|
||||
```
|
||||
cat << EOF | kubectl apply -f -
|
||||
apiVersion: cluster.open-cluster-management.io/v1beta1
|
||||
apiVersion: cluster.open-cluster-management.io/v1beta2
|
||||
kind: ManagedClusterSet
|
||||
metadata:
|
||||
name: clusterset1
|
||||
|
||||
@@ -18,18 +18,18 @@ import (
|
||||
"k8s.io/klog/v2"
|
||||
clientset "open-cluster-management.io/api/client/cluster/clientset/versioned"
|
||||
clusterinformerv1 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1"
|
||||
clusterinformerv1beta1 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta1"
|
||||
clusterinformerv1beta2 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta2"
|
||||
clusterlisterv1 "open-cluster-management.io/api/client/cluster/listers/cluster/v1"
|
||||
clusterlisterv1beta1 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta1"
|
||||
clusterlisterv1beta2 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta2"
|
||||
v1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
// managedClusterSetController reconciles instances of ManagedClusterSet on the hub.
|
||||
type managedClusterSetController struct {
|
||||
clusterClient clientset.Interface
|
||||
clusterLister clusterlisterv1.ManagedClusterLister
|
||||
clusterSetLister clusterlisterv1beta1.ManagedClusterSetLister
|
||||
clusterSetLister clusterlisterv1beta2.ManagedClusterSetLister
|
||||
eventRecorder events.Recorder
|
||||
queue workqueue.RateLimitingInterface
|
||||
}
|
||||
@@ -38,7 +38,7 @@ type managedClusterSetController struct {
|
||||
func NewManagedClusterSetController(
|
||||
clusterClient clientset.Interface,
|
||||
clusterInformer clusterinformerv1.ManagedClusterInformer,
|
||||
clusterSetInformer clusterinformerv1beta1.ManagedClusterSetInformer,
|
||||
clusterSetInformer clusterinformerv1beta2.ManagedClusterSetInformer,
|
||||
recorder events.Recorder) factory.Controller {
|
||||
|
||||
controllerName := "managed-clusterset-controller"
|
||||
@@ -136,16 +136,16 @@ func (c *managedClusterSetController) sync(ctx context.Context, syncCtx factory.
|
||||
}
|
||||
|
||||
// syncClusterSet syncs a particular cluster set
|
||||
func (c *managedClusterSetController) syncClusterSet(ctx context.Context, originalClusterSet *clusterv1beta1.ManagedClusterSet) error {
|
||||
func (c *managedClusterSetController) syncClusterSet(ctx context.Context, originalClusterSet *clusterv1beta2.ManagedClusterSet) error {
|
||||
clusterSet := originalClusterSet.DeepCopy()
|
||||
clusters, err := clusterv1beta1.GetClustersFromClusterSet(clusterSet, c.clusterLister)
|
||||
clusters, err := clusterv1beta2.GetClustersFromClusterSet(clusterSet, c.clusterLister)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
count := len(clusters)
|
||||
// update clusterset status
|
||||
emptyCondition := metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
}
|
||||
if count == 0 {
|
||||
emptyCondition.Status = metav1.ConditionTrue
|
||||
@@ -163,7 +163,7 @@ func (c *managedClusterSetController) syncClusterSet(ctx context.Context, origin
|
||||
return nil
|
||||
}
|
||||
|
||||
_, err = c.clusterClient.ClusterV1beta1().ManagedClusterSets().UpdateStatus(ctx, clusterSet, metav1.UpdateOptions{})
|
||||
_, err = c.clusterClient.ClusterV1beta2().ManagedClusterSets().UpdateStatus(ctx, clusterSet, metav1.UpdateOptions{})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to update status of ManagedClusterSet %q: %w", clusterSet.Name, err)
|
||||
}
|
||||
@@ -173,7 +173,7 @@ func (c *managedClusterSetController) syncClusterSet(ctx context.Context, origin
|
||||
|
||||
// enqueueClusterClusterSet enqueue a cluster related clusterset
|
||||
func (c *managedClusterSetController) enqueueClusterClusterSet(cluster *v1.ManagedCluster) {
|
||||
clusterSets, err := clusterv1beta1.GetClusterSetsOfCluster(cluster, c.clusterSetLister)
|
||||
clusterSets, err := clusterv1beta2.GetClusterSetsOfCluster(cluster, c.clusterSetLister)
|
||||
if err != nil {
|
||||
utilruntime.HandleError(fmt.Errorf("error to get GetClusterSetsOfCluster. Error %v", err))
|
||||
return
|
||||
@@ -186,12 +186,12 @@ func (c *managedClusterSetController) enqueueClusterClusterSet(cluster *v1.Manag
|
||||
// enqueueUpdateClusterClusterSet get the oldCluster related clustersets and newCluster related clustersets,
|
||||
// then enqueue the diff clustersets(added clustersets and removed clustersets)
|
||||
func (c *managedClusterSetController) enqueueUpdateClusterClusterSet(oldCluster, newCluster *v1.ManagedCluster) {
|
||||
oldClusterSets, err := clusterv1beta1.GetClusterSetsOfCluster(oldCluster, c.clusterSetLister)
|
||||
oldClusterSets, err := clusterv1beta2.GetClusterSetsOfCluster(oldCluster, c.clusterSetLister)
|
||||
if err != nil {
|
||||
utilruntime.HandleError(fmt.Errorf("error to get GetClusterSetsOfCluster. Error %v", err))
|
||||
return
|
||||
}
|
||||
newClusterSets, err := clusterv1beta1.GetClusterSetsOfCluster(newCluster, c.clusterSetLister)
|
||||
newClusterSets, err := clusterv1beta2.GetClusterSetsOfCluster(newCluster, c.clusterSetLister)
|
||||
if err != nil {
|
||||
utilruntime.HandleError(fmt.Errorf("error to get GetClusterSetsOfCluster. Error %v", err))
|
||||
return
|
||||
@@ -204,7 +204,7 @@ func (c *managedClusterSetController) enqueueUpdateClusterClusterSet(oldCluster,
|
||||
}
|
||||
|
||||
// getDiffClusterSetsNames return the diff clustersets names
|
||||
func getDiffClusterSetsNames(oldSets, newSets []*clusterv1beta1.ManagedClusterSet) sets.String {
|
||||
func getDiffClusterSetsNames(oldSets, newSets []*clusterv1beta2.ManagedClusterSet) sets.String {
|
||||
oldSetsMap := sets.NewString()
|
||||
newSetsMap := sets.NewString()
|
||||
|
||||
|
||||
@@ -13,32 +13,32 @@ import (
|
||||
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
|
||||
clusterinformers "open-cluster-management.io/api/client/cluster/informers/externalversions"
|
||||
clusterv1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
testinghelpers "open-cluster-management.io/registration/pkg/helpers/testing"
|
||||
)
|
||||
|
||||
func TestSyncClusterSet(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
existingClusterSet *clusterv1beta1.ManagedClusterSet
|
||||
existingClusterSet *clusterv1beta2.ManagedClusterSet
|
||||
existingClusters []*clusterv1.ManagedCluster
|
||||
expectCondition metav1.Condition
|
||||
expectErr bool
|
||||
}{
|
||||
{
|
||||
name: "sync a empty cluster set",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
},
|
||||
existingClusters: []*clusterv1.ManagedCluster{
|
||||
newManagedCluster("cluster1", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs1",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs1",
|
||||
}),
|
||||
},
|
||||
expectCondition: metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
Status: metav1.ConditionFalse,
|
||||
Reason: "ClustersSelected",
|
||||
Message: "1 ManagedClusters selected",
|
||||
@@ -46,23 +46,23 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "sync a legacy clusterset",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LegacyClusterSetLabel,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.ExclusiveClusterSetLabel,
|
||||
},
|
||||
},
|
||||
},
|
||||
existingClusters: []*clusterv1.ManagedCluster{
|
||||
newManagedCluster("cluster1", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs1",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs1",
|
||||
}),
|
||||
},
|
||||
expectCondition: metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
Status: metav1.ConditionFalse,
|
||||
Reason: "ClustersSelected",
|
||||
Message: "1 ManagedClusters selected",
|
||||
@@ -70,13 +70,13 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "sync a legacy clusterset, and no cluster matched",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LegacyClusterSetLabel,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.ExclusiveClusterSetLabel,
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -86,7 +86,7 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
}),
|
||||
},
|
||||
expectCondition: metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "NoClusterMatched",
|
||||
Message: "No ManagedCluster selected",
|
||||
@@ -94,13 +94,13 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "sync a labelselector clusterset",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
LabelSelector: &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"vendor": "openShift",
|
||||
@@ -111,16 +111,16 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
existingClusters: []*clusterv1.ManagedCluster{
|
||||
newManagedCluster("cluster1", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs1",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs1",
|
||||
"vendor": "openShift",
|
||||
}),
|
||||
newManagedCluster("cluster2", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs2",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs2",
|
||||
"vendor": "openShift",
|
||||
}),
|
||||
},
|
||||
expectCondition: metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
Status: metav1.ConditionFalse,
|
||||
Reason: "ClustersSelected",
|
||||
Message: "2 ManagedClusters selected",
|
||||
@@ -128,29 +128,29 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "sync a global clusterset",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
LabelSelector: &metav1.LabelSelector{},
|
||||
},
|
||||
},
|
||||
},
|
||||
existingClusters: []*clusterv1.ManagedCluster{
|
||||
newManagedCluster("cluster1", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs1",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs1",
|
||||
"vendor": "openShift",
|
||||
}),
|
||||
newManagedCluster("cluster2", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs2",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs2",
|
||||
"vendor": "openShift",
|
||||
}),
|
||||
},
|
||||
expectCondition: metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
Status: metav1.ConditionFalse,
|
||||
Reason: "ClustersSelected",
|
||||
Message: "2 ManagedClusters selected",
|
||||
@@ -158,28 +158,28 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "sync a label clusterset with no labelselector specified(no cluster matched)",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
},
|
||||
},
|
||||
},
|
||||
existingClusters: []*clusterv1.ManagedCluster{
|
||||
newManagedCluster("cluster1", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs1",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs1",
|
||||
"vendor": "openShift",
|
||||
}),
|
||||
newManagedCluster("cluster2", map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "mcs2",
|
||||
clusterv1beta2.ClusterSetLabel: "mcs2",
|
||||
"vendor": "openShift",
|
||||
}),
|
||||
},
|
||||
expectCondition: metav1.Condition{
|
||||
Type: clusterv1beta1.ManagedClusterSetConditionEmpty,
|
||||
Type: clusterv1beta2.ManagedClusterSetConditionEmpty,
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "NoClusterMatched",
|
||||
Message: "No ManagedCluster selected",
|
||||
@@ -187,12 +187,12 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "ignore any other clusterset",
|
||||
existingClusterSet: &clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSet: &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "mcs1",
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: "SingleClusterLabel",
|
||||
},
|
||||
},
|
||||
@@ -221,7 +221,7 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
}
|
||||
}
|
||||
if c.existingClusterSet != nil {
|
||||
err := informerFactory.Cluster().V1beta1().ManagedClusterSets().Informer().GetStore().Add(c.existingClusterSet)
|
||||
err := informerFactory.Cluster().V1beta2().ManagedClusterSets().Informer().GetStore().Add(c.existingClusterSet)
|
||||
if err != nil {
|
||||
t.Errorf("Failed to add clusterset: %v, error: %v", c.existingClusterSet.Name, err)
|
||||
}
|
||||
@@ -230,7 +230,7 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
ctrl := managedClusterSetController{
|
||||
clusterClient: clusterClient,
|
||||
clusterLister: informerFactory.Cluster().V1().ManagedClusters().Lister(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta1().ManagedClusterSets().Lister(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta2().ManagedClusterSets().Lister(),
|
||||
eventRecorder: eventstesting.NewTestingEventRecorder(t),
|
||||
}
|
||||
|
||||
@@ -245,7 +245,7 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
if syncErr != nil {
|
||||
t.Errorf("unexpected err: %v", syncErr)
|
||||
}
|
||||
updatedSet, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), c.existingClusterSet.Name, metav1.GetOptions{})
|
||||
updatedSet, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), c.existingClusterSet.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Errorf("Failed to get clusterset: %v, error: %v", c.existingClusterSet.Name, err)
|
||||
}
|
||||
@@ -259,54 +259,54 @@ func TestSyncClusterSet(t *testing.T) {
|
||||
func TestGetDiffClustersets(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
oldSets []*clusterv1beta1.ManagedClusterSet
|
||||
newSets []*clusterv1beta1.ManagedClusterSet
|
||||
oldSets []*clusterv1beta2.ManagedClusterSet
|
||||
newSets []*clusterv1beta2.ManagedClusterSet
|
||||
expectDiffSet sets.String
|
||||
}{
|
||||
{
|
||||
name: "update a set",
|
||||
oldSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
oldSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"), newManagedClusterSet("s2"),
|
||||
},
|
||||
newSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
newSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"), newManagedClusterSet("s3"),
|
||||
},
|
||||
expectDiffSet: sets.NewString("s2", "s3"),
|
||||
},
|
||||
{
|
||||
name: "add a set",
|
||||
oldSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
oldSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"),
|
||||
},
|
||||
newSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
newSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"), newManagedClusterSet("s2"),
|
||||
},
|
||||
expectDiffSet: sets.NewString("s2"),
|
||||
},
|
||||
{
|
||||
name: "delete a set",
|
||||
oldSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
oldSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"), newManagedClusterSet("s2"),
|
||||
},
|
||||
newSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
newSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"),
|
||||
},
|
||||
expectDiffSet: sets.NewString("s2"),
|
||||
},
|
||||
{
|
||||
name: "old set is nil",
|
||||
oldSets: []*clusterv1beta1.ManagedClusterSet{},
|
||||
newSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
oldSets: []*clusterv1beta2.ManagedClusterSet{},
|
||||
newSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"),
|
||||
},
|
||||
expectDiffSet: sets.NewString("s1"),
|
||||
},
|
||||
{
|
||||
name: "new set is nil",
|
||||
oldSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
oldSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("s1"),
|
||||
},
|
||||
newSets: []*clusterv1beta1.ManagedClusterSet{},
|
||||
newSets: []*clusterv1beta2.ManagedClusterSet{},
|
||||
expectDiffSet: sets.NewString("s1"),
|
||||
},
|
||||
}
|
||||
@@ -324,39 +324,39 @@ func TestGetDiffClustersets(t *testing.T) {
|
||||
func TestEnqueueUpdateClusterClusterSet(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
existingClusterSets []*clusterv1beta1.ManagedClusterSet
|
||||
existingClusterSets []*clusterv1beta2.ManagedClusterSet
|
||||
oldCluster *clusterv1.ManagedCluster
|
||||
newCluster *clusterv1.ManagedCluster
|
||||
expectQueueLen int
|
||||
}{
|
||||
{
|
||||
name: "update a cluster's clusterset",
|
||||
existingClusterSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("mcs1"),
|
||||
newManagedClusterSet("mcs2"),
|
||||
},
|
||||
oldCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta1.ClusterSetLabel: "mcs1"}),
|
||||
newCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta1.ClusterSetLabel: "mcs2"}),
|
||||
oldCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta2.ClusterSetLabel: "mcs1"}),
|
||||
newCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta2.ClusterSetLabel: "mcs2"}),
|
||||
expectQueueLen: 2,
|
||||
},
|
||||
{
|
||||
name: "add a cluster's clusterset",
|
||||
existingClusterSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("mcs1"),
|
||||
newManagedClusterSet("mcs2"),
|
||||
},
|
||||
oldCluster: newClusterWithLabel("c1", nil),
|
||||
newCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta1.ClusterSetLabel: "mcs2"}),
|
||||
newCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta2.ClusterSetLabel: "mcs2"}),
|
||||
expectQueueLen: 1,
|
||||
},
|
||||
{
|
||||
name: "remove a cluster's clusterset",
|
||||
existingClusterSets: []*clusterv1beta1.ManagedClusterSet{
|
||||
existingClusterSets: []*clusterv1beta2.ManagedClusterSet{
|
||||
newManagedClusterSet("mcs1"),
|
||||
newManagedClusterSet("mcs2"),
|
||||
},
|
||||
newCluster: newClusterWithLabel("c1", nil),
|
||||
oldCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta1.ClusterSetLabel: "mcs2"}),
|
||||
oldCluster: newClusterWithLabel("c1", map[string]string{clusterv1beta2.ClusterSetLabel: "mcs2"}),
|
||||
expectQueueLen: 1,
|
||||
},
|
||||
}
|
||||
@@ -372,7 +372,7 @@ func TestEnqueueUpdateClusterClusterSet(t *testing.T) {
|
||||
|
||||
informerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, 5*time.Minute)
|
||||
for _, clusterset := range c.existingClusterSets {
|
||||
err := informerFactory.Cluster().V1beta1().ManagedClusterSets().Informer().GetStore().Add(clusterset)
|
||||
err := informerFactory.Cluster().V1beta2().ManagedClusterSets().Informer().GetStore().Add(clusterset)
|
||||
if err != nil {
|
||||
t.Errorf("Failed to add clusterset: %v, error: %v", clusterset, err)
|
||||
}
|
||||
@@ -381,7 +381,7 @@ func TestEnqueueUpdateClusterClusterSet(t *testing.T) {
|
||||
|
||||
ctrl := managedClusterSetController{
|
||||
clusterClient: clusterClient,
|
||||
clusterSetLister: informerFactory.Cluster().V1beta1().ManagedClusterSets().Lister(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta2().ManagedClusterSets().Lister(),
|
||||
eventRecorder: eventstesting.NewTestingEventRecorder(t),
|
||||
queue: syncCtx.Queue(),
|
||||
}
|
||||
@@ -404,8 +404,8 @@ func newManagedCluster(name string, labels map[string]string) *clusterv1.Managed
|
||||
return cluster
|
||||
}
|
||||
|
||||
func newManagedClusterSet(name string) *clusterv1beta1.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
func newManagedClusterSet(name string) *clusterv1beta2.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
},
|
||||
|
||||
@@ -13,10 +13,10 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/klog/v2"
|
||||
clustersetv1beta1 "open-cluster-management.io/api/client/cluster/clientset/versioned/typed/cluster/v1beta1"
|
||||
clusterinformerv1beta1 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta1"
|
||||
clusterlisterv1beta1 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clustersetv1beta2 "open-cluster-management.io/api/client/cluster/clientset/versioned/typed/cluster/v1beta2"
|
||||
clusterinformerv1beta2 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta2"
|
||||
clusterlisterv1beta2 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta2"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -24,26 +24,26 @@ const (
|
||||
DefaultManagedClusterSetName = "default"
|
||||
)
|
||||
|
||||
var DefaultManagedClusterSet = &clusterv1beta1.ManagedClusterSet{
|
||||
var DefaultManagedClusterSet = &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: DefaultManagedClusterSetName,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LegacyClusterSetLabel,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.ExclusiveClusterSetLabel,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
type defaultManagedClusterSetController struct {
|
||||
clusterSetClient clustersetv1beta1.ClusterV1beta1Interface
|
||||
clusterSetLister clusterlisterv1beta1.ManagedClusterSetLister
|
||||
clusterSetClient clustersetv1beta2.ClusterV1beta2Interface
|
||||
clusterSetLister clusterlisterv1beta2.ManagedClusterSetLister
|
||||
eventRecorder events.Recorder
|
||||
}
|
||||
|
||||
func NewDefaultManagedClusterSetController(
|
||||
clusterSetClient clustersetv1beta1.ClusterV1beta1Interface,
|
||||
clusterSetInformer clusterinformerv1beta1.ManagedClusterSetInformer,
|
||||
clusterSetClient clustersetv1beta2.ClusterV1beta2Interface,
|
||||
clusterSetInformer clusterinformerv1beta2.ManagedClusterSetInformer,
|
||||
recorder events.Recorder) factory.Controller {
|
||||
|
||||
c := &defaultManagedClusterSetController{
|
||||
@@ -100,7 +100,7 @@ func (c *defaultManagedClusterSetController) sync(ctx context.Context, syncCtx f
|
||||
}
|
||||
|
||||
// syncDefaultClusterSet syncs default cluster set.
|
||||
func (c *defaultManagedClusterSetController) syncDefaultClusterSet(ctx context.Context, originalDefaultClusterSet *clusterv1beta1.ManagedClusterSet) error {
|
||||
func (c *defaultManagedClusterSetController) syncDefaultClusterSet(ctx context.Context, originalDefaultClusterSet *clusterv1beta2.ManagedClusterSet) error {
|
||||
defaultClusterSet := originalDefaultClusterSet.DeepCopy()
|
||||
|
||||
// if the annotation has set to disable, default clusterset controller will not work.
|
||||
@@ -124,7 +124,7 @@ func (c *defaultManagedClusterSetController) syncDefaultClusterSet(ctx context.C
|
||||
return nil
|
||||
}
|
||||
|
||||
func hasAnnotation(set *clusterv1beta1.ManagedClusterSet, key, value string) bool {
|
||||
func hasAnnotation(set *clusterv1beta2.ManagedClusterSet, key, value string) bool {
|
||||
if set.Annotations == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -12,21 +12,21 @@ import (
|
||||
clienttesting "k8s.io/client-go/testing"
|
||||
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
|
||||
clusterinformers "open-cluster-management.io/api/client/cluster/informers/externalversions"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
testinghelpers "open-cluster-management.io/registration/pkg/helpers/testing"
|
||||
)
|
||||
|
||||
func TestSyncDefaultClusterSet(t *testing.T) {
|
||||
|
||||
var editedDefaultManagedClusterSetSpec = clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
var editedDefaultManagedClusterSetSpec = clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: "non-LegacyClusterSetLabel",
|
||||
},
|
||||
}
|
||||
|
||||
cases := []struct {
|
||||
name string
|
||||
existingClusterSet *clusterv1beta1.ManagedClusterSet
|
||||
existingClusterSet *clusterv1beta2.ManagedClusterSet
|
||||
validateActions func(t *testing.T, actions []clienttesting.Action)
|
||||
}{
|
||||
{
|
||||
@@ -42,7 +42,7 @@ func TestSyncDefaultClusterSet(t *testing.T) {
|
||||
validateActions: func(t *testing.T, actions []clienttesting.Action) {
|
||||
|
||||
testinghelpers.AssertActions(t, actions, "update")
|
||||
clusterset := actions[0].(clienttesting.UpdateAction).GetObject().(*clusterv1beta1.ManagedClusterSet)
|
||||
clusterset := actions[0].(clienttesting.UpdateAction).GetObject().(*clusterv1beta2.ManagedClusterSet)
|
||||
// if spec not rollbacked, error
|
||||
if !equality.Semantic.DeepEqual(clusterset.Spec, DefaultManagedClusterSet.Spec) {
|
||||
t.Errorf("Failed to rollback default managed cluster set spec after it is edited")
|
||||
@@ -61,7 +61,7 @@ func TestSyncDefaultClusterSet(t *testing.T) {
|
||||
// default cluster set should be created if it is deleted.
|
||||
validateActions: func(t *testing.T, actions []clienttesting.Action) {
|
||||
testinghelpers.AssertActions(t, actions, "create")
|
||||
clusterset := actions[0].(clienttesting.CreateAction).GetObject().(*clusterv1beta1.ManagedClusterSet)
|
||||
clusterset := actions[0].(clienttesting.CreateAction).GetObject().(*clusterv1beta2.ManagedClusterSet)
|
||||
if clusterset.ObjectMeta.Name != DefaultManagedClusterSetName {
|
||||
t.Errorf("Failed to create default managed cluster set")
|
||||
}
|
||||
@@ -88,14 +88,14 @@ func TestSyncDefaultClusterSet(t *testing.T) {
|
||||
informerFactory := clusterinformers.NewSharedInformerFactory(clusterSetClient, 5*time.Minute)
|
||||
|
||||
if c.existingClusterSet != nil {
|
||||
if err := informerFactory.Cluster().V1beta1().ManagedClusterSets().Informer().GetStore().Add(c.existingClusterSet); err != nil {
|
||||
if err := informerFactory.Cluster().V1beta2().ManagedClusterSets().Informer().GetStore().Add(c.existingClusterSet); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
ctrl := defaultManagedClusterSetController{
|
||||
clusterSetClient: clusterSetClient.ClusterV1beta1(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta1().ManagedClusterSets().Lister(),
|
||||
clusterSetClient: clusterSetClient.ClusterV1beta2(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta2().ManagedClusterSets().Lister(),
|
||||
eventRecorder: eventstesting.NewTestingEventRecorder(t),
|
||||
}
|
||||
|
||||
@@ -110,8 +110,8 @@ func TestSyncDefaultClusterSet(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func newDefaultManagedClusterSet(name string, spec clusterv1beta1.ManagedClusterSetSpec, terminating bool) *clusterv1beta1.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
func newDefaultManagedClusterSet(name string, spec clusterv1beta2.ManagedClusterSetSpec, terminating bool) *clusterv1beta2.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
},
|
||||
@@ -125,8 +125,8 @@ func newDefaultManagedClusterSet(name string, spec clusterv1beta1.ManagedCluster
|
||||
return clusterSet
|
||||
}
|
||||
|
||||
func newDefaultManagedClusterSetWithAnnotation(name string, k, v string, spec clusterv1beta1.ManagedClusterSetSpec, terminating bool) *clusterv1beta1.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
func newDefaultManagedClusterSetWithAnnotation(name string, k, v string, spec clusterv1beta2.ManagedClusterSetSpec, terminating bool) *clusterv1beta2.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
Annotations: map[string]string{
|
||||
|
||||
@@ -13,37 +13,37 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/klog/v2"
|
||||
clustersetv1beta1 "open-cluster-management.io/api/client/cluster/clientset/versioned/typed/cluster/v1beta1"
|
||||
clusterinformerv1beta1 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta1"
|
||||
clusterlisterv1beta1 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clustersetv1beta2 "open-cluster-management.io/api/client/cluster/clientset/versioned/typed/cluster/v1beta2"
|
||||
clusterinformerv1beta2 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta2"
|
||||
clusterlisterv1beta2 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta2"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
const (
|
||||
GlobalManagedClusterSetName = "global"
|
||||
)
|
||||
|
||||
var GlobalManagedClusterSet = &clusterv1beta1.ManagedClusterSet{
|
||||
var GlobalManagedClusterSet = &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: GlobalManagedClusterSetName,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
LabelSelector: &metav1.LabelSelector{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
type globalManagedClusterSetController struct {
|
||||
clusterSetClient clustersetv1beta1.ClusterV1beta1Interface
|
||||
clusterSetLister clusterlisterv1beta1.ManagedClusterSetLister
|
||||
clusterSetClient clustersetv1beta2.ClusterV1beta2Interface
|
||||
clusterSetLister clusterlisterv1beta2.ManagedClusterSetLister
|
||||
eventRecorder events.Recorder
|
||||
}
|
||||
|
||||
func NewGlobalManagedClusterSetController(
|
||||
clusterSetClient clustersetv1beta1.ClusterV1beta1Interface,
|
||||
clusterSetInformer clusterinformerv1beta1.ManagedClusterSetInformer,
|
||||
clusterSetClient clustersetv1beta2.ClusterV1beta2Interface,
|
||||
clusterSetInformer clusterinformerv1beta2.ManagedClusterSetInformer,
|
||||
recorder events.Recorder) factory.Controller {
|
||||
|
||||
c := &globalManagedClusterSetController{
|
||||
@@ -99,7 +99,7 @@ func (c *globalManagedClusterSetController) sync(ctx context.Context, syncCtx fa
|
||||
}
|
||||
|
||||
// applyGlobalClusterSet syncs global cluster set.
|
||||
func (c *globalManagedClusterSetController) applyGlobalClusterSet(ctx context.Context, originalGlobalClusterSet *clusterv1beta1.ManagedClusterSet) error {
|
||||
func (c *globalManagedClusterSetController) applyGlobalClusterSet(ctx context.Context, originalGlobalClusterSet *clusterv1beta2.ManagedClusterSet) error {
|
||||
globalClusterSet := originalGlobalClusterSet.DeepCopy()
|
||||
|
||||
// if the annotation has set to disable, global clusterset controller will not work.
|
||||
|
||||
@@ -12,21 +12,21 @@ import (
|
||||
clienttesting "k8s.io/client-go/testing"
|
||||
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
|
||||
clusterinformers "open-cluster-management.io/api/client/cluster/informers/externalversions"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
testinghelpers "open-cluster-management.io/registration/pkg/helpers/testing"
|
||||
)
|
||||
|
||||
func TestSyncGlobalClusterSet(t *testing.T) {
|
||||
|
||||
var editedGlobalManagedClusterSetSpec = clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
var editedGlobalManagedClusterSetSpec = clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: "non-LegacyClusterSetLabel",
|
||||
},
|
||||
}
|
||||
|
||||
cases := []struct {
|
||||
name string
|
||||
existingClusterSet *clusterv1beta1.ManagedClusterSet
|
||||
existingClusterSet *clusterv1beta2.ManagedClusterSet
|
||||
validateActions func(t *testing.T, actions []clienttesting.Action)
|
||||
}{
|
||||
{
|
||||
@@ -42,7 +42,7 @@ func TestSyncGlobalClusterSet(t *testing.T) {
|
||||
validateActions: func(t *testing.T, actions []clienttesting.Action) {
|
||||
|
||||
testinghelpers.AssertActions(t, actions, "update")
|
||||
clusterset := actions[0].(clienttesting.UpdateAction).GetObject().(*clusterv1beta1.ManagedClusterSet)
|
||||
clusterset := actions[0].(clienttesting.UpdateAction).GetObject().(*clusterv1beta2.ManagedClusterSet)
|
||||
// if spec not rollbacked, error
|
||||
if !equality.Semantic.DeepEqual(clusterset.Spec, GlobalManagedClusterSet.Spec) {
|
||||
t.Errorf("Failed to rollback global managed cluster set spec after it is edited")
|
||||
@@ -54,7 +54,7 @@ func TestSyncGlobalClusterSet(t *testing.T) {
|
||||
// global cluster set should be created if it is deleted.
|
||||
validateActions: func(t *testing.T, actions []clienttesting.Action) {
|
||||
testinghelpers.AssertActions(t, actions, "create")
|
||||
clusterset := actions[0].(clienttesting.CreateAction).GetObject().(*clusterv1beta1.ManagedClusterSet)
|
||||
clusterset := actions[0].(clienttesting.CreateAction).GetObject().(*clusterv1beta2.ManagedClusterSet)
|
||||
if clusterset.ObjectMeta.Name != GlobalManagedClusterSetName {
|
||||
t.Errorf("Failed to create global managed cluster set")
|
||||
}
|
||||
@@ -81,14 +81,14 @@ func TestSyncGlobalClusterSet(t *testing.T) {
|
||||
informerFactory := clusterinformers.NewSharedInformerFactory(clusterSetClient, 5*time.Minute)
|
||||
|
||||
if c.existingClusterSet != nil {
|
||||
if err := informerFactory.Cluster().V1beta1().ManagedClusterSets().Informer().GetStore().Add(c.existingClusterSet); err != nil {
|
||||
if err := informerFactory.Cluster().V1beta2().ManagedClusterSets().Informer().GetStore().Add(c.existingClusterSet); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
ctrl := globalManagedClusterSetController{
|
||||
clusterSetClient: clusterSetClient.ClusterV1beta1(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta1().ManagedClusterSets().Lister(),
|
||||
clusterSetClient: clusterSetClient.ClusterV1beta2(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta2().ManagedClusterSets().Lister(),
|
||||
eventRecorder: eventstesting.NewTestingEventRecorder(t),
|
||||
}
|
||||
|
||||
@@ -102,8 +102,8 @@ func TestSyncGlobalClusterSet(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func newGlobalManagedClusterSet(name string, spec clusterv1beta1.ManagedClusterSetSpec, terminating bool) *clusterv1beta1.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
func newGlobalManagedClusterSet(name string, spec clusterv1beta2.ManagedClusterSetSpec, terminating bool) *clusterv1beta2.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
},
|
||||
@@ -117,8 +117,8 @@ func newGlobalManagedClusterSet(name string, spec clusterv1beta1.ManagedClusterS
|
||||
return clusterSet
|
||||
}
|
||||
|
||||
func newGlobalManagedClusterSetWithAnnotation(name string, k, v string, spec clusterv1beta1.ManagedClusterSetSpec, terminating bool) *clusterv1beta1.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
func newGlobalManagedClusterSetWithAnnotation(name string, k, v string, spec clusterv1beta2.ManagedClusterSetSpec, terminating bool) *clusterv1beta2.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
Annotations: map[string]string{
|
||||
|
||||
@@ -19,9 +19,9 @@ import (
|
||||
"k8s.io/client-go/util/workqueue"
|
||||
"k8s.io/klog/v2"
|
||||
clientset "open-cluster-management.io/api/client/cluster/clientset/versioned"
|
||||
clusterinformerv1beta1 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta1"
|
||||
clusterlisterv1beta1 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterinformerv1beta2 "open-cluster-management.io/api/client/cluster/informers/externalversions/cluster/v1beta2"
|
||||
clusterlisterv1beta2 "open-cluster-management.io/api/client/cluster/listers/cluster/v1beta2"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -31,8 +31,8 @@ const (
|
||||
// managedClusterSetController reconciles instances of ManagedClusterSet on the hub.
|
||||
type managedClusterSetBindingController struct {
|
||||
clusterClient clientset.Interface
|
||||
clusterSetBindingLister clusterlisterv1beta1.ManagedClusterSetBindingLister
|
||||
clusterSetLister clusterlisterv1beta1.ManagedClusterSetLister
|
||||
clusterSetBindingLister clusterlisterv1beta2.ManagedClusterSetBindingLister
|
||||
clusterSetLister clusterlisterv1beta2.ManagedClusterSetLister
|
||||
clusterSetBindingIndexers cache.Indexer
|
||||
queue workqueue.RateLimitingInterface
|
||||
eventRecorder events.Recorder
|
||||
@@ -40,8 +40,8 @@ type managedClusterSetBindingController struct {
|
||||
|
||||
func NewManagedClusterSetBindingController(
|
||||
clusterClient clientset.Interface,
|
||||
clusterSetInformer clusterinformerv1beta1.ManagedClusterSetInformer,
|
||||
clusterSetBindingInformer clusterinformerv1beta1.ManagedClusterSetBindingInformer,
|
||||
clusterSetInformer clusterinformerv1beta2.ManagedClusterSetInformer,
|
||||
clusterSetBindingInformer clusterinformerv1beta2.ManagedClusterSetBindingInformer,
|
||||
recorder events.Recorder) factory.Controller {
|
||||
|
||||
controllerName := "managed-clusterset-binding-controller"
|
||||
@@ -86,7 +86,7 @@ func NewManagedClusterSetBindingController(
|
||||
}
|
||||
|
||||
func indexByClusterset(obj interface{}) ([]string, error) {
|
||||
binding, ok := obj.(*clusterv1beta1.ManagedClusterSetBinding)
|
||||
binding, ok := obj.(*clusterv1beta2.ManagedClusterSetBinding)
|
||||
if !ok {
|
||||
return []string{}, fmt.Errorf("obj is supposed to be a ManagedClusterSetBinding, but is %T", obj)
|
||||
}
|
||||
@@ -94,15 +94,15 @@ func indexByClusterset(obj interface{}) ([]string, error) {
|
||||
return []string{binding.Spec.ClusterSet}, nil
|
||||
}
|
||||
|
||||
func (c *managedClusterSetBindingController) getClusterBindingsByClusterSet(name string) ([]*clusterv1beta1.ManagedClusterSetBinding, error) {
|
||||
func (c *managedClusterSetBindingController) getClusterBindingsByClusterSet(name string) ([]*clusterv1beta2.ManagedClusterSetBinding, error) {
|
||||
objs, err := c.clusterSetBindingIndexers.ByIndex(byClusterSet, name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
bindings := make([]*clusterv1beta1.ManagedClusterSetBinding, len(objs))
|
||||
bindings := make([]*clusterv1beta2.ManagedClusterSetBinding, len(objs))
|
||||
for _, obj := range objs {
|
||||
binding := obj.(*clusterv1beta1.ManagedClusterSetBinding)
|
||||
binding := obj.(*clusterv1beta2.ManagedClusterSetBinding)
|
||||
bindings = append(bindings, binding)
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@ func (c *managedClusterSetBindingController) sync(ctx context.Context, syncCtx f
|
||||
switch {
|
||||
case errors.IsNotFound(err):
|
||||
meta.SetStatusCondition(&bindingCopy.Status.Conditions, metav1.Condition{
|
||||
Type: clusterv1beta1.ClusterSetBindingBoundType,
|
||||
Type: clusterv1beta2.ClusterSetBindingBoundType,
|
||||
Status: metav1.ConditionFalse,
|
||||
Reason: "ClusterSetNotFound",
|
||||
})
|
||||
@@ -173,7 +173,7 @@ func (c *managedClusterSetBindingController) sync(ctx context.Context, syncCtx f
|
||||
}
|
||||
|
||||
meta.SetStatusCondition(&bindingCopy.Status.Conditions, metav1.Condition{
|
||||
Type: clusterv1beta1.ClusterSetBindingBoundType,
|
||||
Type: clusterv1beta2.ClusterSetBindingBoundType,
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "ClusterSetBound",
|
||||
})
|
||||
@@ -181,13 +181,13 @@ func (c *managedClusterSetBindingController) sync(ctx context.Context, syncCtx f
|
||||
return c.patchCondition(ctx, binding, bindingCopy)
|
||||
}
|
||||
|
||||
func (c *managedClusterSetBindingController) patchCondition(ctx context.Context, old, new *clusterv1beta1.ManagedClusterSetBinding) error {
|
||||
func (c *managedClusterSetBindingController) patchCondition(ctx context.Context, old, new *clusterv1beta2.ManagedClusterSetBinding) error {
|
||||
if equality.Semantic.DeepEqual(old.Status.Conditions, new.Status.Conditions) {
|
||||
return nil
|
||||
}
|
||||
|
||||
oldData, err := json.Marshal(clusterv1beta1.ManagedClusterSetBinding{
|
||||
Status: clusterv1beta1.ManagedClusterSetBindingStatus{
|
||||
oldData, err := json.Marshal(clusterv1beta2.ManagedClusterSetBinding{
|
||||
Status: clusterv1beta2.ManagedClusterSetBindingStatus{
|
||||
Conditions: old.Status.Conditions,
|
||||
},
|
||||
})
|
||||
@@ -195,12 +195,12 @@ func (c *managedClusterSetBindingController) patchCondition(ctx context.Context,
|
||||
return fmt.Errorf("failed to Marshal old data for workspace %s: %w", old.Name, err)
|
||||
}
|
||||
|
||||
newData, err := json.Marshal(clusterv1beta1.ManagedClusterSetBinding{
|
||||
newData, err := json.Marshal(clusterv1beta2.ManagedClusterSetBinding{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
UID: old.UID,
|
||||
ResourceVersion: old.ResourceVersion,
|
||||
}, // to ensure they appear in the patch as preconditions
|
||||
Status: clusterv1beta1.ManagedClusterSetBindingStatus{
|
||||
Status: clusterv1beta2.ManagedClusterSetBindingStatus{
|
||||
Conditions: new.Status.Conditions,
|
||||
},
|
||||
})
|
||||
@@ -215,6 +215,6 @@ func (c *managedClusterSetBindingController) patchCondition(ctx context.Context,
|
||||
|
||||
c.eventRecorder.Eventf("PatchClusterSetBindingCondition", "patch clustersetbinding %s/%s condition", new.Namespace, new.Name)
|
||||
|
||||
_, err = c.clusterClient.ClusterV1beta1().ManagedClusterSetBindings(new.Namespace).Patch(ctx, new.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}, "status")
|
||||
_, err = c.clusterClient.ClusterV1beta2().ManagedClusterSetBindings(new.Namespace).Patch(ctx, new.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}, "status")
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
"k8s.io/client-go/tools/cache"
|
||||
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
|
||||
clusterinformers "open-cluster-management.io/api/client/cluster/informers/externalversions"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
testinghelpers "open-cluster-management.io/registration/pkg/helpers/testing"
|
||||
)
|
||||
|
||||
@@ -22,7 +22,7 @@ func TestSync(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
clusterSets []runtime.Object
|
||||
clusterSetBinding *clusterv1beta1.ManagedClusterSetBinding
|
||||
clusterSetBinding *clusterv1beta2.ManagedClusterSetBinding
|
||||
validateActions func(t *testing.T, actions []clienttesting.Action)
|
||||
}{
|
||||
{
|
||||
@@ -38,14 +38,14 @@ func TestSync(t *testing.T) {
|
||||
validateActions: func(t *testing.T, actions []clienttesting.Action) {
|
||||
testinghelpers.AssertActions(t, actions, "patch")
|
||||
patchData := actions[0].(clienttesting.PatchActionImpl).Patch
|
||||
binding := &clusterv1beta1.ManagedClusterSetBinding{}
|
||||
binding := &clusterv1beta2.ManagedClusterSetBinding{}
|
||||
err := json.Unmarshal(patchData, binding)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
testinghelpers.AssertCondition(t, binding.Status.Conditions, metav1.Condition{
|
||||
Type: clusterv1beta1.ClusterSetBindingBoundType,
|
||||
Type: clusterv1beta2.ClusterSetBindingBoundType,
|
||||
Status: metav1.ConditionFalse,
|
||||
Reason: "ClusterSetNotFound",
|
||||
})
|
||||
@@ -58,14 +58,14 @@ func TestSync(t *testing.T) {
|
||||
validateActions: func(t *testing.T, actions []clienttesting.Action) {
|
||||
testinghelpers.AssertActions(t, actions, "patch")
|
||||
patchData := actions[0].(clienttesting.PatchActionImpl).Patch
|
||||
binding := &clusterv1beta1.ManagedClusterSetBinding{}
|
||||
binding := &clusterv1beta2.ManagedClusterSetBinding{}
|
||||
err := json.Unmarshal(patchData, binding)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
testinghelpers.AssertCondition(t, binding.Status.Conditions, metav1.Condition{
|
||||
Type: clusterv1beta1.ClusterSetBindingBoundType,
|
||||
Type: clusterv1beta2.ClusterSetBindingBoundType,
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "ClusterSetBound",
|
||||
})
|
||||
@@ -74,10 +74,10 @@ func TestSync(t *testing.T) {
|
||||
{
|
||||
name: "no update",
|
||||
clusterSets: []runtime.Object{newManagedClusterSet("test")},
|
||||
clusterSetBinding: func() *clusterv1beta1.ManagedClusterSetBinding {
|
||||
clusterSetBinding: func() *clusterv1beta2.ManagedClusterSetBinding {
|
||||
binding := newManagedClusterSetBinding("test", "testns")
|
||||
meta.SetStatusCondition(&binding.Status.Conditions, metav1.Condition{
|
||||
Type: clusterv1beta1.ClusterSetBindingBoundType,
|
||||
Type: clusterv1beta2.ClusterSetBindingBoundType,
|
||||
Status: metav1.ConditionTrue,
|
||||
Reason: "ClusterSetBound",
|
||||
})
|
||||
@@ -96,18 +96,18 @@ func TestSync(t *testing.T) {
|
||||
clusterClient := clusterfake.NewSimpleClientset(objects...)
|
||||
informerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, 5*time.Minute)
|
||||
for _, clusterset := range c.clusterSets {
|
||||
if err := informerFactory.Cluster().V1beta1().ManagedClusterSets().Informer().GetStore().Add(clusterset); err != nil {
|
||||
if err := informerFactory.Cluster().V1beta2().ManagedClusterSets().Informer().GetStore().Add(clusterset); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
if err := informerFactory.Cluster().V1beta1().ManagedClusterSetBindings().Informer().GetStore().Add(c.clusterSetBinding); err != nil {
|
||||
if err := informerFactory.Cluster().V1beta2().ManagedClusterSetBindings().Informer().GetStore().Add(c.clusterSetBinding); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
ctrl := managedClusterSetBindingController{
|
||||
clusterClient: clusterClient,
|
||||
clusterSetBindingLister: informerFactory.Cluster().V1beta1().ManagedClusterSetBindings().Lister(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta1().ManagedClusterSets().Lister(),
|
||||
clusterSetBindingLister: informerFactory.Cluster().V1beta2().ManagedClusterSetBindings().Lister(),
|
||||
clusterSetLister: informerFactory.Cluster().V1beta2().ManagedClusterSets().Lister(),
|
||||
eventRecorder: eventstesting.NewTestingEventRecorder(t),
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ func TestSync(t *testing.T) {
|
||||
func TestEnqueue(t *testing.T) {
|
||||
cases := []struct {
|
||||
name string
|
||||
clusterSet *clusterv1beta1.ManagedClusterSet
|
||||
clusterSet *clusterv1beta2.ManagedClusterSet
|
||||
clusterSetBindings []runtime.Object
|
||||
expectedQueueSize int
|
||||
}{
|
||||
@@ -158,7 +158,7 @@ func TestEnqueue(t *testing.T) {
|
||||
|
||||
clusterClient := clusterfake.NewSimpleClientset(objects...)
|
||||
informerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, 5*time.Minute)
|
||||
err := informerFactory.Cluster().V1beta1().ManagedClusterSetBindings().Informer().AddIndexers(cache.Indexers{
|
||||
err := informerFactory.Cluster().V1beta2().ManagedClusterSetBindings().Informer().AddIndexers(cache.Indexers{
|
||||
byClusterSet: indexByClusterset,
|
||||
})
|
||||
|
||||
@@ -167,7 +167,7 @@ func TestEnqueue(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, binding := range c.clusterSetBindings {
|
||||
if err := informerFactory.Cluster().V1beta1().ManagedClusterSetBindings().Informer().GetStore().Add(binding); err != nil {
|
||||
if err := informerFactory.Cluster().V1beta2().ManagedClusterSetBindings().Informer().GetStore().Add(binding); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
@@ -175,7 +175,7 @@ func TestEnqueue(t *testing.T) {
|
||||
syncCtx := testinghelpers.NewFakeSyncContext(t, "fake")
|
||||
|
||||
ctrl := managedClusterSetBindingController{
|
||||
clusterSetBindingIndexers: informerFactory.Cluster().V1beta1().ManagedClusterSetBindings().Informer().GetIndexer(),
|
||||
clusterSetBindingIndexers: informerFactory.Cluster().V1beta2().ManagedClusterSetBindings().Informer().GetIndexer(),
|
||||
queue: syncCtx.Queue(),
|
||||
}
|
||||
|
||||
@@ -188,8 +188,8 @@ func TestEnqueue(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func newManagedClusterSet(name string) *clusterv1beta1.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
func newManagedClusterSet(name string) *clusterv1beta2.ManagedClusterSet {
|
||||
clusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
},
|
||||
@@ -198,13 +198,13 @@ func newManagedClusterSet(name string) *clusterv1beta1.ManagedClusterSet {
|
||||
return clusterSet
|
||||
}
|
||||
|
||||
func newManagedClusterSetBinding(name, namespace string) *clusterv1beta1.ManagedClusterSetBinding {
|
||||
return &clusterv1beta1.ManagedClusterSetBinding{
|
||||
func newManagedClusterSetBinding(name, namespace string) *clusterv1beta2.ManagedClusterSetBinding {
|
||||
return &clusterv1beta2.ManagedClusterSetBinding{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
Namespace: namespace,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetBindingSpec{
|
||||
Spec: clusterv1beta2.ManagedClusterSetBindingSpec{
|
||||
ClusterSet: name,
|
||||
},
|
||||
}
|
||||
|
||||
+7
-7
@@ -132,14 +132,14 @@ func RunControllerManager(ctx context.Context, controllerContext *controllercmd.
|
||||
managedClusterSetController := managedclusterset.NewManagedClusterSetController(
|
||||
clusterClient,
|
||||
clusterInformers.Cluster().V1().ManagedClusters(),
|
||||
clusterInformers.Cluster().V1beta1().ManagedClusterSets(),
|
||||
clusterInformers.Cluster().V1beta2().ManagedClusterSets(),
|
||||
controllerContext.EventRecorder,
|
||||
)
|
||||
|
||||
managedClusterSetBindingController := managedclustersetbinding.NewManagedClusterSetBindingController(
|
||||
clusterClient,
|
||||
clusterInformers.Cluster().V1beta1().ManagedClusterSets(),
|
||||
clusterInformers.Cluster().V1beta1().ManagedClusterSetBindings(),
|
||||
clusterInformers.Cluster().V1beta2().ManagedClusterSets(),
|
||||
clusterInformers.Cluster().V1beta2().ManagedClusterSetBindings(),
|
||||
controllerContext.EventRecorder,
|
||||
)
|
||||
|
||||
@@ -167,13 +167,13 @@ func RunControllerManager(ctx context.Context, controllerContext *controllercmd.
|
||||
var defaultManagedClusterSetController, globalManagedClusterSetController factory.Controller
|
||||
if features.DefaultHubMutableFeatureGate.Enabled(ocmfeature.DefaultClusterSet) {
|
||||
defaultManagedClusterSetController = managedclusterset.NewDefaultManagedClusterSetController(
|
||||
clusterClient.ClusterV1beta1(),
|
||||
clusterInformers.Cluster().V1beta1().ManagedClusterSets(),
|
||||
clusterClient.ClusterV1beta2(),
|
||||
clusterInformers.Cluster().V1beta2().ManagedClusterSets(),
|
||||
controllerContext.EventRecorder,
|
||||
)
|
||||
globalManagedClusterSetController = managedclusterset.NewGlobalManagedClusterSetController(
|
||||
clusterClient.ClusterV1beta1(),
|
||||
clusterInformers.Cluster().V1beta1().ManagedClusterSets(),
|
||||
clusterClient.ClusterV1beta2(),
|
||||
clusterInformers.Cluster().V1beta2().ManagedClusterSets(),
|
||||
controllerContext.EventRecorder,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -4,10 +4,11 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
ocmfeature "open-cluster-management.io/api/feature"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
ocmfeature "open-cluster-management.io/api/feature"
|
||||
|
||||
admissionv1beta1 "k8s.io/api/admission/v1beta1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
@@ -15,7 +16,7 @@ import (
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/klog/v2"
|
||||
clusterv1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
"open-cluster-management.io/registration/pkg/helpers"
|
||||
)
|
||||
|
||||
@@ -122,14 +123,14 @@ func (a *ManagedClusterMutatingAdmissionHook) addDefaultClusterSetLabel(managedC
|
||||
Operation: "add",
|
||||
Path: "/metadata/labels",
|
||||
Value: map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: defaultClusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: defaultClusterSetName,
|
||||
},
|
||||
},
|
||||
}
|
||||
return jsonPatches, status
|
||||
}
|
||||
|
||||
clusterSetName, ok := managedCluster.Labels[clusterv1beta1.ClusterSetLabel]
|
||||
clusterSetName, ok := managedCluster.Labels[clusterv1beta2.ClusterSetLabel]
|
||||
// Clusterset label do not exist
|
||||
if !ok {
|
||||
jsonPatches = []jsonPatchOperation{
|
||||
|
||||
@@ -4,14 +4,15 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
ocmfeature "open-cluster-management.io/api/feature"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
ocmfeature "open-cluster-management.io/api/feature"
|
||||
|
||||
"github.com/openshift/library-go/pkg/operator/resource/resourcemerge"
|
||||
clusterv1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
|
||||
admissionv1beta1 "k8s.io/api/admission/v1beta1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
@@ -57,7 +58,7 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
withLeaseDurationSeconds(60).
|
||||
addTaint(newTaint("a", "b", clusterv1.TaintEffectNoSelect, nil)).
|
||||
addTaint(newTaint("c", "d", clusterv1.TaintEffectPreferNoSelect, nil)).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).
|
||||
@@ -74,7 +75,7 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
withLeaseDurationSeconds(60).
|
||||
addTaint(newTaint("a", "b", clusterv1.TaintEffectNoSelect, nil)).
|
||||
addTaint(newTaint("c", "d", clusterv1.TaintEffectPreferNoSelect, newTime(now, 0))).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).
|
||||
@@ -92,13 +93,13 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
withLeaseDurationSeconds(60).
|
||||
addTaint(newTaint("a", "b", clusterv1.TaintEffectNoSelect, newTime(now, -10*time.Second))).
|
||||
addTaint(newTaint("c", "d", clusterv1.TaintEffectNoSelect, newTime(now, -10*time.Second))).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
Object: newManagedCluster().
|
||||
withLeaseDurationSeconds(60).
|
||||
addTaint(newTaint("a", "b", clusterv1.TaintEffectNoSelect, newTime(now, -10*time.Second))). // no change
|
||||
addTaint(newTaint("c", "d", clusterv1.TaintEffectNoSelectIfNew, nil)). // effect modified
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).
|
||||
@@ -134,12 +135,12 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
withLeaseDurationSeconds(60).
|
||||
addTaint(newTaint("a", "b", clusterv1.TaintEffectNoSelect, newTime(now, -10*time.Second))).
|
||||
addTaint(newTaint("c", "d", clusterv1.TaintEffectNoSelect, newTime(now, -10*time.Second))).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
Object: newManagedCluster().
|
||||
withLeaseDurationSeconds(60).
|
||||
addTaint(newTaint("a", "b", clusterv1.TaintEffectNoSelect, newTime(now, -10*time.Second))).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).build(),
|
||||
@@ -158,7 +159,7 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
Operation: "add",
|
||||
Path: "/metadata/labels",
|
||||
Value: map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: defaultClusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: defaultClusterSetName,
|
||||
},
|
||||
}).
|
||||
build(),
|
||||
@@ -170,7 +171,7 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
Operation: admissionv1beta1.Create,
|
||||
Object: newManagedCluster().
|
||||
withLeaseDurationSeconds(60).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: "c1"}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: "c1"}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).
|
||||
@@ -183,7 +184,7 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
Operation: admissionv1beta1.Create,
|
||||
Object: newManagedCluster().
|
||||
withLeaseDurationSeconds(60).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: defaultClusterSetName}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: defaultClusterSetName}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).
|
||||
@@ -196,7 +197,7 @@ func TestManagedClusterMutate(t *testing.T) {
|
||||
Operation: admissionv1beta1.Create,
|
||||
Object: newManagedCluster().
|
||||
withLeaseDurationSeconds(60).
|
||||
addLabels(map[string]string{clusterv1beta1.ClusterSetLabel: ""}).
|
||||
addLabels(map[string]string{clusterv1beta2.ClusterSetLabel: ""}).
|
||||
build(),
|
||||
},
|
||||
expectedResponse: newAdmissionResponse(true).
|
||||
|
||||
@@ -20,7 +20,7 @@ import (
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/klog/v2"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
)
|
||||
|
||||
// ManagedClusterValidatingAdmissionHook will validate the creating/updating managedcluster request.
|
||||
@@ -96,7 +96,7 @@ func (a *ManagedClusterValidatingAdmissionHook) validateCreateRequest(request *a
|
||||
// check whether the request user has been allowed to set clusterset label
|
||||
var clusterSetName string
|
||||
if len(managedCluster.Labels) > 0 {
|
||||
clusterSetName = managedCluster.Labels[clusterv1beta1.ClusterSetLabel]
|
||||
clusterSetName = managedCluster.Labels[clusterv1beta2.ClusterSetLabel]
|
||||
}
|
||||
|
||||
return a.allowSetClusterSetLabel(request.UserInfo, "", clusterSetName)
|
||||
@@ -138,10 +138,10 @@ func (a *ManagedClusterValidatingAdmissionHook) validateUpdateRequest(request *a
|
||||
// check whether the request user has been allowed to set clusterset label
|
||||
var originalClusterSetName, currentClusterSetName string
|
||||
if len(oldManagedCluster.Labels) > 0 {
|
||||
originalClusterSetName = oldManagedCluster.Labels[clusterv1beta1.ClusterSetLabel]
|
||||
originalClusterSetName = oldManagedCluster.Labels[clusterv1beta2.ClusterSetLabel]
|
||||
}
|
||||
if len(newManagedCluster.Labels) > 0 {
|
||||
currentClusterSetName = newManagedCluster.Labels[clusterv1beta1.ClusterSetLabel]
|
||||
currentClusterSetName = newManagedCluster.Labels[clusterv1beta2.ClusterSetLabel]
|
||||
}
|
||||
|
||||
return a.allowSetClusterSetLabel(request.UserInfo, originalClusterSetName, currentClusterSetName)
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"testing"
|
||||
|
||||
clusterv1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
testinghelpers "open-cluster-management.io/registration/pkg/helpers/testing"
|
||||
|
||||
admissionv1beta1 "k8s.io/api/admission/v1beta1"
|
||||
@@ -317,7 +317,7 @@ func newManagedClusterObjWithClientConfigs(clientConfig clusterv1.ClientConfig)
|
||||
func newManagedClusterObjWithClientSet(clusterSetName string) runtime.RawExtension {
|
||||
managedCluster := testinghelpers.NewManagedCluster()
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: clusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: clusterSetName,
|
||||
}
|
||||
clusterObj, _ := json.Marshal(managedCluster)
|
||||
return runtime.RawExtension{
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/klog/v2"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
// ManagedClusterSetBindingValidatingAdmissionHook will validate the creating/updating ManagedClusterSetBinding request.
|
||||
@@ -48,7 +48,7 @@ func (a *ManagedClusterSetBindingValidatingAdmissionHook) Validate(admissionSpec
|
||||
return acceptRequest()
|
||||
}
|
||||
|
||||
binding := &clusterv1beta1.ManagedClusterSetBinding{}
|
||||
binding := &clusterv1beta2.ManagedClusterSetBinding{}
|
||||
if err := json.Unmarshal(admissionSpec.Object.Raw, binding); err != nil {
|
||||
return denyRequest(http.StatusBadRequest, metav1.StatusReasonBadRequest,
|
||||
fmt.Sprintf("Unable to unmarshal the ManagedClusterSetBinding object: %v", err))
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
kubefake "k8s.io/client-go/kubernetes/fake"
|
||||
clienttesting "k8s.io/client-go/testing"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
var managedclustersetbindingSchema = metav1.GroupVersionResource{
|
||||
@@ -154,13 +154,13 @@ func TestManagedClusterValidate(t *testing.T) {
|
||||
}
|
||||
|
||||
func newManagedClusterSetBindingObj(namespace, name, clusterSetName string, labels map[string]string) runtime.RawExtension {
|
||||
managedClusterSetBinding := &clusterv1beta1.ManagedClusterSetBinding{
|
||||
managedClusterSetBinding := &clusterv1beta2.ManagedClusterSetBinding{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: namespace,
|
||||
Name: name,
|
||||
Labels: labels,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetBindingSpec{
|
||||
Spec: clusterv1beta2.ManagedClusterSetBindingSpec{
|
||||
ClusterSet: clusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/rand"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
var _ = ginkgo.Describe("ManagedClusterSetBinding", func() {
|
||||
@@ -34,11 +34,11 @@ var _ = ginkgo.Describe("ManagedClusterSetBinding", func() {
|
||||
gomega.Eventually(func() error {
|
||||
clusterSetName := fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Delete(context.TODO(), clusterSetName, metav1.DeleteOptions{})
|
||||
return clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Delete(context.TODO(), clusterSetName, metav1.DeleteOptions{})
|
||||
}, 60*time.Second, 1*time.Second).Should(gomega.Succeed())
|
||||
})
|
||||
|
||||
@@ -53,55 +53,55 @@ var _ = ginkgo.Describe("ManagedClusterSetBinding", func() {
|
||||
ginkgo.It("should bound a ManagedClusterSetBinding", func() {
|
||||
clusterSetName := fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
// make sure the managedclustersetbinding status is correct
|
||||
gomega.Eventually(func() error {
|
||||
binding, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
binding, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !meta.IsStatusConditionFalse(binding.Status.Conditions, clusterv1beta1.ClusterSetBindingBoundType) {
|
||||
if !meta.IsStatusConditionFalse(binding.Status.Conditions, clusterv1beta2.ClusterSetBindingBoundType) {
|
||||
return fmt.Errorf("binding %s/%s condition should be false", namespace, clusterSetName)
|
||||
}
|
||||
return nil
|
||||
}, 60*time.Second, 1*time.Second).Should(gomega.Succeed())
|
||||
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: clusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
// make sure the managedclustersetbinding status is correct
|
||||
gomega.Eventually(func() error {
|
||||
binding, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
binding, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !meta.IsStatusConditionTrue(binding.Status.Conditions, clusterv1beta1.ClusterSetBindingBoundType) {
|
||||
if !meta.IsStatusConditionTrue(binding.Status.Conditions, clusterv1beta2.ClusterSetBindingBoundType) {
|
||||
return fmt.Errorf("binding %s/%s condition should be true", namespace, clusterSetName)
|
||||
}
|
||||
return nil
|
||||
}, 60*time.Second, 1*time.Second).Should(gomega.Succeed())
|
||||
|
||||
err = clusterClient.ClusterV1beta1().ManagedClusterSets().Delete(context.TODO(), clusterSetName, metav1.DeleteOptions{})
|
||||
err = clusterClient.ClusterV1beta2().ManagedClusterSets().Delete(context.TODO(), clusterSetName, metav1.DeleteOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
// make sure the managedclustersetbinding status is correct
|
||||
gomega.Eventually(func() error {
|
||||
binding, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
binding, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !meta.IsStatusConditionFalse(binding.Status.Conditions, clusterv1beta1.ClusterSetBindingBoundType) {
|
||||
if !meta.IsStatusConditionFalse(binding.Status.Conditions, clusterv1beta2.ClusterSetBindingBoundType) {
|
||||
return fmt.Errorf("binding %s/%s condition should be false", namespace, clusterSetName)
|
||||
}
|
||||
return nil
|
||||
|
||||
+36
-34
@@ -11,7 +11,6 @@ import (
|
||||
|
||||
clusterv1client "open-cluster-management.io/api/client/cluster/clientset/versioned"
|
||||
clusterv1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
@@ -86,7 +85,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta1.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta2.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
|
||||
gomega.Expect(len(managedCluster.Labels)).To(gomega.Equal(len(oriManagedCluster.Labels) + 1))
|
||||
gomega.Expect(u.deleteManageClusterAndRelatedNamespace(clusterName)).ToNot(gomega.HaveOccurred())
|
||||
@@ -105,7 +104,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta1.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta2.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
|
||||
gomega.Expect(len(managedCluster.Labels)).To(gomega.Equal(len(oriManagedCluster.Labels) + 1))
|
||||
gomega.Expect(u.deleteManageClusterAndRelatedNamespace(clusterName)).ToNot(gomega.HaveOccurred())
|
||||
@@ -116,7 +115,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
oriManagedCluster := newManagedCluster(clusterName, false, validURL)
|
||||
|
||||
oriManagedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: "",
|
||||
clusterv1beta2.ClusterSetLabel: "",
|
||||
}
|
||||
_, err := clusterClient.ClusterV1().ManagedClusters().Create(context.TODO(), oriManagedCluster, metav1.CreateOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
@@ -124,7 +123,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta1.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta2.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
})
|
||||
ginkgo.It("Should have the timeAdded for taints", func() {
|
||||
clusterName := fmt.Sprintf("webhook-spoke-%s", rand.String(6))
|
||||
@@ -280,6 +279,9 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
managedCluster := newManagedCluster(clusterName, true, validURL)
|
||||
managedCluster, err = clusterClient.ClusterV1().ManagedClusters().Create(context.TODO(), managedCluster, metav1.CreateOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
managedCluster, err = clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), managedCluster.Name, metav1.GetOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
updatedManagedCluster := managedCluster.DeepCopy()
|
||||
updatedManagedCluster.Labels = map[string]string{
|
||||
"k": "v",
|
||||
@@ -294,13 +296,13 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
clusterSetName := fmt.Sprintf("webhook-spoke-%s", rand.String(6))
|
||||
ginkgo.By(fmt.Sprintf("create a managed cluster set %q", clusterSetName))
|
||||
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: clusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
sa := fmt.Sprintf("webhook-sa-%s", rand.String(6))
|
||||
@@ -324,7 +326,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
|
||||
managedCluster := newManagedCluster(clusterName, false, validURL)
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: clusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: clusterSetName,
|
||||
}
|
||||
_, err = authorizedClient.ClusterV1().ManagedClusters().Create(context.TODO(), managedCluster, metav1.CreateOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
@@ -337,13 +339,13 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
clusterSetName := fmt.Sprintf("webhook-spoke-%s", rand.String(6))
|
||||
ginkgo.By(fmt.Sprintf("create a managed cluster set %q", clusterSetName))
|
||||
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: clusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
sa := fmt.Sprintf("webhook-sa-%s", rand.String(6))
|
||||
@@ -364,7 +366,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
|
||||
managedCluster := newManagedCluster(clusterName, false, validURL)
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: clusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: clusterSetName,
|
||||
}
|
||||
_, err = unauthorizedClient.ClusterV1().ManagedClusters().Create(context.TODO(), managedCluster, metav1.CreateOptions{})
|
||||
gomega.Expect(err).To(gomega.HaveOccurred())
|
||||
@@ -412,7 +414,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
delete(managedCluster.Labels, clusterv1beta1.ClusterSetLabel)
|
||||
delete(managedCluster.Labels, clusterv1beta2.ClusterSetLabel)
|
||||
_, err = clusterClient.ClusterV1().ManagedClusters().Update(context.TODO(), managedCluster, metav1.UpdateOptions{})
|
||||
return err
|
||||
})
|
||||
@@ -420,7 +422,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta1.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta2.ClusterSetLabel]).To(gomega.Equal(string(defaultClusterSetName)))
|
||||
})
|
||||
|
||||
ginkgo.It("Should not update the other ClusterSet Label", func() {
|
||||
@@ -429,7 +431,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
managedCluster.Labels[clusterv1beta1.ClusterSetLabel] = "s1"
|
||||
managedCluster.Labels[clusterv1beta2.ClusterSetLabel] = "s1"
|
||||
|
||||
_, err = clusterClient.ClusterV1().ManagedClusters().Update(context.TODO(), managedCluster, metav1.UpdateOptions{})
|
||||
return err
|
||||
@@ -438,7 +440,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
|
||||
managedCluster, err := clusterClient.ClusterV1().ManagedClusters().Get(context.TODO(), clusterName, metav1.GetOptions{})
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta1.ClusterSetLabel]).To(gomega.Equal("s1"))
|
||||
gomega.Expect(managedCluster.Labels[clusterv1beta2.ClusterSetLabel]).To(gomega.Equal("s1"))
|
||||
})
|
||||
|
||||
ginkgo.It("Should respond bad request when updating a managed cluster with invalid external server URLs", func() {
|
||||
@@ -489,13 +491,13 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
clusterSetName := fmt.Sprintf("webhook-spoke-%s", rand.String(6))
|
||||
ginkgo.By(fmt.Sprintf("create a managed cluster set %q", clusterSetName))
|
||||
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: clusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
sa := fmt.Sprintf("webhook-sa-%s", rand.String(6))
|
||||
@@ -520,7 +522,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: clusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: clusterSetName,
|
||||
}
|
||||
_, err = authorizedClient.ClusterV1().ManagedClusters().Update(context.TODO(), managedCluster, metav1.UpdateOptions{})
|
||||
return err
|
||||
@@ -534,13 +536,13 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
clusterSetName := fmt.Sprintf("webhook-spoke-%s", rand.String(6))
|
||||
ginkgo.By(fmt.Sprintf("create a managed cluster set %q", clusterSetName))
|
||||
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: clusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.TODO(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
sa := fmt.Sprintf("webhook-sa-%s", rand.String(6))
|
||||
@@ -568,7 +570,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: clusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: clusterSetName,
|
||||
}
|
||||
_, err = unauthorizedClient.ClusterV1().ManagedClusters().Update(context.TODO(), managedCluster, metav1.UpdateOptions{})
|
||||
return err
|
||||
@@ -601,11 +603,11 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
gomega.Eventually(func() error {
|
||||
clusterSetName := fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Delete(context.TODO(), clusterSetName, metav1.DeleteOptions{})
|
||||
return clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Delete(context.TODO(), clusterSetName, metav1.DeleteOptions{})
|
||||
}, 60*time.Second, 1*time.Second).Should(gomega.Succeed())
|
||||
})
|
||||
|
||||
@@ -622,7 +624,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
clusterSetName := fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
clusterSetBindingName := fmt.Sprintf("clustersetbinding-%s", rand.String(6))
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetBindingName, clusterSetName)
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
gomega.Expect(err).To(gomega.HaveOccurred())
|
||||
gomega.Expect(errors.IsBadRequest(err)).Should(gomega.BeTrue())
|
||||
})
|
||||
@@ -647,7 +649,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
_, err = authorizedClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err = authorizedClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
gomega.Expect(cleanupClusterClient(namespace, sa)).ToNot(gomega.HaveOccurred())
|
||||
@@ -669,7 +671,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
gomega.Expect(err).ToNot(gomega.HaveOccurred())
|
||||
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
_, err = unauthorizedClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err = unauthorizedClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
gomega.Expect(err).To(gomega.HaveOccurred())
|
||||
gomega.Expect(errors.IsForbidden(err)).Should(gomega.BeTrue())
|
||||
|
||||
@@ -682,13 +684,13 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
// create a cluster set binding
|
||||
clusterSetName := fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
managedClusterSetBinding, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
managedClusterSetBinding, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
// update the cluster set binding
|
||||
clusterSetName = fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
patch := fmt.Sprintf("{\"spec\": {\"clusterSet\": %q}}", clusterSetName)
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Patch(context.TODO(), managedClusterSetBinding.Name, types.MergePatchType, []byte(patch), metav1.PatchOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Patch(context.TODO(), managedClusterSetBinding.Name, types.MergePatchType, []byte(patch), metav1.PatchOptions{})
|
||||
gomega.Expect(err).To(gomega.HaveOccurred())
|
||||
gomega.Expect(errors.IsBadRequest(err)).Should(gomega.BeTrue())
|
||||
})
|
||||
@@ -697,7 +699,7 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
// create a cluster set binding
|
||||
clusterSetName := fmt.Sprintf("clusterset-%s", rand.String(6))
|
||||
managedClusterSetBinding := newManagedClusterSetBinding(namespace, clusterSetName, clusterSetName)
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Create(context.TODO(), managedClusterSetBinding, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
// create a client without clusterset binding permission
|
||||
@@ -713,12 +715,12 @@ var _ = ginkgo.Describe("Admission webhook", func() {
|
||||
|
||||
// update the cluster set binding by unauthorized user
|
||||
gomega.Eventually(func() error {
|
||||
binding, err := unauthorizedClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
binding, err := unauthorizedClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Get(context.TODO(), clusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
binding.Labels = map[string]string{"owner": "user"}
|
||||
_, err = unauthorizedClient.ClusterV1beta1().ManagedClusterSetBindings(namespace).Update(context.TODO(), binding, metav1.UpdateOptions{})
|
||||
_, err = unauthorizedClient.ClusterV1beta2().ManagedClusterSetBindings(namespace).Update(context.TODO(), binding, metav1.UpdateOptions{})
|
||||
return err
|
||||
}, 60*time.Second, 1*time.Second).Should(gomega.Succeed())
|
||||
})
|
||||
@@ -851,13 +853,13 @@ func newManagedCluster(name string, accepted bool, externalURL string) *clusterv
|
||||
}
|
||||
}
|
||||
|
||||
func newManagedClusterSetBinding(namespace, name string, clusterSet string) *clusterv1beta1.ManagedClusterSetBinding {
|
||||
return &clusterv1beta1.ManagedClusterSetBinding{
|
||||
func newManagedClusterSetBinding(namespace, name string, clusterSet string) *clusterv1beta2.ManagedClusterSetBinding {
|
||||
return &clusterv1beta2.ManagedClusterSetBinding{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Namespace: namespace,
|
||||
Name: name,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetBindingSpec{
|
||||
Spec: clusterv1beta2.ManagedClusterSetBindingSpec{
|
||||
ClusterSet: clusterSet,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ var _ = ginkgo.Describe("DefaultManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("check whether DefaultManagedClusterSet is created")
|
||||
gomega.Eventually(func() error {
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.DefaultManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.DefaultManagedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -34,12 +34,12 @@ var _ = ginkgo.Describe("DefaultManagedClusterSet", func() {
|
||||
ginkgo.It("should recreate DefaultManagedClusterSet successfully after deleted", func() {
|
||||
|
||||
ginkgo.By("delete DefaultManagedClusterSet")
|
||||
err := clusterClient.ClusterV1beta1().ManagedClusterSets().Delete(context.TODO(), setcontroller.DefaultManagedClusterSetName, metav1.DeleteOptions{})
|
||||
err := clusterClient.ClusterV1beta2().ManagedClusterSets().Delete(context.TODO(), setcontroller.DefaultManagedClusterSetName, metav1.DeleteOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "try to delete DefaultManagedClusterSet error")
|
||||
|
||||
ginkgo.By("check whether DefaultManagedClusterSet is recreated")
|
||||
gomega.Eventually(func() error {
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.DefaultManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.DefaultManagedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ var _ = ginkgo.Describe("GlobalManagedClusterSet", func() {
|
||||
ginkgo.It("should create GlobalManagedClusterSet successfully", func() {
|
||||
ginkgo.By("check whether GlobalManagedClusterSet is created")
|
||||
gomega.Eventually(func() error {
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -32,7 +32,7 @@ var _ = ginkgo.Describe("GlobalManagedClusterSet", func() {
|
||||
|
||||
ginkgo.It("should reconcile GlobalManagedClusterSet successfully if it changed", func() {
|
||||
ginkgo.By("check whether GlobalManagedClusterSet is reconciled after changed")
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
updateMcs := mcs.DeepCopy()
|
||||
@@ -41,11 +41,11 @@ var _ = ginkgo.Describe("GlobalManagedClusterSet", func() {
|
||||
"vendor": "openshift",
|
||||
},
|
||||
}
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Update(context.TODO(), updateMcs, metav1.UpdateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Update(context.TODO(), updateMcs, metav1.UpdateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
gomega.Eventually(func() error {
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -58,7 +58,7 @@ var _ = ginkgo.Describe("GlobalManagedClusterSet", func() {
|
||||
|
||||
ginkgo.It("should not change users labels/annotations in GlobalManagedClusterSet", func() {
|
||||
ginkgo.By("check whether GlobalManagedClusterSet labels/annotations reconciled after changed")
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
updateMcs := mcs.DeepCopy()
|
||||
@@ -73,11 +73,11 @@ var _ = ginkgo.Describe("GlobalManagedClusterSet", func() {
|
||||
"vendor": "openshift",
|
||||
},
|
||||
}
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Update(context.TODO(), updateMcs, metav1.UpdateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Update(context.TODO(), updateMcs, metav1.UpdateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
gomega.Eventually(func() error {
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -90,12 +90,12 @@ var _ = ginkgo.Describe("GlobalManagedClusterSet", func() {
|
||||
|
||||
ginkgo.It("should recreate GlobalManagedClusterSet successfully after deleted", func() {
|
||||
ginkgo.By("delete GlobalManagedClusterSet")
|
||||
err := clusterClient.ClusterV1beta1().ManagedClusterSets().Delete(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.DeleteOptions{})
|
||||
err := clusterClient.ClusterV1beta2().ManagedClusterSets().Delete(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.DeleteOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred(), "try to delete GlobalManagedClusterSet error")
|
||||
|
||||
ginkgo.By("check whether GlobalManagedClusterSet is recreated")
|
||||
gomega.Eventually(func() error {
|
||||
mcs, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
mcs, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.TODO(), setcontroller.GlobalManagedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/util/rand"
|
||||
clusterv1 "open-cluster-management.io/api/cluster/v1"
|
||||
clusterv1beta1 "open-cluster-management.io/api/cluster/v1beta1"
|
||||
clusterv1beta2 "open-cluster-management.io/api/cluster/v1beta2"
|
||||
)
|
||||
|
||||
var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
@@ -19,24 +19,24 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
suffix := rand.String(6)
|
||||
ginkgo.By("Create a ManagedClusterSet")
|
||||
managedClusterSetName := fmt.Sprintf("cs1-%s", suffix)
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: managedClusterSetName,
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionTrue {
|
||||
@@ -56,7 +56,7 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: managedClusterName,
|
||||
Labels: map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: managedClusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: managedClusterSetName,
|
||||
},
|
||||
},
|
||||
Spec: clusterv1.ManagedClusterSpec{
|
||||
@@ -69,12 +69,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled again")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
@@ -90,12 +90,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Move the cluster to another ManagedClusterSet and check if the original one is empty again")
|
||||
// create another clusterset
|
||||
managedClusterSet = &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet = &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: fmt.Sprintf("cs2-%s", suffix),
|
||||
},
|
||||
}
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
gomega.Eventually(func() error {
|
||||
@@ -105,7 +105,7 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
return err
|
||||
}
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: managedClusterSet.Name,
|
||||
clusterv1beta2.ClusterSetLabel: managedClusterSet.Name,
|
||||
}
|
||||
_, err := clusterClient.ClusterV1().ManagedClusters().Update(context.Background(), managedCluster, metav1.UpdateOptions{})
|
||||
return err
|
||||
@@ -113,12 +113,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
// check if the new clusterset synced
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSet.Name, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSet.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
@@ -134,12 +134,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
// check if the original clusterset synced
|
||||
gomega.Eventually(func() error {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cond := meta.FindStatusCondition(managedClusterSet.Status.Conditions, clusterv1beta1.ManagedClusterSetConditionEmpty)
|
||||
cond := meta.FindStatusCondition(managedClusterSet.Status.Conditions, clusterv1beta2.ManagedClusterSetConditionEmpty)
|
||||
if cond == nil {
|
||||
return fmt.Errorf("clusterset empty condition is not found")
|
||||
}
|
||||
@@ -160,29 +160,29 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
suffix := rand.String(6)
|
||||
ginkgo.By("Create a ManagedClusterSet")
|
||||
managedClusterSetName := fmt.Sprintf("cs1-%s", suffix)
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: managedClusterSetName,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LegacyClusterSetLabel,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.ExclusiveClusterSetLabel,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionTrue {
|
||||
@@ -202,7 +202,7 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: managedClusterName,
|
||||
Labels: map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: managedClusterSetName,
|
||||
clusterv1beta2.ClusterSetLabel: managedClusterSetName,
|
||||
},
|
||||
},
|
||||
Spec: clusterv1.ManagedClusterSpec{
|
||||
@@ -215,12 +215,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled again")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
@@ -236,12 +236,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Move the cluster to another ManagedClusterSet and check if the original one is empty again")
|
||||
// create another clusterset
|
||||
managedClusterSet = &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet = &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: fmt.Sprintf("cs2-%s", suffix),
|
||||
},
|
||||
}
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
gomega.Eventually(func() error {
|
||||
@@ -251,7 +251,7 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
return err
|
||||
}
|
||||
managedCluster.Labels = map[string]string{
|
||||
clusterv1beta1.ClusterSetLabel: managedClusterSet.Name,
|
||||
clusterv1beta2.ClusterSetLabel: managedClusterSet.Name,
|
||||
}
|
||||
_, err := clusterClient.ClusterV1().ManagedClusters().Update(context.Background(), managedCluster, metav1.UpdateOptions{})
|
||||
return err
|
||||
@@ -259,12 +259,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
// check if the new clusterset synced
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSet.Name, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSet.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
@@ -280,12 +280,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
// check if the original clusterset synced
|
||||
gomega.Eventually(func() error {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cond := meta.FindStatusCondition(managedClusterSet.Status.Conditions, clusterv1beta1.ManagedClusterSetConditionEmpty)
|
||||
cond := meta.FindStatusCondition(managedClusterSet.Status.Conditions, clusterv1beta2.ManagedClusterSetConditionEmpty)
|
||||
if cond == nil {
|
||||
return fmt.Errorf("clusterset empty condition is not found")
|
||||
}
|
||||
@@ -305,13 +305,13 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
suffix := rand.String(6)
|
||||
ginkgo.By("Create a ManagedClusterSet")
|
||||
managedClusterSetName := fmt.Sprintf("cs1-%s", suffix)
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: managedClusterSetName,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
LabelSelector: &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"vendor": "openShift",
|
||||
@@ -321,18 +321,18 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
},
|
||||
}
|
||||
|
||||
_, err := clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err := clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionTrue {
|
||||
@@ -365,12 +365,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled again")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
@@ -386,13 +386,13 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Create a new ManagedClusterSet")
|
||||
newManagedClusterSetName := fmt.Sprintf("cs2-%s", suffix)
|
||||
newManagedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
newManagedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: newManagedClusterSetName,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
LabelSelector: &metav1.LabelSelector{
|
||||
MatchLabels: map[string]string{
|
||||
"region": "apac",
|
||||
@@ -402,7 +402,7 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
},
|
||||
}
|
||||
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), newManagedClusterSet, metav1.CreateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), newManagedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
gomega.Eventually(func() error {
|
||||
@@ -420,12 +420,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
// check if the new clusterset synced
|
||||
gomega.Eventually(func() bool {
|
||||
newManagedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), newManagedClusterSet.Name, metav1.GetOptions{})
|
||||
newManagedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), newManagedClusterSet.Name, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
@@ -441,12 +441,12 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
// check if the original clusterset synced
|
||||
gomega.Eventually(func() error {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
cond := meta.FindStatusCondition(managedClusterSet.Status.Conditions, clusterv1beta1.ManagedClusterSetConditionEmpty)
|
||||
cond := meta.FindStatusCondition(managedClusterSet.Status.Conditions, clusterv1beta2.ManagedClusterSetConditionEmpty)
|
||||
if cond == nil {
|
||||
return fmt.Errorf("clusterset empty condition is not found")
|
||||
}
|
||||
@@ -484,29 +484,29 @@ var _ = ginkgo.Describe("ManagedClusterSet", func() {
|
||||
|
||||
ginkgo.By("Create a ManagedClusterSet")
|
||||
managedClusterSetName := fmt.Sprintf("cs1-%s", suffix)
|
||||
managedClusterSet := &clusterv1beta1.ManagedClusterSet{
|
||||
managedClusterSet := &clusterv1beta2.ManagedClusterSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: managedClusterSetName,
|
||||
},
|
||||
Spec: clusterv1beta1.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta1.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta1.LabelSelector,
|
||||
Spec: clusterv1beta2.ManagedClusterSetSpec{
|
||||
ClusterSelector: clusterv1beta2.ManagedClusterSelector{
|
||||
SelectorType: clusterv1beta2.LabelSelector,
|
||||
LabelSelector: &metav1.LabelSelector{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
_, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
_, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Create(context.Background(), managedClusterSet, metav1.CreateOptions{})
|
||||
gomega.Expect(err).NotTo(gomega.HaveOccurred())
|
||||
|
||||
ginkgo.By("Check if ManagedClusterSet is reconciled")
|
||||
gomega.Eventually(func() bool {
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta1().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
managedClusterSet, err = clusterClient.ClusterV1beta2().ManagedClusterSets().Get(context.Background(), managedClusterSetName, metav1.GetOptions{})
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
for _, condition := range managedClusterSet.Status.Conditions {
|
||||
if condition.Type != clusterv1beta1.ManagedClusterSetConditionEmpty {
|
||||
if condition.Type != clusterv1beta2.ManagedClusterSetConditionEmpty {
|
||||
continue
|
||||
}
|
||||
if condition.Status != metav1.ConditionFalse {
|
||||
|
||||
Reference in New Issue
Block a user