@@ -393,25 +393,41 @@ func removeUnspecifiedNodePoolsOverrides(nodePools []interface{}, kubernetesClus
393
393
tfNodePoolOverrides := tfNodePoolSpec [OverridesKey ]
394
394
395
395
if tfNodePoolOverrides != nil && tfNodePoolOverrides .(string ) != "" {
396
- tfOverridesVariablesJSON := make (map [string ]interface {})
397
- _ = json .Unmarshal ([]byte (tfNodePoolOverrides .(string )), & tfOverridesVariablesJSON )
396
+ overridesToKeep := excludeUnspecifiedOverrides (tfNodePoolOverrides .(string ), kubernetesClusterModel .Spec .Topology .NodePools [i ].Spec .Overrides )
397
+ kubernetesClusterModel .Spec .Topology .NodePools [i ].Spec .Overrides = overridesToKeep
398
+ }
399
+ }
400
+ }
398
401
399
- overridesToKeep := make ([]* tkccommonmodels.VmwareTanzuManageV1alpha1ManagementClusterProvisionerTanzukubernetesClusterCommonClusterClusterVariable , 0 )
402
+ // removeUnspecifiedControlPlaneOverrides removed node pools overrides returning in the API which do not exist in the Cluster Class schema.
403
+ func removeUnspecifiedControlPlaneOverrides (controlPlane interface {}, kubernetesClusterModel * tanzukubernetesclustermodels.VmwareTanzuManageV1alpha1ManagementClusterProvisionerTanzukubernetesClusterTanzuKubernetesCluster ) {
404
+ tfControlPlaneOverrides := controlPlane .(map [string ]interface {})[OverridesKey ]
400
405
401
- for _ , modelOverride := range kubernetesClusterModel .Spec .Topology .NodePools [i ].Spec .Overrides {
402
- varKey := modelOverride .Name
406
+ if tfControlPlaneOverrides != nil && tfControlPlaneOverrides .(string ) != "" {
407
+ overridesToKeep := excludeUnspecifiedOverrides (tfControlPlaneOverrides .(string ), kubernetesClusterModel .Spec .Topology .ControlPlane .Overrides )
408
+ kubernetesClusterModel .Spec .Topology .ControlPlane .Overrides = overridesToKeep
409
+ }
410
+ }
403
411
404
- if tfOverridesVariableValue , exist := tfOverridesVariablesJSON [varKey ]; exist {
405
- // This is necessary because some inner values have defaults and are being returned even when not filled
406
- modifiedModelVariableValue := modifyModelVariable (tfOverridesVariableValue , modelOverride .Value )
407
- modelOverride .Value = modifiedModelVariableValue
408
- overridesToKeep = append (overridesToKeep , modelOverride )
409
- }
410
- }
412
+ // excludeUnspecifiedOverrides removed overrides returning in the API which do not exist in the Cluster Class schema.
413
+ func excludeUnspecifiedOverrides (overridesResource string , overrides []* tkccommonmodels.VmwareTanzuManageV1alpha1ManagementClusterProvisionerTanzukubernetesClusterCommonClusterClusterVariable ) []* tkccommonmodels.VmwareTanzuManageV1alpha1ManagementClusterProvisionerTanzukubernetesClusterCommonClusterClusterVariable {
414
+ tfOverridesVariablesJSON := make (map [string ]interface {})
415
+ _ = json .Unmarshal ([]byte (overridesResource ), & tfOverridesVariablesJSON )
411
416
412
- kubernetesClusterModel .Spec .Topology .NodePools [i ].Spec .Overrides = overridesToKeep
417
+ overridesToKeep := make ([]* tkccommonmodels.VmwareTanzuManageV1alpha1ManagementClusterProvisionerTanzukubernetesClusterCommonClusterClusterVariable , 0 )
418
+
419
+ for _ , modelOverride := range overrides {
420
+ varKey := modelOverride .Name
421
+
422
+ if tfOverridesVariableValue , exist := tfOverridesVariablesJSON [varKey ]; exist {
423
+ // This is necessary because some inner values have defaults and are being returned even when not filled
424
+ modifiedModelVariableValue := modifyModelVariable (tfOverridesVariableValue , modelOverride .Value )
425
+ modelOverride .Value = modifiedModelVariableValue
426
+ overridesToKeep = append (overridesToKeep , modelOverride )
413
427
}
414
428
}
429
+
430
+ return overridesToKeep
415
431
}
416
432
417
433
// modifyModelVariable helps when certain variables do no return from the API or in a case where some values are returning
0 commit comments