Skip to content

Commit fa46965

Browse files
Fix values merging logic by prioritizing feature values for opscenter-features if available
Fix values merging logic by prioritizing feature values for opscenter-features if available
1 parent 7b801b1 commit fa46965

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

pkg/controller/managedclustersetprofile_controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ func (r *ManagedClusterSetProfileReconciler) Reconcile(ctx context.Context, req
123123
if len(profileBindingList.Items) > 0 {
124124
profileBinding.Name = profileBindingList.Items[0].Name
125125
profileBinding.Spec.OpscenterFeaturesVersion = profileBindingList.Items[0].Spec.OpscenterFeaturesVersion
126+
profileBinding.Spec.Features = profileBindingList.Items[0].Spec.Features
126127
}
127128

128129
_, err = cu.CreateOrPatch(context.Background(), r.Client, profileBinding, func(obj client.Object, createOp bool) client.Object {

pkg/feature_installer/enable_featureset.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func enableFeatureSet(ctx context.Context, kc client.Client, featureSet string,
153153
}
154154

155155
var overrideValues map[string]interface{}
156-
if overrideValues, err = InstallOpscenterFeaturesOnFakeServer(fakeServer, profile, &profileBinding.Spec.ClusterMetadata, nil); err != nil {
156+
if overrideValues, err = InstallOpscenterFeaturesOnFakeServer(fakeServer, profile, profileBinding, &profileBinding.Spec.ClusterMetadata, nil); err != nil {
157157
return err
158158
}
159159

@@ -183,7 +183,16 @@ func enableFeatureSet(ctx context.Context, kc client.Client, featureSet string,
183183
return err
184184
}
185185

186-
mergedValues := values.MergeMaps(defaultValues, overrideValues)
186+
var mergedValues map[string]interface{}
187+
if profileBinding.Spec.Features != nil && profileBinding.Spec.Features[hub.ChartOpscenterFeatures].Values != nil {
188+
err := json.Unmarshal(profileBinding.Spec.Features[hub.ChartOpscenterFeatures].Values.Raw, &mergedValues)
189+
if err != nil {
190+
return err
191+
}
192+
} else {
193+
mergedValues = values.MergeMaps(defaultValues, overrideValues)
194+
}
195+
187196
if err = CreateHelmRelease("opscenter-features", "opscenter-core", hub.BootstrapHelmRepositoryNamespace(), profile, featureObj, fakeServer, mergedValues); err != nil {
188197
return err
189198
}

pkg/feature_installer/opscenter_features.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import (
3535
releasesapi "x-helm.dev/apimachinery/apis/releases/v1alpha1"
3636
)
3737

38-
func InstallOpscenterFeaturesOnFakeServer(fakeServer *FakeServer, profile *profilev1alpha1.ManagedClusterSetProfile, clusterMetadata *kmapi.ClusterInfo, chartRef *releasesapi.ChartSourceRef) (map[string]interface{}, error) {
38+
func InstallOpscenterFeaturesOnFakeServer(fakeServer *FakeServer, profile *profilev1alpha1.ManagedClusterSetProfile, profileBinding *profilev1alpha1.ManagedClusterProfileBinding, clusterMetadata *kmapi.ClusterInfo, chartRef *releasesapi.ChartSourceRef) (map[string]interface{}, error) {
3939
overrides := make(map[string]interface{})
4040
if profile.Spec.Features["opscenter-features"].Chart.SourceRef.Name != "" {
4141
chart := profile.Spec.Features["opscenter-features"].Chart
@@ -66,6 +66,10 @@ func InstallOpscenterFeaturesOnFakeServer(fakeServer *FakeServer, profile *profi
6666
return nil, err
6767
}
6868

69+
if profileBinding != nil && profileBinding.Spec.Features != nil && profileBinding.Spec.Features["opscenter-features"].Values != nil {
70+
overrideValues = profileBinding.Spec.Features["opscenter-features"].Values.Raw
71+
}
72+
6973
if err := InstallOpscenterFeatures(overrideValues, fakeServer, chartRef); err != nil {
7074
return nil, err
7175
}

0 commit comments

Comments
 (0)