@@ -23,8 +23,7 @@ import (
2323 "github.com/werf/3p-helm/pkg/cli/values"
2424 "github.com/werf/3p-helm/pkg/downloader"
2525 "github.com/werf/3p-helm/pkg/getter"
26- "github.com/werf/3p-helm/pkg/werf/file"
27- "github.com/werf/3p-helm/pkg/werf/helmopts"
26+ "github.com/werf/3p-helm/pkg/werf/chartextender"
2827 "github.com/werf/3p-helm/pkg/werf/secrets"
2928 "github.com/werf/3p-helm/pkg/werf/secrets/runtimedata"
3029 "github.com/werf/common-go/pkg/secrets_manager"
@@ -332,7 +331,7 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
332331 return err
333332 }
334333
335- file .ChartFileReader = giterminismManager .FileReader ()
334+ loader .ChartFileReader = giterminismManager .FileReader ()
336335
337336 headHash , err := giterminismManager .LocalGitRepo ().HeadCommitHash (ctx )
338337 if err != nil {
@@ -344,7 +343,7 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
344343 return fmt .Errorf ("getting HEAD commit time failed: %w" , err )
345344 }
346345
347- serviceValues , err : = helpers .GetServiceValues (ctx , werfConfig .Meta .Project , imagesRepo , imagesInfoGetters , helpers.ServiceValuesOptions {
346+ chartutil . ServiceValues , err = helpers .GetServiceValues (ctx , werfConfig .Meta .Project , imagesRepo , imagesInfoGetters , helpers.ServiceValuesOptions {
348347 Env : * commonCmdData .Environment ,
349348 CommitHash : headHash ,
350349 CommitDate : headTime ,
@@ -355,6 +354,17 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
355354
356355 helm_v3 .Settings .Debug = * commonCmdData .LogDebug
357356
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+
358368 // FIXME(1.3): compatibility mode with older 1.2 versions, which do not require WERF_SECRET_KEY in the 'werf bundle publish' command
359369 if err := secrets_manager .Manager .AllowMissedSecretKeyMode (giterminismManager .ProjectDir ()); err != nil {
360370 return err
@@ -369,35 +379,23 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
369379 bundleTmpDir := filepath .Join (werf .GetServiceDir (), "tmp" , "bundles" , uuid .NewString ())
370380 defer os .RemoveAll (bundleTmpDir )
371381
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- },
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 ,
396391 }
392+ loader .SetChartPathFunc = downloader .SetChartPath
393+ loader .DepsBuildFunc = downloader .Build
394+
395+ loader .SetServiceDir (werf .GetServiceDir ())
397396
398397 if err = createNewBundle (
399398 ctx ,
400- serviceValues ,
401399 extraAnnotations ,
402400 serviceAnnotations ,
403401 extraLabels ,
@@ -411,7 +409,6 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
411409 Values : common .GetSet (& commonCmdData ),
412410 FileValues : common .GetSetFile (& commonCmdData ),
413411 },
414- opts ,
415412 ); err != nil {
416413 return fmt .Errorf ("create bundle: %w" , err )
417414 }
@@ -423,18 +420,16 @@ func runPublish(ctx context.Context, imageNameListFromArgs []string) error {
423420 bundleRepo = stagesStorage .Address ()
424421 }
425422
426- opts . ChartLoadOpts . ChartType = helmopts .ChartTypeBundle
423+ chart . CurrentChartType = chart .ChartTypeBundle
427424
428425 return bundles .Publish (ctx , bundleTmpDir , fmt .Sprintf ("%s:%s" , bundleRepo , cmdData .Tag ), bundlesRegistryClient , bundles.PublishOptions {
429426 HelmCompatibleChart : * commonCmdData .HelmCompatibleChart ,
430427 RenameChart : * commonCmdData .RenameChart ,
431- HelmOptions : opts ,
432428 })
433429}
434430
435431func createNewBundle (
436432 ctx context.Context ,
437- serviceValues map [string ]interface {},
438433 extraAnnotations map [string ]string ,
439434 serviceAnnotations map [string ]string ,
440435 extraLabels map [string ]string ,
@@ -443,23 +438,22 @@ func createNewBundle(
443438 destDir string ,
444439 chartVersion string ,
445440 vals * values.Options ,
446- opts helmopts.HelmOptions ,
447441) error {
448442 chartPath := filepath .Join (projectDir , chartDir )
449- chrt , err := loader .LoadDir (chartPath , opts )
443+ chrt , err := loader .LoadDir (chartPath )
450444 if err != nil {
451445 return fmt .Errorf ("error loading chart %q: %w" , chartPath , err )
452446 }
453447
454448 var valsData []byte
455449 {
456450 p := getter .All (helm_v3 .Settings )
457- vals , err := vals .MergeValues (p , opts )
451+ vals , err := vals .MergeValues (p )
458452 if err != nil {
459453 return fmt .Errorf ("unable to merge input values: %w" , err )
460454 }
461455
462- bundleVals , err := makeBundleValues (chrt , vals , serviceValues )
456+ bundleVals , err := makeBundleValues (chrt , vals )
463457 if err != nil {
464458 return fmt .Errorf ("unable to construct bundle values: %w" , err )
465459 }
@@ -472,7 +466,7 @@ func createNewBundle(
472466
473467 var secretValsData []byte
474468 if chrt .SecretsRuntimeData != nil && ! secrets_manager .Manager .IsMissedSecretKeyModeEnabled () {
475- vals , err := makeBundleSecretValues (ctx , chrt .SecretsRuntimeData , opts )
469+ vals , err := makeBundleSecretValues (ctx , chrt .SecretsRuntimeData )
476470 if err != nil {
477471 return fmt .Errorf ("unable to construct bundle secret values: %w" , err )
478472 }
@@ -487,7 +481,7 @@ func createNewBundle(
487481 destDir = chrt .Metadata .Name
488482 }
489483
490- opts . ChartLoadOpts .ChartDir = destDir
484+ secrets .ChartDir = destDir
491485
492486 if err := os .RemoveAll (destDir ); err != nil {
493487 return fmt .Errorf ("unable to remove %q: %w" , destDir , err )
@@ -648,11 +642,10 @@ func writeBundleJsonMap(dataMap map[string]string, path string) error {
648642func makeBundleValues (
649643 chrt * chart.Chart ,
650644 inputVals map [string ]interface {},
651- serviceValues map [string ]interface {},
652645) (map [string ]interface {}, error ) {
653646 chartutil .DebugPrintValues (context .Background (), "input" , inputVals )
654647
655- vals , err := chartutil .MergeInternal (context .Background (), inputVals , serviceValues , nil )
648+ vals , err := chartutil .MergeInternal (context .Background (), inputVals , chartutil . ServiceValues , nil )
656649 if err != nil {
657650 return nil , fmt .Errorf ("failed to coalesce werf chart values: %w" , err )
658651 }
@@ -678,10 +671,9 @@ func makeBundleValues(
678671func makeBundleSecretValues (
679672 ctx context.Context ,
680673 secretsRuntimeData runtimedata.RuntimeData ,
681- opts helmopts.HelmOptions ,
682674) (map [string ]interface {}, error ) {
683675 if chartutil .DebugSecretValues () {
684676 chartutil .DebugPrintValues (context .Background (), "secret" , secretsRuntimeData .GetDecryptedSecretValues ())
685677 }
686- return secretsRuntimeData .GetEncodedSecretValues (ctx , secrets_manager .Manager , opts . ChartLoadOpts . SecretsWorkingDir , opts . ChartLoadOpts . NoDecryptSecrets )
678+ return secretsRuntimeData .GetEncodedSecretValues (ctx , secrets_manager .Manager , false )
687679}
0 commit comments