MCPcopy
hub / github.com/roboll/helmfile / WriteReleasesValues

Method WriteReleasesValues

pkg/state/state.go:1430–1512  ·  view source on GitHub ↗

WriteReleasesValues writes values files for releases

(helm helmexec.Interface, additionalValues []string, opt ...WriteValuesOpt)

Source from the content-addressed store, hash-verified

1428
1429// WriteReleasesValues writes values files for releases
1430func (st *HelmState) WriteReleasesValues(helm helmexec.Interface, additionalValues []string, opt ...WriteValuesOpt) []error {
1431 opts := &WriteValuesOpts{}
1432 for _, o := range opt {
1433 o.Apply(opts)
1434 }
1435
1436 for i := range st.Releases {
1437 release := &st.Releases[i]
1438
1439 if !release.Desired() {
1440 continue
1441 }
1442
1443 st.ApplyOverrides(release)
1444
1445 generatedFiles, err := st.generateValuesFiles(helm, release, i)
1446 if err != nil {
1447 return []error{err}
1448 }
1449
1450 if !opts.SkipCleanup {
1451 defer st.removeFiles(generatedFiles)
1452 }
1453
1454 for _, value := range additionalValues {
1455 valfile, err := filepath.Abs(value)
1456 if err != nil {
1457 return []error{err}
1458 }
1459
1460 if _, err := os.Stat(valfile); os.IsNotExist(err) {
1461 return []error{err}
1462 }
1463 }
1464
1465 outputValuesFile, err := st.GenerateOutputFilePath(release, opts.OutputFileTemplate)
1466 if err != nil {
1467 return []error{err}
1468 }
1469
1470 if err := os.MkdirAll(filepath.Dir(outputValuesFile), 0755); err != nil {
1471 return []error{err}
1472 }
1473
1474 st.logger.Infof("Writing values file %s", outputValuesFile)
1475
1476 merged := map[string]interface{}{}
1477
1478 for _, f := range append(generatedFiles, additionalValues...) {
1479 src := map[string]interface{}{}
1480
1481 srcBytes, err := st.readFile(f)
1482 if err != nil {
1483 return []error{fmt.Errorf("reading %s: %w", f, err)}
1484 }
1485
1486 if err := yaml.Unmarshal(srcBytes, &src); err != nil {
1487 return []error{fmt.Errorf("unmarshalling yaml %s: %w", f, err)}

Callers 1

writeValuesMethod · 0.80

Calls 10

ApplyOverridesMethod · 0.95
generateValuesFilesMethod · 0.95
removeFilesMethod · 0.95
TriggerCleanupEventMethod · 0.95
DesiredMethod · 0.80
AbsMethod · 0.80
UnmarshalMethod · 0.80
MergeMethod · 0.80
ApplyMethod · 0.65

Tested by

no test coverage detected