File tree 2 files changed +29
-0
lines changed
pkg/controllers/namespacesync
2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -150,6 +150,12 @@ func (r *Reconciler) listSourceClusterClasses(
150
150
[]clusterv1.ClusterClass ,
151
151
error ,
152
152
) {
153
+ // Handle the empty string explicitly, because listing resources with an empty
154
+ // string namespace returns resources in all namespaces.
155
+ if r .SourceClusterClassNamespace == "" {
156
+ return []clusterv1.ClusterClass {}, nil
157
+ }
158
+
153
159
ccl := & clusterv1.ClusterClassList {}
154
160
err := r .Client .List (ctx , ccl , client .InNamespace (r .SourceClusterClassNamespace ))
155
161
if err != nil {
Original file line number Diff line number Diff line change @@ -73,6 +73,29 @@ func TestReconcileNewClusterClass(t *testing.T) {
73
73
}
74
74
}
75
75
76
+ func TestSourceClusterClassNamespaceEmpty (t * testing.T ) {
77
+ g := NewWithT (t )
78
+
79
+ _ , cleanup , err := createUniqueClusterClassAndTemplates (
80
+ sourceClusterClassNamespace ,
81
+ )
82
+ g .Expect (err ).ToNot (HaveOccurred ())
83
+ defer func () {
84
+ g .Expect (cleanup ()).To (Succeed ())
85
+ }()
86
+
87
+ // This test initializes its own reconciler, instead of using the one created
88
+ // in suite_test.go, in order to configure the source namespace.
89
+ r := Reconciler {
90
+ Client : env .Client ,
91
+ SourceClusterClassNamespace : "" ,
92
+ }
93
+
94
+ ns , err := r .listSourceClusterClasses (ctx )
95
+ g .Expect (err ).ToNot (HaveOccurred ())
96
+ g .Expect (ns ).To (BeEmpty ())
97
+ }
98
+
76
99
func verifyClusterClassAndTemplates (
77
100
cli client.Reader ,
78
101
name ,
You can’t perform that action at this time.
0 commit comments