Skip to content

fix: Windows install support and Helm 3.18+ compatibility - #256

Open
blaisemGH wants to merge 2 commits into
hayorov:masterfrom
blaisemGH:fix/windows-install-support
Open

fix: Windows install support and Helm 3.18+ compatibility#256
blaisemGH wants to merge 2 commits into
hayorov:masterfrom
blaisemGH:fix/windows-install-support

Conversation

@blaisemGH

@blaisemGH blaisemGH commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

install.sh maps MINGW/MSYS to lowercase 'windows' but GoReleaser uses title-case 'Windows', so the download URL 404s. It also unconditionally uses tar, but GoReleaser produces .zip for Windows.

Separately, the downloaders 'args' field in plugin.yaml doesn't exist in Helm 3's Downloaders struct. Helm 3.18+ strict-unmarshals plugin.yaml, so this is a fatal parse error.

This change fixes the casing on 'windows', adds zip/unzip handling, and switches the downloaders command to bin/helm-gcs-getter (the purpose-built getter binary). This drops the need for 'args' and works cross-platform. The root install script now also downloads helm-gcs-getter since it's needed.

Originally (first commit), this PR relied on git bash for Windows users to run the install shell script. But when I tested this with a colleague on Windows, his git bash wasn't in his PATH, and it failed on the shell script. Given git bash apparently isn't that reliable on Windows, the second commit replaces the install scripts for windows with powershell scripts, which will 100% be in the PATH on windows machines. It worked for me and my colleague.

install.sh maps MINGW/MSYS to lowercase 'windows' but GoReleaser
uses title-case 'Windows', so the download URL 404s. It also
unconditionally uses tar, but GoReleaser produces .zip for Windows.

Separately, the downloaders 'args' field in plugin.yaml doesn't exist
in Helm 3's Downloaders struct. Helm 3.18+ strict-unmarshals
plugin.yaml, so this is a fatal parse error.

Fix the case, add zip/unzip handling, and switch the downloaders
command to bin/helm-gcs-getter (the purpose-built getter binary).
This drops the need for 'args' and works cross-platform. The root
install script now also downloads helm-gcs-getter since it's needed.

Tested on Windows 11 (MINGW64/Git Bash):
- helm plugin install from git URL on Helm 3.18.2 and Helm 4.1.3
- helm plugin list (no warnings on stdout)
- helm gcs init/push/rm subcommands via helm gcs --help
- helm repo add with a gs:// bucket URL on Helm 3.18.2
Replace legacy command/hooks with platformCommand/platformHooks
including os:windows entries that invoke powershell.exe instead of
sh. This removes the requirement for Git Bash (sh.exe) on Windows.

- Add scripts/install.ps1 as the Windows-native bootstrap installer
  (PowerShell 5.1 compatible, shipped with all Windows versions)
- Use HELM_BIN env var for Helm version detection instead of bare
  'helm', preventing misdetection when multiple Helm versions exist
- Convert root plugin.yaml to use platformCommand/platformHooks
  (supported by both Helm 3 and Helm 4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant