@@ -416,15 +416,15 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
416416 }
417417
418418 if strings .HasPrefix (app .Annotations [common .WriteBackTargetAnnotation ], common .HelmPrefix ) {
419- images := GetImagesFromApplication (app )
419+ images := GetImagesFromImageList (app )
420420
421421 for _ , c := range images {
422- helmAnnotationParamName , helmAnnotationParamVersion := getHelmParamNamesFromAnnotation (app .Annotations , c .ImageName )
422+ helmAnnotationParamName , helmAnnotationParamVersion := getHelmParamNamesFromAnnotation (app .Annotations , c .ImageAlias )
423423 if helmAnnotationParamName == "" {
424- return nil , fmt .Errorf ("could not find an image-name annotation for image %s" , c .ImageName )
424+ return nil , fmt .Errorf ("could not find an image-name annotation for image %s" , c .ImageAlias )
425425 }
426426 if helmAnnotationParamVersion == "" {
427- return nil , fmt .Errorf ("could not find an image-tag annotation for image %s" , c .ImageName )
427+ return nil , fmt .Errorf ("could not find an image-tag annotation for image %s" , c .ImageAlias )
428428 }
429429
430430 helmParamName := getHelmParam (appSource .Helm .Parameters , helmAnnotationParamName )
@@ -437,11 +437,16 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
437437 return nil , fmt .Errorf ("%s parameter not found" , helmAnnotationParamVersion )
438438 }
439439
440- // Build string with YAML format to merge with originalData values
441- helmValues := fmt .Sprintf ("%s: %s\n %s: %s" , helmAnnotationParamName , helmParamName .Value , helmAnnotationParamVersion , helmParamVersion .Value )
442-
443440 var mergedParams * conflate.Conflate
444- mergedParams , err = conflate .FromData (originalData , []byte (helmValues ))
441+ mergedParams , err = conflate .FromData (originalData )
442+ if err != nil {
443+ return nil , err
444+ }
445+
446+ err = mergedParams .AddGo (
447+ dotToObj (helmAnnotationParamName , helmParamName .Value ),
448+ dotToObj (helmAnnotationParamVersion , helmParamVersion .Value ),
449+ )
445450 if err != nil {
446451 return nil , err
447452 }
@@ -481,6 +486,24 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
481486 return override , nil
482487}
483488
489+ func dotToObj (key string , value string ) map [string ]interface {} {
490+ keys := strings .Split (key , "." )
491+ obj := make (map [string ]interface {})
492+
493+ current := obj
494+ for i , k := range keys {
495+ if i == len (keys )- 1 {
496+ current [k ] = value
497+ } else {
498+ currentMap := make (map [string ]interface {})
499+ current [k ] = currentMap
500+ current = currentMap
501+ }
502+ }
503+
504+ return obj
505+ }
506+
484507func mergeHelmOverride (t * helmOverride , o * helmOverride ) {
485508 for _ , param := range o .Helm .Parameters {
486509 idx := slices .IndexFunc (t .Helm .Parameters , func (tp v1alpha1.HelmParameter ) bool { return tp .Name == param .Name })
0 commit comments