@@ -265,6 +265,44 @@ func TestDefaultingShouldBeSkippedForAManagementCluster(t *testing.T) {
265265 g .Expect (clusterConfig .Addons .Registry ).To (BeNil ())
266266}
267267
268+ func TestDefaultingShouldBeSkippedWhenManagementClusterHasNoTopology (t * testing.T ) {
269+ g := NewWithT (t )
270+
271+ // Create a non-ClusterClass management cluster.
272+ managementCluster := & clusterv1.Cluster {
273+ ObjectMeta : metav1.ObjectMeta {
274+ GenerateName : "test-mgmt-cluster-" ,
275+ Namespace : metav1 .NamespaceDefault ,
276+ },
277+ Spec : clusterv1.ClusterSpec {
278+ // No Topology field - simulates a non-ClusterClass management cluster
279+ },
280+ }
281+ g .Expect (env .Client .Create (ctx , managementCluster )).To (Succeed ())
282+ t .Cleanup (func () {
283+ g .Expect (env .Client .Delete (ctx , managementCluster )).To (Succeed ())
284+ })
285+
286+ // Create a workload cluster with topology.
287+ workloadCluster := createTestCluster (
288+ t ,
289+ nil ,
290+ & carenv1.DockerClusterConfigSpec {
291+ Addons : & carenv1.DockerAddons {
292+ GenericAddons : carenv1.GenericAddons {
293+ CNI : & carenv1.CNI {},
294+ },
295+ },
296+ },
297+ )
298+
299+ // Validate that the registry addon is not automatically enabled because
300+ // the management cluster has no topology (non-ClusterClass).
301+ clusterConfig , err := variables .UnmarshalClusterConfigVariable (workloadCluster .Spec .Topology .Variables )
302+ g .Expect (err ).ToNot (HaveOccurred ())
303+ g .Expect (clusterConfig .Addons .Registry ).To (BeNil ())
304+ }
305+
268306func createTestManagementCluster (
269307 t * testing.T ,
270308 clusterConfigSpec * carenv1.DockerClusterConfigSpec ,
0 commit comments