@@ -416,15 +416,15 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
416
416
}
417
417
418
418
if strings .HasPrefix (app .Annotations [common .WriteBackTargetAnnotation ], common .HelmPrefix ) {
419
- images := GetImagesFromApplication (app )
419
+ images := GetImagesFromImageList (app )
420
420
421
421
for _ , c := range images {
422
- helmAnnotationParamName , helmAnnotationParamVersion := getHelmParamNamesFromAnnotation (app .Annotations , c .ImageName )
422
+ helmAnnotationParamName , helmAnnotationParamVersion := getHelmParamNamesFromAnnotation (app .Annotations , c .ImageAlias )
423
423
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 )
425
425
}
426
426
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 )
428
428
}
429
429
430
430
helmParamName := getHelmParam (appSource .Helm .Parameters , helmAnnotationParamName )
@@ -437,11 +437,16 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
437
437
return nil , fmt .Errorf ("%s parameter not found" , helmAnnotationParamVersion )
438
438
}
439
439
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
-
443
440
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
+ )
445
450
if err != nil {
446
451
return nil , err
447
452
}
@@ -481,6 +486,24 @@ func marshalParamsOverride(app *v1alpha1.Application, originalData []byte) ([]by
481
486
return override , nil
482
487
}
483
488
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
+
484
507
func mergeHelmOverride (t * helmOverride , o * helmOverride ) {
485
508
for _ , param := range o .Helm .Parameters {
486
509
idx := slices .IndexFunc (t .Helm .Parameters , func (tp v1alpha1.HelmParameter ) bool { return tp .Name == param .Name })
0 commit comments