From f3caa65f790a6109c456598f23877c7794deface Mon Sep 17 00:00:00 2001 From: Reinaldo de Souza Jr Date: Fri, 25 Sep 2020 19:17:44 +0200 Subject: [PATCH] Make chart cache path configuration available to downloaders Signed-off-by: Reinaldo de Souza Jr --- cmd/helm/dependency_build.go | 1 + cmd/helm/dependency_update.go | 1 + cmd/helm/install.go | 1 + cmd/helm/package.go | 1 + pkg/action/install.go | 1 + pkg/action/pull.go | 1 + pkg/downloader/chart_downloader.go | 1 + pkg/downloader/chart_downloader_test.go | 5 +++++ pkg/downloader/manager.go | 2 ++ pkg/downloader/manager_test.go | 4 ++++ 10 files changed, 18 insertions(+) diff --git a/cmd/helm/dependency_build.go b/cmd/helm/dependency_build.go index 4e87684ce..88e8cad40 100644 --- a/cmd/helm/dependency_build.go +++ b/cmd/helm/dependency_build.go @@ -61,6 +61,7 @@ func newDependencyBuildCmd(out io.Writer) *cobra.Command { Getters: getter.All(settings), RepositoryConfig: settings.RepositoryConfig, RepositoryCache: settings.RepositoryCache, + ChartCache: settings.ChartCache, Debug: settings.Debug, } if client.Verify { diff --git a/cmd/helm/dependency_update.go b/cmd/helm/dependency_update.go index 9855afb92..3e329e062 100644 --- a/cmd/helm/dependency_update.go +++ b/cmd/helm/dependency_update.go @@ -65,6 +65,7 @@ func newDependencyUpdateCmd(out io.Writer) *cobra.Command { Getters: getter.All(settings), RepositoryConfig: settings.RepositoryConfig, RepositoryCache: settings.RepositoryCache, + ChartCache: settings.ChartCache, Debug: settings.Debug, } if client.Verify { diff --git a/cmd/helm/install.go b/cmd/helm/install.go index 7edd98091..ab0feef5c 100644 --- a/cmd/helm/install.go +++ b/cmd/helm/install.go @@ -222,6 +222,7 @@ func runInstall(args []string, client *action.Install, valueOpts *values.Options Getters: p, RepositoryConfig: settings.RepositoryConfig, RepositoryCache: settings.RepositoryCache, + ChartCache: settings.ChartCache, Debug: settings.Debug, } if err := man.Update(); err != nil { diff --git a/cmd/helm/package.go b/cmd/helm/package.go index 7134a8784..ee60ed538 100644 --- a/cmd/helm/package.go +++ b/cmd/helm/package.go @@ -94,6 +94,7 @@ func newPackageCmd(out io.Writer) *cobra.Command { Debug: settings.Debug, RepositoryConfig: settings.RepositoryConfig, RepositoryCache: settings.RepositoryCache, + ChartCache: settings.ChartCache, } if err := downloadManager.Update(); err != nil { diff --git a/pkg/action/install.go b/pkg/action/install.go index caeefca68..affa935a8 100644 --- a/pkg/action/install.go +++ b/pkg/action/install.go @@ -649,6 +649,7 @@ func (c *ChartPathOptions) LocateChart(name string, settings *cli.EnvSettings) ( }, RepositoryConfig: settings.RepositoryConfig, RepositoryCache: settings.RepositoryCache, + ChartCache: settings.ChartCache, } if c.Verify { dl.Verify = downloader.VerifyAlways diff --git a/pkg/action/pull.go b/pkg/action/pull.go index 220ca11b2..1ec8b54ec 100644 --- a/pkg/action/pull.go +++ b/pkg/action/pull.go @@ -68,6 +68,7 @@ func (p *Pull) Run(chartRef string) (string, error) { }, RepositoryConfig: p.Settings.RepositoryConfig, RepositoryCache: p.Settings.RepositoryCache, + ChartCache: p.Settings.ChartCache, } if p.Verify { diff --git a/pkg/downloader/chart_downloader.go b/pkg/downloader/chart_downloader.go index ef26f3348..5867d917c 100644 --- a/pkg/downloader/chart_downloader.go +++ b/pkg/downloader/chart_downloader.go @@ -70,6 +70,7 @@ type ChartDownloader struct { Options []getter.Option RepositoryConfig string RepositoryCache string + ChartCache string } // DownloadTo retrieves a chart. Depending on the settings, it may also download a provenance file. diff --git a/pkg/downloader/chart_downloader_test.go b/pkg/downloader/chart_downloader_test.go index b9fd3bf87..affd30612 100644 --- a/pkg/downloader/chart_downloader_test.go +++ b/pkg/downloader/chart_downloader_test.go @@ -31,6 +31,7 @@ import ( const ( repoConfig = "testdata/repositories.yaml" repoCache = "testdata/repository" + chartCache = "testdata/charts" ) func TestResolveChartRef(t *testing.T) { @@ -199,6 +200,7 @@ func TestDownloadTo(t *testing.T) { Keyring: "testdata/helm-test-key.pub", RepositoryConfig: repoConfig, RepositoryCache: repoCache, + ChartCache: chartCache, Getters: getter.All(&cli.EnvSettings{ RepositoryConfig: repoConfig, RepositoryCache: repoCache, @@ -252,6 +254,7 @@ func TestDownloadTo_TLS(t *testing.T) { Keyring: "testdata/helm-test-key.pub", RepositoryConfig: repoConfig, RepositoryCache: repoCache, + ChartCache: chartCache, Getters: getter.All(&cli.EnvSettings{ RepositoryConfig: repoConfig, RepositoryCache: repoCache, @@ -299,6 +302,7 @@ func TestDownloadTo_VerifyLater(t *testing.T) { Verify: VerifyLater, RepositoryConfig: repoConfig, RepositoryCache: repoCache, + ChartCache: chartCache, Getters: getter.All(&cli.EnvSettings{ RepositoryConfig: repoConfig, RepositoryCache: repoCache, @@ -328,6 +332,7 @@ func TestScanReposForURL(t *testing.T) { Verify: VerifyLater, RepositoryConfig: repoConfig, RepositoryCache: repoCache, + ChartCache: chartCache, Getters: getter.All(&cli.EnvSettings{ RepositoryConfig: repoConfig, RepositoryCache: repoCache, diff --git a/pkg/downloader/manager.go b/pkg/downloader/manager.go index 0efac37bc..07e88efba 100644 --- a/pkg/downloader/manager.go +++ b/pkg/downloader/manager.go @@ -73,6 +73,7 @@ type Manager struct { Getters []getter.Provider RepositoryConfig string RepositoryCache string + ChartCache string } // Build rebuilds a local charts directory from a lockfile. @@ -326,6 +327,7 @@ func (m *Manager) downloadAll(deps []*chart.Dependency) error { Keyring: m.Keyring, RepositoryConfig: m.RepositoryConfig, RepositoryCache: m.RepositoryCache, + ChartCache: m.ChartCache, Getters: m.Getters, Options: []getter.Option{ getter.WithBasicAuth(username, password), diff --git a/pkg/downloader/manager_test.go b/pkg/downloader/manager_test.go index 9532cca7c..9c3d7e3e1 100644 --- a/pkg/downloader/manager_test.go +++ b/pkg/downloader/manager_test.go @@ -71,6 +71,7 @@ func TestFindChartURL(t *testing.T) { Out: &b, RepositoryConfig: repoConfig, RepositoryCache: repoCache, + ChartCache: chartCache, } repos, err := m.loadChartRepositories() if err != nil { @@ -102,6 +103,7 @@ func TestGetRepoNames(t *testing.T) { Out: b, RepositoryConfig: repoConfig, RepositoryCache: repoCache, + ChartCache: chartCache, } tests := []struct { name string @@ -235,6 +237,7 @@ func TestUpdateBeforeBuild(t *testing.T) { Getters: g, RepositoryConfig: dir("repositories.yaml"), RepositoryCache: dir(), + ChartCache: dir(), } // Update before Build. see issue: https://github.com/helm/helm/issues/7101 @@ -305,6 +308,7 @@ func checkBuildWithOptionalFields(t *testing.T, chartName string, dep chart.Depe Getters: g, RepositoryConfig: dir("repositories.yaml"), RepositoryCache: dir(), + ChartCache: dir(), } // First build will update dependencies and create Chart.lock file.