Benoit Tigeot
5595c0d005
Prevent failing helm push on ghcr.io using standard GET auth token flow
...
Fix GHCR auth by not forcing OAuth2 POST but also reset
ForceAttemptOAuth2 after login.
- Remove ForceAttemptOAuth2 in NewClient and only enable during Login
ping and always restore to false.
- Aligns with OCI Distribution auth (token via GET), avoiding GHCR 405
on POST /token.
- Some tests
Failures logs:
```sh
~/p/lifen/test/helm-f/quicktest ❯ ../../../helm/bin/helm push quicktest-0.1.0.tgz oci://ghcr.io/benoittgt/helm-charts --debug
level=DEBUG msg=HEAD id=0 url=https://ghcr.io/v2/benoittgt/helm-charts/quicktest/manifests/sha256:af359fd8fb968ec1097afbd6e8e1dac9ee130861082e54dc2340d0c019407873 header=" \"Accept\": \"application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, application/vnd.oci.artifact.manifest.v1+json\"\n \"User-Agent\": \"Helm/4.0+unreleased\""
level=DEBUG msg=Resp id=0 status="401 Unauthorized" header=" \"Www-Authenticate\": \"Bearer realm=\\\"https://ghcr.io/token \\\",service=\\\"ghcr.io\\\",scope=\\\"repository:benoittgt/helm-charts/quicktest:pull\\\"\"\n \"Date\": \"Mon, 01 Sep 2025 13:56:35 GMT\"\n \"Content-Length\": \"73\"\n \"X-Github-Request-Id\": \"DC73:115F:2B40F2C:2BAB567:68B5A613\"\n \"Content-Type\": \"application/json\"" body=" Response body is empty"
level=DEBUG msg=POST id=1 url=https://ghcr.io/token header=" \"Content-Type\": \"application/x-www-form-urlencoded\"\n \"User-Agent\": \"Helm/4.0+unreleased\""
level=DEBUG msg=Resp id=1 status="405 Method Not Allowed" header=" \"Docker-Distribution-Api-Version\": \"registry/2.0\"\n \"Strict-Transport-Security\": \"max-age=63072000; includeSubDomains; preload\"\n \"Date\": \"Mon, 01 Sep 2025 13:56:35 GMT\"\n \"Content-Length\": \"78\"\n \"X-Github-Request-Id\": \"DC73:115F:2B40F75:2BAB5C2:68B5A613\"\n \"Content-Type\": \"application/json\"" body="{\"errors\":[{\"code\":\"UNSUPPORTED\",\"message\":\"The operation is unsupported.\"}]}\n"
Error: failed to perform "Exists" on destination: HEAD "https://ghcr.io/v2/benoittgt/helm-charts/quicktest/manifests/sha256:af359fd8fb968ec1097afbd6e8e1dac9ee130861082e54dc2340d0c019407873 ": POST "https://ghcr.io/token ": response status code 405: unsupported: The operation is unsupported.
```
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
1 month ago
tzchenxixi
89aca09e5e
chore: fix function name
...
Signed-off-by: tzchenxixi <tzchenxixi@icloud.com>
1 month ago
George Jenkins
c35755a197
Remove legacy Command/Hooks from v1 Subprocess ( #23 )
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
1 month ago
Scott Rigby
591d863df5
Move Postrenderer to a plugin type
...
Fix/add back postrenderer args unit tests
Signed-off-by: Scott Rigby <scott@r6by.com>
1 month ago
Scott Rigby
e814ff3c38
Remove unnecessary file i/o operations from signing and verifying
...
Signed-off-by: Scott Rigby <scott@r6by.com>
1 month ago
Scott Rigby
9ea35da0d0
[HIP-0026] Plugin packaging, signing, and verification ( #31176 )
...
* Plugin packaging, signing and verification
Signed-off-by: Scott Rigby <scott@r6by.com>
* wrap keyring read error with more explicit message
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
* skip unnecessary check
Co-authored-by: Evans Mungai <mbuevans@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
* Change behavior for installing plugin with missing .prov file (now warns and continues instead of failing)
Signed-off-by: Scott Rigby <scott@r6by.com>
* Add comprehensive plugin verification tests
- Test missing .prov files (warns but continues)
- Test invalid .prov file formats (fails verification)
- Test hash mismatches in .prov files (fails verification)
- Test .prov file access errors (fails appropriately)
- Test directory plugins don't support verification
- Test installation without verification enabled (succeeds)
- Test with valid .prov files (fails on empty keyring as expected)
---------
Signed-off-by: Scott Rigby <scott@r6by.com>
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Co-authored-by: Evans Mungai <mbuevans@gmail.com>
1 month ago
Terry Howe
b12cd28503
fix: installer action goroutine count
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
1 month ago
George Jenkins
892e86182f
Merge pull request #31194 from gjenkins8/gjenkins/plugin-integration/wasm_runtime
...
[HIP-0026] Plugin extism/v1 runtime
1 month ago
George Jenkins
80f659ce8b
Merge pull request #31178 from mattfarina/env-content-cache
...
Add content cache to helm env
1 month ago
George Jenkins
2658a00863
fix output message value
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
1 month ago
Terry Howe
ce97a2449e
fix: move mockdns to packge level
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
1 month ago
Terry Howe
6273f9b38e
fix: flaky registry data race on mockdns close
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
1 month ago
Terry Howe
284bd980b6
fix: replace pkg/engine regular expressions with parser
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
1 month ago
George Jenkins
b6545e903a
code review + bug fixes
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
1 month ago
George Jenkins
934f761e08
Merge pull request #30812 from gjenkins8/gjenkins/chartrelease_server_side_apply
...
HIP-0023: Helm support server-side apply
1 month ago
Scott Rigby
fd41fdd9c9
New registry plugin func GetPluginName. Re-use regsitry.reference
...
Signed-off-by: Scott Rigby <scott@r6by.com>
1 month ago
Scott Rigby
7d22bb25fa
Plugin OCI installer
...
Signed-off-by: Scott Rigby <scott@r6by.com>
1 month ago
Matt Farina
533eddc57d
Add content cache to helm env
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
1 month ago
Scott Rigby
a7578fec74
Plugin types and plugin apiVersion v1
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
2 months ago
Scott Rigby
be74ab72a0
[HIP-0026] Plugin runtime interface ( #31145 )
...
* Runtime abstraction to encapsulate subprocess code and enable future runtimes
Also fix race condition in TestPrepareCommandExtraArgs by replacing the shared variable modification with a local copy
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
* Remove commented out code
Co-authored-by: Joe Julian <me@joejulian.name>
Signed-off-by: Scott Rigby <scott@r6by.com>
* Check test failure string
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
---------
Signed-off-by: Scott Rigby <scott@r6by.com>
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Co-authored-by: Joe Julian <me@joejulian.name>
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
2 months ago
Matt Farina
0f1b410f14
Merge pull request #31165 from mattfarina/content-cache
...
Initial addition of content based cache
2 months ago
George Jenkins
a0d6b0d383
Merge pull request #13629 from gjenkins8/rename_atomic_rollbackonfailure
...
Rename 'atomic' -> 'rollback-on-failure'
2 months ago
Scott Rigby
29d12ba09e
Merge pull request #31156 from estroz/fix-resolve-client
...
fix: set repo authorizer in registry.Client.Resolve()
2 months ago
Robert Sirchia
fc5bd02a1b
Merge pull request #31175 from cuiweixie/atomic.Uint64
...
pkg/register: refactor to use atomic.Uint64
2 months ago
Matt Farina
fea6d8eb04
Updating to tested content cache
...
A few things are added here:
1. The cache is made to be more generic as a content based cache.
It could be used for other things such as plugins
2. Flags were added to specify the content cache locaiton rather
than rely on the repository cache. Keeping the 2 the same
hid bugs and errors.
3. Tests were added and updated to ensure the cache is used and
tested
Signed-off-by: Matt Farina <matt.farina@suse.com>
2 months ago
George Jenkins
4596c0e062
Merge pull request #31142 from helm/gjenkins/main/mv_plugin_internal
...
[HIP-0026] Move pkg/plugin -> internal/plugin
2 months ago
cuiweixie
04cb1bad67
pkg/register: refactor to use atomic.Uint64
...
Signed-off-by: cuiweixie <cuiweixie@gmail.com>
2 months ago
George Jenkins
ebc874ef84
fix client-side to server-side field manager migration
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
Robert Sirchia
30404b4173
Merge pull request #31138 from islewis/release-3.18
...
fix(helm-lint): Add HTTP/HTTPS URL support for json schema references
2 months ago
Isaiah Lewis
62e0c78ef8
fix(helm-lint): fmt
...
Signed-off-by: Isaiah Lewis <isaiah@roof12.com>
2 months ago
Matt Farina
6ac2c34689
Initial addition of content based cache
...
The previous cache was based on chart name and version. If 2 charts
with different content had the same name and version they would collide.
Helm did not trust the cache because of this and always downloaded
content. It was a short lived cache.
This commit introduces a content based cache which is based on the
content rather than file name. Charts with the same name but different
content are no longer an issue.
While the system assumes a file based interface, the cache system
is pluggable. In the future, it should return bytes for the content
instead of paths to it. That would requie a larger change for Helm 5
or later.
Signed-off-by: Matt Farina <matt.farina@suse.com>
2 months ago
Matt Farina
3726d01c5c
Merge pull request #31132 from joemicky/main
...
refactor: replace []byte(fmt.Sprintf) with fmt.Appendf
2 months ago
Eric Stroczynski
e1e23d2af1
fix: set repo authorizer in registry.Client.Resolve()
...
Signed-off-by: Eric Stroczynski <estroczynski@nvidia.com>
2 months ago
George Jenkins
b4b2392f7e
mergefix
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
Isaiah Lewis
fb12b44493
fix(helm-lint): Add TLSClientConfig
...
Signed-off-by: Isaiah Lewis <isaiah@roof12.com>
2 months ago
Matt Farina
de9ea4d1e3
Merge pull request #30992 from TerryHowe/force-oath-v4
...
fix: force bearer oauth for if registry requests bearer auth
2 months ago
George Jenkins
e2dcbe28bf
Helm client/SDK support server-side apply
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
Evans Mungai
0943d032a7
Merge branch 'main' into em/fix-username-password
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 months ago
George Jenkins
a1c84f9a4c
Move pkg/plugin -> internal/plugin
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
Terry Howe
1e22b2fe7c
fix: remove redundant error check
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2 months ago
Isaiah Lewis
fa73b6743b
fix(helm-lint): Add HTTP/HTTPS URL support for json schema references
...
Signed-off-by: Isaiah Lewis <isaiah@roof12.com>
2 months ago
George Jenkins
36e52c828d
Merge pull request #31030 from gjenkins8/gjenkins/kubeclient_ssa
...
HIP-0023: Kube client support server-side apply
2 months ago
Robert Sirchia
47529bbffb
Merge pull request #31133 from joemicky/use_CutPrefix
...
refactor: replace HasPrefix+TrimPrefix with CutPrefix
2 months ago
joemicky
762ef3ee80
refactor: omit unnecessary reassignment
...
Signed-off-by: joemicky <joemickychang@outlook.com>
2 months ago
joemicky
a3d2da4d2e
refactor: replace HasPrefix+TrimPrefix with CutPrefix
...
Signed-off-by: joemicky <joemickychang@outlook.com>
2 months ago
joemicky
fab70472af
refactor: replace []byte(fmt.Sprintf) with fmt.Appendf
...
Signed-off-by: joemicky <joemickychang@outlook.com>
2 months ago
Joe Julian
e1b9173812
Merge pull request #12624 from papdaniel/main
...
show crds command output separated by document separator
2 months ago
George Jenkins
36532f36b1
Merge pull request #11700 from suzaku/use-sort-slice
...
Refactor, use sort.Slice to reduce boilerplate code
2 months ago
Joe Julian
4b493f036c
Merge remote-tracking branch 'upstream/main' into papdaniel/main
2 months ago
Joe Julian
6ecf033700
Merge pull request #13111 from rawtaz/style-cosmetics
...
style(pkg/chartutil): add missing dots and indentation to defaultValues
2 months ago
Joe Julian
3fe1cb6f02
Merge remote-tracking branch 'upstream/main' into style-cosmetics
2 months ago
Joe Julian
92bc614fbf
Merge remote-tracking branch 'upstream/main' into use-sort-slice
2 months ago
Scott Rigby
943ca1d0ca
Merge pull request #30891 from gjenkins8/gjenkins/port_plugin_warn
...
fix: Port pluginCommand & command warning
2 months ago
Robert Sirchia
d7d072b7f6
Merge commit from fork
...
Advisory fix 1
2 months ago
George Jenkins
ba53075a9d
Merge pull request #12968 from sjeandeaux/helm-uninstall-dry-run
...
helm uninstall dry run support `--ignore-not-found`
2 months ago
George Jenkins
b2dc411f9d
code review (error checks, collapse forceConflicts, UpdateApplyFunc)
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
George Jenkins
99dc23f00b
switch target<->original
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
George Jenkins
741facca43
Update pkg/kube/client_test.go
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
George Jenkins
45141451b4
Kube client support server-side apply
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2 months ago
Matt Farina
8affd6178f
Merge pull request #31126 from paologallinaharbur/fix/leverageSameTLSconfig
...
fix(transport): leverage same tls config
2 months ago
Matt Farina
523d0b305e
Merge pull request #31076 from matheuscscp/registry-tls-memory
...
pkg/registry: Login option for passing TLS config in memory
2 months ago
Stephane Jeandeaux
44a594fef5
review
...
Signed-off-by: Stephane Jeandeaux <stephane.jeandeaux@gmail.com>
2 months ago
Robert Sirchia
c5901abba6
Merge pull request #31050 from spreadshirt/fix-helm-pull-ud-check
...
Fix `helm pull` untar dir check with repo urls
2 months ago
Paolo Gallina
f3c9407052
fix(transport): leverage same tls config
...
Signed-off-by: Paolo Gallina <paologallina1992@gmail.com>
2 months ago
Stephane Jeandeaux
8434935a3d
fix fallthrough
...
Signed-off-by: Stephane Jeandeaux <stephane.jeandeaux@gmail.com>
2 months ago
Stephane Jeandeaux
65209bed54
Update pkg/action/uninstall.go
...
Co-authored-by: Eddy Moulton <eddy@moulton.com.au>
Signed-off-by: Stephane Jeandeaux <sjeandeaux@users.noreply.github.com>
2 months ago
Stephane Jeandeaux
b3568a67a8
helm uninstall
...
The goal is to have the same behaviour with or without dry-run with --ignore-not-found
close #12970
Signed-off-by: Stephane Jeandeaux <stephane.jeandeaux@gmail.com>
2 months ago
Joe Julian
ae0fe82bc3
Merge remote-tracking branch 'upstream/main' into get-values-test
2 months ago
Khwaja Faraz Ahmed
85164e5705
fix lint errors
...
Signed-off-by: Khwaja Faraz Ahmed <khwajafarazahmed@gmail.com>
2 months ago
Khwaja Faraz Ahmed
ded25c1908
Add tests for alias
...
Signed-off-by: Khwaja Faraz Ahmed <khwajafarazahmed@gmail.com>
2 months ago
Evans Mungai
97af5a5e85
Fix linter warning
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 months ago
Evans Mungai
5e86e43eda
Add tests for pull command using OCI registry
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 months ago
Evans Mungai
9e1cbbebcb
fix linting warning
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 months ago
Evans Mungai
5e6a411c1f
fix: use username and password if provided
...
Ref: #31114
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 months ago
Pavani Pogula
6597fecce3
test(pkg/kube/wait): Add unit tests for waitForPodSuccess, waitForJob and SelectorsForObject.
...
Signed-off-by: Pavani Pogula <pogulapavani@gmail.com>
2 months ago
Pavani Pogula
d4ed9210df
test(pkg/kube/roundtripper): Add unit tests for roundtripper.go
...
Signed-off-by: Pavani Pogula <pogulapavani@gmail.com>
2 months ago
Robert Sirchia
3c5d68d62e
Merge pull request #31109 from carlossg/panic3
...
fix: prevent panic when ChartDownloader.getOciURI
2 months ago
George Jenkins
18b7d45999
Merge pull request #31034 from Mazafard/feat/color-output-and-test-fixes
...
Feat: Add color output functionality and tests for release statuses
2 months ago
Robert Sirchia
9b217506bd
Merge pull request #31106 from irikeish/test/pkg_kube_client
...
test(pkg/kube): add test for Client.isReachable
2 months ago
George Jenkins
93106ba2b6
Merge pull request #30982 from gjenkins8/gjenkins/force_replace_flag
...
Rename 'force' to 'force-replace'
2 months ago
Carlos Sanchez
4e483d36bd
fix: prevent panic when ChartDownloader.getOciURI
...
needs to lookup tags because no version is provided
but no RegistryClient is provided
Signed-off-by: Carlos Sanchez <carlos@apache.org>
2 months ago
Robert Sirchia
6007d5773e
Merge pull request #31094 from mikelolasagasti/drop-freeport
...
chore(deps): remove phayes/freeport module
2 months ago
Atish Kumar
008bd7fc82
test(pkg/kube/client): add test for isReachable
...
Signed-off-by: Atish Kumar <allolro@gmail.com>
2 months ago
Evans Mungai
85243914a4
feat: switch yaml library to go.yaml.in/yaml/v3
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 months ago
Matt Farina
69efc0d4fb
Handle messy index files
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
2 months ago
Matt Farina
0c64ad1c97
fix Chart.yaml handling
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
2 months ago
Mikel Olasagasti Uranga
7007d4d485
chore(deps): remove phayes/freeport module
...
Replaces the `phayes/freeport` module with the standard library's
`net.Listen("tcp", "127.0.0.1:0")` idiom. This removes an unnecessary
dependency and simplifies the codebase.
Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info>
2 months ago
Khwaja Faraz Ahmed
a37934a892
fix linting issue
...
Signed-off-by: Khwaja Faraz Ahmed <khwaja.ahmed@securiti.ai>
2 months ago
Faraz Khawaja
2d2d4a868d
Fix struct declaration
...
Signed-off-by: Faraz Khawaja <khwajafarazahmed@yahoo.com>
Signed-off-by: Khwaja Faraz Ahmed <khwaja.ahmed@securiti.ai>
2 months ago
Matheus Pimenta
802e09038c
pkg/registry: Login option for passing TLS config in memory
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2 months ago
Robert Sirchia
a42b76421b
Merge pull request #31078 from 8tomat8/master
...
fix: k8s version parsing to match original
2 months ago
Mohammadreza Asadollahifard
0865d70304
refactor: change default color output setting to auto and remove ColorEnabled method
...
Signed-off-by: Mohammadreza Asadollahifard <mazafard@gmail.com>
3 months ago
Mohammadreza Asadollahifard
4ef0f3d5e2
Merge remote-tracking branch 'upstream/main' into feat/color-output-and-test-fixes
3 months ago
George Jenkins
f3065ff1ba
Remove plugin deprecated 'UseTunnelDeprecated'
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
3 months ago
George Jenkins
08840f042c
Rename 'atomic' -> 'rollback-on-failure'
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
3 months ago
Borys Hulii
9f6beaad48
fix: k8s version parsing to match original
...
Signed-off-by: Borys Hulii <borys.hulii@bitvavo.com>
3 months ago
Luna Stadler
1031b67fff
Fix `helm pull` untar dir check with repo urls
...
The existing check worked for `helm pull downloaded-repo/chart-name`,
but often does not work when using `--repo-url`, depending on the urls
used by the charts.
Signed-off-by: Luna Stadler <luc@spreadshirt.net>
3 months ago
Faraz Khawaja
f75100266b
Resolve conflicts
3 months ago
George Jenkins
8face0e596
Merge pull request #31060 from yumeiyin/main
...
refactor: replace Split in loops with more efficient SplitSeq
3 months ago
Robert Sirchia
619035d789
Merge pull request #31057 from danilobuerger/db/thick-lark
...
Pass credentials when either chart repo or repo dont specify a port but it matches the default port of that scheme
3 months ago