Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c113e49

Browse files
committedMar 12, 2025·
refactored failing registration test cases
Signed-off-by: gnana997 <[email protected]>
1 parent a17230e commit c113e49

File tree

11 files changed

+447
-1
lines changed

11 files changed

+447
-1
lines changed
 

‎pkg/registration/spoke/managedcluster/claim_reconcile.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,14 @@ func (r *claimReconcile) exposeClaims(ctx context.Context, cluster *clusterv1.Ma
6565

6666
propertiesMap := map[string]*aboutv1alpha1.ClusterProperty{}
6767
for _, property := range clusterProperties {
68-
propertiesMap[property.Name] = property
68+
propertiesMap[property.Name] = &aboutv1alpha1.ClusterProperty{
69+
ObjectMeta: metav1.ObjectMeta{
70+
Name: property.Name,
71+
},
72+
Spec: aboutv1alpha1.ClusterPropertySpec{
73+
Value: property.Spec.Value,
74+
},
75+
}
6976
}
7077
// convert claim to properties
7178
for _, clusterClaim := range clusterClaims {

‎pkg/registration/spoke/managedcluster/claim_reconcile_test.go

+76
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ import (
1515
fakekube "k8s.io/client-go/kubernetes/fake"
1616
kubefake "k8s.io/client-go/kubernetes/fake"
1717
clienttesting "k8s.io/client-go/testing"
18+
aboutv1alpha1 "sigs.k8s.io/about-api/pkg/apis/v1alpha1"
19+
aboutclusterfake "sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake"
20+
aboutinformers "sigs.k8s.io/about-api/pkg/generated/informers/externalversions"
1821

1922
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
2023
clusterscheme "open-cluster-management.io/api/client/cluster/clientset/versioned/scheme"
@@ -34,6 +37,7 @@ func TestSync(t *testing.T) {
3437
cases := []struct {
3538
name string
3639
cluster runtime.Object
40+
properties []runtime.Object
3741
claims []runtime.Object
3842
validateActions func(t *testing.T, actions []clienttesting.Action)
3943
expectedErr string
@@ -52,6 +56,16 @@ func TestSync(t *testing.T) {
5256
{
5357
name: "sync a joined managed cluster",
5458
cluster: testinghelpers.NewJoinedManagedCluster(),
59+
properties: []runtime.Object{
60+
&aboutv1alpha1.ClusterProperty{
61+
ObjectMeta: metav1.ObjectMeta{
62+
Name: "name",
63+
},
64+
Spec: aboutv1alpha1.ClusterPropertySpec{
65+
Value: "test",
66+
},
67+
},
68+
},
5569
claims: []runtime.Object{
5670
&clusterv1alpha1.ClusterClaim{
5771
ObjectMeta: metav1.ObjectMeta{
@@ -71,6 +85,10 @@ func TestSync(t *testing.T) {
7185
t.Fatal(err)
7286
}
7387
expected := []clusterv1.ManagedClusterClaim{
88+
{
89+
Name: "name",
90+
Value: "tests",
91+
},
7492
{
7593
Name: "a",
7694
Value: "b",
@@ -97,11 +115,16 @@ func TestSync(t *testing.T) {
97115
}
98116

99117
clusterClient := clusterfake.NewSimpleClientset(objects...)
118+
aboutClusterClient := aboutclusterfake.NewSimpleClientset(objects...)
119+
clusterPropertyInformerFactory := aboutinformers.NewSharedInformerFactory(aboutClusterClient, time.Minute*10)
100120
clusterInformerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, time.Minute*10)
101121
if c.cluster != nil {
102122
if err := clusterInformerFactory.Cluster().V1().ManagedClusters().Informer().GetStore().Add(c.cluster); err != nil {
103123
t.Fatal(err)
104124
}
125+
if err := clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties().Informer().GetStore().Add(c.cluster); err != nil {
126+
t.Fatal(err)
127+
}
105128
}
106129

107130
for _, claim := range c.claims {
@@ -110,6 +133,12 @@ func TestSync(t *testing.T) {
110133
}
111134
}
112135

136+
for _, property := range c.properties {
137+
if err := clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties().Informer().GetStore().Add(property); err != nil {
138+
t.Fatal(err)
139+
}
140+
}
141+
113142
fakeHubClient := fakekube.NewSimpleClientset()
114143
ctx := context.TODO()
115144
hubEventRecorder, err := helpers.NewEventRecorder(ctx,
@@ -123,6 +152,7 @@ func TestSync(t *testing.T) {
123152
clusterInformerFactory.Cluster().V1().ManagedClusters(),
124153
discoveryClient,
125154
clusterInformerFactory.Cluster().V1alpha1().ClusterClaims(),
155+
clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties(),
126156
kubeInformerFactory.Core().V1().Nodes(),
127157
20,
128158
eventstesting.NewTestingEventRecorder(t),
@@ -141,6 +171,7 @@ func TestExposeClaims(t *testing.T) {
141171
cases := []struct {
142172
name string
143173
cluster *clusterv1.ManagedCluster
174+
properties []*aboutv1alpha1.ClusterProperty
144175
claims []*clusterv1alpha1.ClusterClaim
145176
maxCustomClusterClaims int
146177
validateActions func(t *testing.T, actions []clienttesting.Action)
@@ -179,6 +210,39 @@ func TestExposeClaims(t *testing.T) {
179210
}
180211
},
181212
},
213+
{
214+
name: "sync properties into status of the managed cluster",
215+
cluster: testinghelpers.NewJoinedManagedCluster(),
216+
properties: []*aboutv1alpha1.ClusterProperty{
217+
{
218+
ObjectMeta: metav1.ObjectMeta{
219+
Name: "a",
220+
},
221+
Spec: aboutv1alpha1.ClusterPropertySpec{
222+
Value: "b",
223+
},
224+
},
225+
},
226+
validateActions: func(t *testing.T, actions []clienttesting.Action) {
227+
testingcommon.AssertActions(t, actions, "patch")
228+
patch := actions[0].(clienttesting.PatchAction).GetPatch()
229+
cluster := &clusterv1.ManagedCluster{}
230+
err := json.Unmarshal(patch, cluster)
231+
if err != nil {
232+
t.Fatal(err)
233+
}
234+
expected := []clusterv1.ManagedClusterClaim{
235+
{
236+
Name: "a",
237+
Value: "b",
238+
},
239+
}
240+
actual := cluster.Status.ClusterClaims
241+
if !reflect.DeepEqual(actual, expected) {
242+
t.Errorf("expected cluster claim %v but got: %v", expected, actual)
243+
}
244+
},
245+
},
182246
{
183247
name: "truncate custom cluster claims",
184248
cluster: testinghelpers.NewJoinedManagedCluster(),
@@ -324,11 +388,16 @@ func TestExposeClaims(t *testing.T) {
324388
}
325389

326390
clusterClient := clusterfake.NewSimpleClientset(objects...)
391+
aboutClusterClient := aboutclusterfake.NewSimpleClientset(objects...)
392+
clusterPropertyInformerFactory := aboutinformers.NewSharedInformerFactory(aboutClusterClient, time.Minute*10)
327393
clusterInformerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, time.Minute*10)
328394
if c.cluster != nil {
329395
if err := clusterInformerFactory.Cluster().V1().ManagedClusters().Informer().GetStore().Add(c.cluster); err != nil {
330396
t.Fatal(err)
331397
}
398+
if err := clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties().Informer().GetStore().Add(c.cluster); err != nil {
399+
t.Fatal(err)
400+
}
332401
}
333402

334403
for _, claim := range c.claims {
@@ -337,6 +406,12 @@ func TestExposeClaims(t *testing.T) {
337406
}
338407
}
339408

409+
for _, property := range c.properties {
410+
if err := clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties().Informer().GetStore().Add(property); err != nil {
411+
t.Fatal(err)
412+
}
413+
}
414+
340415
if c.maxCustomClusterClaims == 0 {
341416
c.maxCustomClusterClaims = 20
342417
}
@@ -354,6 +429,7 @@ func TestExposeClaims(t *testing.T) {
354429
clusterInformerFactory.Cluster().V1().ManagedClusters(),
355430
discoveryClient,
356431
clusterInformerFactory.Cluster().V1alpha1().ClusterClaims(),
432+
clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties(),
357433
kubeInformerFactory.Core().V1().Nodes(),
358434
c.maxCustomClusterClaims,
359435
eventstesting.NewTestingEventRecorder(t),

‎pkg/registration/spoke/managedcluster/joining_controller_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
fakekube "k8s.io/client-go/kubernetes/fake"
1414
kubefake "k8s.io/client-go/kubernetes/fake"
1515
clienttesting "k8s.io/client-go/testing"
16+
aboutclusterfake "sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake"
17+
aboutinformers "sigs.k8s.io/about-api/pkg/generated/informers/externalversions"
1618

1719
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
1820
clusterscheme "open-cluster-management.io/api/client/cluster/clientset/versioned/scheme"
@@ -73,12 +75,18 @@ func TestSyncManagedCluster(t *testing.T) {
7375
for _, c := range cases {
7476
t.Run(c.name, func(t *testing.T) {
7577
clusterClient := clusterfake.NewSimpleClientset(c.startingObjects...)
78+
aboutClusterClient := aboutclusterfake.NewSimpleClientset(c.startingObjects...)
79+
clusterPropertyInformerFactory := aboutinformers.NewSharedInformerFactory(aboutClusterClient, time.Minute*10)
7680
clusterInformerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, time.Minute*10)
81+
clusterPropertyStore := clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties().Informer().GetStore()
7782
clusterStore := clusterInformerFactory.Cluster().V1().ManagedClusters().Informer().GetStore()
7883
for _, cluster := range c.startingObjects {
7984
if err := clusterStore.Add(cluster); err != nil {
8085
t.Fatal(err)
8186
}
87+
if err := clusterPropertyStore.Add(cluster); err != nil {
88+
t.Fatal(err)
89+
}
8290
}
8391

8492
fakeHubClient := fakekube.NewSimpleClientset()
@@ -94,6 +102,7 @@ func TestSyncManagedCluster(t *testing.T) {
94102
clusterInformerFactory.Cluster().V1().ManagedClusters(),
95103
discoveryClient,
96104
clusterInformerFactory.Cluster().V1alpha1().ClusterClaims(),
105+
clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties(),
97106
kubeInformerFactory.Core().V1().Nodes(),
98107
20,
99108
eventstesting.NewTestingEventRecorder(t),

‎pkg/registration/spoke/managedcluster/resource_reconcile_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ import (
1919
kubefake "k8s.io/client-go/kubernetes/fake"
2020
"k8s.io/client-go/rest"
2121
clienttesting "k8s.io/client-go/testing"
22+
aboutclusterfake "sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake"
23+
aboutinformers "sigs.k8s.io/about-api/pkg/generated/informers/externalversions"
2224

2325
clusterfake "open-cluster-management.io/api/client/cluster/clientset/versioned/fake"
2426
clusterscheme "open-cluster-management.io/api/client/cluster/clientset/versioned/scheme"
@@ -294,12 +296,18 @@ func TestHealthCheck(t *testing.T) {
294296
for _, c := range cases {
295297
t.Run(c.name, func(t *testing.T) {
296298
clusterClient := clusterfake.NewSimpleClientset(c.clusters...)
299+
aboutClusterClient := aboutclusterfake.NewSimpleClientset(c.clusters...)
300+
clusterPropertyInformerFactory := aboutinformers.NewSharedInformerFactory(aboutClusterClient, time.Minute*10)
297301
clusterInformerFactory := clusterinformers.NewSharedInformerFactory(clusterClient, time.Minute*10)
302+
clusterPropertyStore := clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties().Informer().GetStore()
298303
clusterStore := clusterInformerFactory.Cluster().V1().ManagedClusters().Informer().GetStore()
299304
for _, cluster := range c.clusters {
300305
if err := clusterStore.Add(cluster); err != nil {
301306
t.Fatal(err)
302307
}
308+
if err := clusterPropertyStore.Add(cluster); err != nil {
309+
t.Fatal(err)
310+
}
303311
}
304312

305313
kubeClient := kubefake.NewSimpleClientset(c.nodes...)
@@ -328,6 +336,7 @@ func TestHealthCheck(t *testing.T) {
328336
clusterInformerFactory.Cluster().V1().ManagedClusters(),
329337
discoveryClient,
330338
clusterInformerFactory.Cluster().V1alpha1().ClusterClaims(),
339+
clusterPropertyInformerFactory.About().V1alpha1().ClusterProperties(),
331340
kubeInformerFactory.Core().V1().Nodes(),
332341
20,
333342
eventstesting.NewTestingEventRecorder(t),

‎vendor/modules.txt

+2
Original file line numberDiff line numberDiff line change
@@ -1819,8 +1819,10 @@ open-cluster-management.io/sdk-go/pkg/patcher
18191819
## explicit; go 1.22
18201820
sigs.k8s.io/about-api/pkg/apis/v1alpha1
18211821
sigs.k8s.io/about-api/pkg/generated/clientset/versioned
1822+
sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake
18221823
sigs.k8s.io/about-api/pkg/generated/clientset/versioned/scheme
18231824
sigs.k8s.io/about-api/pkg/generated/clientset/versioned/typed/apis/v1alpha1
1825+
sigs.k8s.io/about-api/pkg/generated/clientset/versioned/typed/apis/v1alpha1/fake
18241826
sigs.k8s.io/about-api/pkg/generated/informers/externalversions
18251827
sigs.k8s.io/about-api/pkg/generated/informers/externalversions/apis
18261828
sigs.k8s.io/about-api/pkg/generated/informers/externalversions/apis/v1alpha1

‎vendor/sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake/clientset_generated.go

+85
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎vendor/sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake/doc.go

+20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎vendor/sigs.k8s.io/about-api/pkg/generated/clientset/versioned/fake/register.go

+56
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎vendor/sigs.k8s.io/about-api/pkg/generated/clientset/versioned/typed/apis/v1alpha1/fake/doc.go

+20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎vendor/sigs.k8s.io/about-api/pkg/generated/clientset/versioned/typed/apis/v1alpha1/fake/fake_apis_client.go

+40
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎vendor/sigs.k8s.io/about-api/pkg/generated/clientset/versioned/typed/apis/v1alpha1/fake/fake_clusterproperty.go

+122
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
Please sign in to comment.