From 12dacf0781a50ea2e19714f94f1f1d1e01195f6c Mon Sep 17 00:00:00 2001 From: Sergei Karpov Date: Sun, 25 Dec 2022 12:10:08 +0200 Subject: [PATCH 1/3] fix(pkg/plugin/installer): unix-style paths in HELM_PLUGINS for helm install Supports unix-style paths (with a colon) in the HELM_PLUGINS env for installing new plugins. Closes #11310 Signed-off-by: Sergei Karpov --- pkg/plugin/installer/base.go | 3 ++- pkg/plugin/installer/base_test.go | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/plugin/installer/base.go b/pkg/plugin/installer/base.go index ba6a55d55..e44d857d5 100644 --- a/pkg/plugin/installer/base.go +++ b/pkg/plugin/installer/base.go @@ -30,9 +30,10 @@ type base struct { func newBase(source string) base { settings := cli.New() + pluginsDirs := filepath.SplitList(settings.PluginsDirectory) return base{ Source: source, - PluginsDirectory: settings.PluginsDirectory, + PluginsDirectory: pluginsDirs[0], } } diff --git a/pkg/plugin/installer/base_test.go b/pkg/plugin/installer/base_test.go index 38ef28c3e..104dbadeb 100644 --- a/pkg/plugin/installer/base_test.go +++ b/pkg/plugin/installer/base_test.go @@ -32,6 +32,10 @@ func TestPath(t *testing.T) { source: "https://github.com/jkroepke/helm-secrets", helmPluginsDir: "/helm/data/plugins", expectPath: "/helm/data/plugins/helm-secrets", + }, { + source: "https://github.com/jkroepke/helm-secrets", + helmPluginsDir: "/helm/data/plugins:/remote/helm/data/plugins", + expectPath: "/helm/data/plugins/helm-secrets", }, } From 99e9019e418a8c051153a3bfcfb524098e6187a2 Mon Sep 17 00:00:00 2001 From: Sergei Karpov Date: Mon, 16 Jan 2023 15:10:57 +0200 Subject: [PATCH 2/3] fix(pkg/plugin/installer): unix-style paths in HELM_PLUGINS for helm install Supports unix-style paths (with a colon) in the HELM_PLUGINS env for installing new plugins. Closes #11310 Signed-off-by: Sergei Karpov --- pkg/plugin/installer/base_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/plugin/installer/base_test.go b/pkg/plugin/installer/base_test.go index 104dbadeb..d257970db 100644 --- a/pkg/plugin/installer/base_test.go +++ b/pkg/plugin/installer/base_test.go @@ -14,6 +14,7 @@ limitations under the License. package installer // import "helm.sh/helm/v3/pkg/plugin/installer" import ( + "fmt" "os" "testing" ) @@ -34,7 +35,7 @@ func TestPath(t *testing.T) { expectPath: "/helm/data/plugins/helm-secrets", }, { source: "https://github.com/jkroepke/helm-secrets", - helmPluginsDir: "/helm/data/plugins:/remote/helm/data/plugins", + helmPluginsDir: fmt.Sprintf("/helm/data/plugins%c/remote/helm/data/plugins", os.PathListSeparator), expectPath: "/helm/data/plugins/helm-secrets", }, } From 681275cbb8da2b591a17eff89077aa8749886c3a Mon Sep 17 00:00:00 2001 From: Sergei Karpov Date: Tue, 2 May 2023 15:40:19 +0300 Subject: [PATCH 3/3] fix(pkg/plugin/installer): unix-style paths in HELM_PLUGINS for helm install Supports unix-style paths (with a colon) in the HELM_PLUGINS env for installing new plugins. Closes #11310 Signed-off-by: Sergei Karpov --- pkg/plugin/installer/base.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkg/plugin/installer/base.go b/pkg/plugin/installer/base.go index e44d857d5..aa07c0d8a 100644 --- a/pkg/plugin/installer/base.go +++ b/pkg/plugin/installer/base.go @@ -29,12 +29,22 @@ type base struct { } func newBase(source string) base { - settings := cli.New() - pluginsDirs := filepath.SplitList(settings.PluginsDirectory) + pluginsDir := getPluginsDir() return base{ Source: source, - PluginsDirectory: pluginsDirs[0], + PluginsDirectory: pluginsDir, + } +} + +func getPluginsDir() string { + settings := cli.New() + + if settings.PluginsDirectory == "" { + return "" } + + pluginsDirs := filepath.SplitList(settings.PluginsDirectory) + return pluginsDirs[0] } // Path is where the plugin will be installed.