@@ -23,7 +23,8 @@ import (
23
23
"github.com/werf/3p-helm/pkg/cli/values"
24
24
"github.com/werf/3p-helm/pkg/downloader"
25
25
"github.com/werf/3p-helm/pkg/getter"
26
- "github.com/werf/3p-helm/pkg/werf/chartextender"
26
+ "github.com/werf/3p-helm/pkg/werf/file"
27
+ "github.com/werf/3p-helm/pkg/werf/helmopts"
27
28
"github.com/werf/3p-helm/pkg/werf/secrets"
28
29
"github.com/werf/3p-helm/pkg/werf/secrets/runtimedata"
29
30
"github.com/werf/common-go/pkg/secrets_manager"
@@ -331,7 +332,7 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
331
332
return err
332
333
}
333
334
334
- loader .ChartFileReader = giterminismManager .FileReader ()
335
+ file .ChartFileReader = giterminismManager .FileReader ()
335
336
336
337
headHash , err := giterminismManager .LocalGitRepo ().HeadCommitHash (ctx )
337
338
if err != nil {
@@ -343,7 +344,7 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
343
344
return fmt .Errorf ("getting HEAD commit time failed: %w" , err )
344
345
}
345
346
346
- chartutil . ServiceValues , err = helpers .GetServiceValues (ctx , werfConfig .Meta .Project , imagesRepo , imagesInfoGetters , helpers.ServiceValuesOptions {
347
+ serviceValues , err : = helpers .GetServiceValues (ctx , werfConfig .Meta .Project , imagesRepo , imagesInfoGetters , helpers.ServiceValuesOptions {
347
348
Env : * commonCmdData .Environment ,
348
349
CommitHash : headHash ,
349
350
CommitDate : headTime ,
@@ -354,17 +355,6 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
354
355
355
356
helm_v3 .Settings .Debug = * commonCmdData .LogDebug
356
357
357
- loader .WithoutDefaultSecretValues = * commonCmdData .DisableDefaultSecretValues
358
- loader .WithoutDefaultValues = * commonCmdData .DisableDefaultValues
359
- secrets .CoalesceTablesFunc = chartutil .CoalesceTables
360
- secrets .SecretsWorkingDir = giterminismManager .ProjectDir ()
361
- secrets_manager .DisableSecretsDecryption = * commonCmdData .IgnoreSecretKey
362
-
363
- chartextender .DefaultChartAPIVersion = chart .APIVersionV2
364
- chartextender .DefaultChartName = werfConfig .Meta .Project
365
- chartextender .DefaultChartVersion = "1.0.0"
366
- chartextender .ChartAppVersion = common .GetHelmChartConfigAppVersion (werfConfig )
367
-
368
358
// FIXME(1.3): compatibility mode with older 1.2 versions, which do not require WERF_SECRET_KEY in the 'werf bundle publish' command
369
359
if err := secrets_manager .Manager .AllowMissedSecretKeyMode (giterminismManager .ProjectDir ()); err != nil {
370
360
return err
@@ -379,23 +369,35 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
379
369
bundleTmpDir := filepath .Join (werf .GetServiceDir (), "tmp" , "bundles" , uuid .NewString ())
380
370
defer os .RemoveAll (bundleTmpDir )
381
371
382
- downloader := & downloader.Manager {
383
- Out : logboek .Context (ctx ).OutStream (),
384
- ChartPath : bundleTmpDir ,
385
- AllowMissingRepos : true ,
386
- Getters : getter .All (helm_v3 .Settings ),
387
- RegistryClient : helmRegistryClient ,
388
- RepositoryConfig : helm_v3 .Settings .RepositoryConfig ,
389
- RepositoryCache : helm_v3 .Settings .RepositoryCache ,
390
- Debug : helm_v3 .Settings .Debug ,
372
+ opts := helmopts.HelmOptions {
373
+ ChartLoadOpts : helmopts.ChartLoadOptions {
374
+ ChartAppVersion : common .GetHelmChartConfigAppVersion (werfConfig ),
375
+ ChartDir : bundleTmpDir ,
376
+ DefaultChartAPIVersion : chart .APIVersionV2 ,
377
+ DefaultChartName : werfConfig .Meta .Project ,
378
+ DefaultChartVersion : "1.0.0" ,
379
+ DepDownloader : & downloader.Manager {
380
+ Out : logboek .Context (ctx ).OutStream (),
381
+ ChartPath : bundleTmpDir ,
382
+ AllowMissingRepos : true ,
383
+ Getters : getter .All (helm_v3 .Settings ),
384
+ RegistryClient : helmRegistryClient ,
385
+ RepositoryConfig : helm_v3 .Settings .RepositoryConfig ,
386
+ RepositoryCache : helm_v3 .Settings .RepositoryCache ,
387
+ Debug : helm_v3 .Settings .Debug ,
388
+ },
389
+ NoDecryptSecrets : * commonCmdData .IgnoreSecretKey ,
390
+ NoDefaultSecretValues : * commonCmdData .DisableDefaultSecretValues ,
391
+ NoDefaultValues : * commonCmdData .DisableDefaultValues ,
392
+ SecretValuesFiles : common .GetSecretValues (& commonCmdData ),
393
+ SecretsWorkingDir : giterminismManager .ProjectDir (),
394
+ ExtraValues : serviceValues ,
395
+ },
391
396
}
392
- loader .SetChartPathFunc = downloader .SetChartPath
393
- loader .DepsBuildFunc = downloader .Build
394
-
395
- loader .SetServiceDir (werf .GetServiceDir ())
396
397
397
398
if err = createNewBundle (
398
399
ctx ,
400
+ serviceValues ,
399
401
extraAnnotations ,
400
402
serviceAnnotations ,
401
403
extraLabels ,
@@ -409,6 +411,7 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
409
411
Values : common .GetSet (& commonCmdData ),
410
412
FileValues : common .GetSetFile (& commonCmdData ),
411
413
},
414
+ opts ,
412
415
); err != nil {
413
416
return fmt .Errorf ("create bundle: %w" , err )
414
417
}
@@ -420,16 +423,18 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
420
423
bundleRepo = stagesStorage .Address ()
421
424
}
422
425
423
- chart . CurrentChartType = chart .ChartTypeBundle
426
+ opts . ChartLoadOpts . ChartType = helmopts .ChartTypeBundle
424
427
425
428
return bundles .Publish (ctx , bundleTmpDir , fmt .Sprintf ("%s:%s" , bundleRepo , cmdData .Tag ), bundlesRegistryClient , bundles.PublishOptions {
426
429
HelmCompatibleChart : * commonCmdData .HelmCompatibleChart ,
427
430
RenameChart : * commonCmdData .RenameChart ,
431
+ HelmOptions : opts ,
428
432
})
429
433
}
430
434
431
435
func createNewBundle (
432
436
ctx context.Context ,
437
+ serviceValues map [string ]interface {},
433
438
extraAnnotations map [string ]string ,
434
439
serviceAnnotations map [string ]string ,
435
440
extraLabels map [string ]string ,
@@ -438,22 +443,23 @@ func createNewBundle(
438
443
destDir string ,
439
444
chartVersion string ,
440
445
vals * values.Options ,
446
+ opts helmopts.HelmOptions ,
441
447
) error {
442
448
chartPath := filepath .Join (projectDir , chartDir )
443
- chrt , err := loader .LoadDir (chartPath )
449
+ chrt , err := loader .LoadDir (chartPath , opts )
444
450
if err != nil {
445
451
return fmt .Errorf ("error loading chart %q: %w" , chartPath , err )
446
452
}
447
453
448
454
var valsData []byte
449
455
{
450
456
p := getter .All (helm_v3 .Settings )
451
- vals , err := vals .MergeValues (p )
457
+ vals , err := vals .MergeValues (p , opts )
452
458
if err != nil {
453
459
return fmt .Errorf ("unable to merge input values: %w" , err )
454
460
}
455
461
456
- bundleVals , err := makeBundleValues (chrt , vals )
462
+ bundleVals , err := makeBundleValues (chrt , vals , serviceValues )
457
463
if err != nil {
458
464
return fmt .Errorf ("unable to construct bundle values: %w" , err )
459
465
}
@@ -466,7 +472,7 @@ func createNewBundle(
466
472
467
473
var secretValsData []byte
468
474
if chrt .SecretsRuntimeData != nil && ! secrets_manager .Manager .IsMissedSecretKeyModeEnabled () {
469
- vals , err := makeBundleSecretValues (ctx , chrt .SecretsRuntimeData )
475
+ vals , err := makeBundleSecretValues (ctx , chrt .SecretsRuntimeData , opts )
470
476
if err != nil {
471
477
return fmt .Errorf ("unable to construct bundle secret values: %w" , err )
472
478
}
@@ -481,7 +487,7 @@ func createNewBundle(
481
487
destDir = chrt .Metadata .Name
482
488
}
483
489
484
- secrets .ChartDir = destDir
490
+ opts . ChartLoadOpts .ChartDir = destDir
485
491
486
492
if err := os .RemoveAll (destDir ); err != nil {
487
493
return fmt .Errorf ("unable to remove %q: %w" , destDir , err )
@@ -642,10 +648,9 @@ func writeBundleJsonMap(dataMap map[string]string, path string) error {
642
648
func makeBundleValues (
643
649
chrt * chart.Chart ,
644
650
inputVals map [string ]interface {},
651
+ serviceValues map [string ]interface {},
645
652
) (map [string ]interface {}, error ) {
646
- chartutil .DebugPrintValues (context .Background (), "input" , inputVals )
647
-
648
- vals , err := chartutil .MergeInternal (context .Background (), inputVals , chartutil .ServiceValues , nil )
653
+ vals , err := chartutil .MergeInternal (context .Background (), inputVals , serviceValues , nil )
649
654
if err != nil {
650
655
return nil , fmt .Errorf ("failed to coalesce werf chart values: %w" , err )
651
656
}
@@ -663,17 +668,13 @@ func makeBundleValues(
663
668
664
669
chartutil .CoalesceChartValues (chrt , valsCopy , true )
665
670
666
- chartutil .DebugPrintValues (context .Background (), "all" , valsCopy )
667
-
668
671
return valsCopy , nil
669
672
}
670
673
671
674
func makeBundleSecretValues (
672
675
ctx context.Context ,
673
676
secretsRuntimeData runtimedata.RuntimeData ,
677
+ opts helmopts.HelmOptions ,
674
678
) (map [string ]interface {}, error ) {
675
- if chartutil .DebugSecretValues () {
676
- chartutil .DebugPrintValues (context .Background (), "secret" , secretsRuntimeData .GetDecryptedSecretValues ())
677
- }
678
- return secretsRuntimeData .GetEncodedSecretValues (ctx , secrets_manager .Manager , false )
679
+ return secretsRuntimeData .GetEncodedSecretValues (ctx , secrets_manager .Manager , opts .ChartLoadOpts .SecretsWorkingDir , opts .ChartLoadOpts .NoDecryptSecrets )
679
680
}
0 commit comments