Просмотр исходного кода

fix(e2e): build chart deps in HelmServer before packaging

The charts/ subchart tarballs are gitignored, so on a fresh checkout the ESO
chart's charts/ is empty and 'helm package' fails with 'missing in charts/
directory: bitwarden-sdk-server'. The provider and argocd suites hide this
because an earlier HelmChart addon runs 'helm dependency update' on the chart
path first; a suite that only uses HelmServer (flux) has nothing to populate
charts/. Build the deps from the committed Chart.lock in Setup so the addon is
self-contained.

Signed-off-by: Alexander Chernov <alexander@chernov.it>
Alexander Chernov 1 неделя назад
Родитель
Сommit
778d6637be
1 измененных файлов с 13 добавлено и 2 удалено
  1. 13 2
      e2e/framework/addon/helmserver.go

+ 13 - 2
e2e/framework/addon/helmserver.go

@@ -48,10 +48,21 @@ func (s *HelmServer) Setup(config *Config) error {
 		return err
 		return err
 	}
 	}
 
 
+	// The chart's charts/ subchart tarballs are gitignored, so a fresh
+	// checkout packages an empty charts/ and `helm package` fails with
+	// "missing in charts/ directory". Build deps from the committed
+	// Chart.lock first so this addon is self-contained: a suite that uses
+	// only HelmServer (e.g. flux) has nothing else to populate charts/.
+	cmd := exec.Command("helm", "dependency", "build", s.ChartDir)
+	out, err := cmd.CombinedOutput()
+	if err != nil {
+		return fmt.Errorf("unable to build helm chart dependencies: %w %s", err, string(out))
+	}
+
 	// nolint:gosec
 	// nolint:gosec
-	cmd := exec.Command("helm", "package", s.ChartDir, "--version", s.ChartRevision)
+	cmd = exec.Command("helm", "package", s.ChartDir, "--version", s.ChartRevision)
 	cmd.Dir = s.serveDir
 	cmd.Dir = s.serveDir
-	out, err := cmd.CombinedOutput()
+	out, err = cmd.CombinedOutput()
 	if err != nil {
 	if err != nil {
 		return fmt.Errorf("unable to package helm chart: %w %s", err, string(out))
 		return fmt.Errorf("unable to package helm chart: %w %s", err, string(out))
 	}
 	}