Debasish Mohanty
85bf56ea82
docs(registry): fix incorrect and improve clarity of comments in client.go
...
- Fixed incorrect comment in ClientOptPlainHTTP
- Improved clarity of LoginOptPlainText comment
- Enhanced Login function documentation
- Improved wording for ClientOptHTTPClient
No functional changes.
Signed-off-by: Debasish Mohanty <139056705+Debasish-87@users.noreply.github.com>
2 months ago
Matthieu MOREL
dc0e3f10c3
chore(pkg): fix perfsprint linter issues part 6
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
3 months ago
Pedro Tôrres
d983696e35
fix pulling charts from OCI indices
...
Signed-off-by: Pedro Tôrres <pedrotorres@microsoft.com>
4 months ago
Terry Howe
5f3c617940
chore: add warning for registry login with namespace
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
6 months ago
Terry Howe
0f6e14dfd3
chore: fix various warnings to reduce noise
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
7 months ago
Terry Howe
917822cfca
refactor: remove unused err from pkg/registry/client.go
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
7 months ago
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>
9 months ago
Scott Rigby
7d22bb25fa
Plugin OCI installer
...
Signed-off-by: Scott Rigby <scott@r6by.com>
9 months ago
Matt Farina
0f1b410f14
Merge pull request #31165 from mattfarina/content-cache
...
Initial addition of content based cache
9 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>
9 months ago
Eric Stroczynski
e1e23d2af1
fix: set repo authorizer in registry.Client.Resolve()
...
Signed-off-by: Eric Stroczynski <estroczynski@nvidia.com>
9 months ago
Matt Farina
de9ea4d1e3
Merge pull request #30992 from TerryHowe/force-oath-v4
...
fix: force bearer oauth for if registry requests bearer auth
9 months ago
Evans Mungai
0943d032a7
Merge branch 'main' into em/fix-username-password
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
9 months ago
Evans Mungai
9e1cbbebcb
fix linting warning
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
9 months ago
Evans Mungai
5e6a411c1f
fix: use username and password if provided
...
Ref: #31114
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
9 months ago
Matheus Pimenta
802e09038c
pkg/registry: Login option for passing TLS config in memory
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
10 months ago
Terry Howe
f55c462a79
fix: force bearer oauth for everything
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
11 months ago
Terry Howe
47980159b3
fix: user username password for login
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
11 months ago
Scott Rigby
4023c3b5ff
Merge pull request #30917 from TerryHowe/oci-transport-debugging
...
fix: add debug logging to oci transport
12 months ago
Terry Howe
6ab7aa3612
fix: legacy docker support broken for login
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
12 months ago
Terry Howe
5fe7a87138
fix: add debug logging to oci transport
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
Co-authored-by: Billy Zha <jinzha1@microsoft.com>
12 months ago
Robert Sirchia
b7e127dd6b
amending missed line to delete
...
Signed-off-by: Robert Sirchia <rsirchia@outlook.com>
12 months ago
Robert Sirchia
937c533e37
forward porting 30902
...
Signed-off-by: Robert Sirchia <rsirchia@outlook.com>
12 months ago
Benoit Tigeot
f939f6145f
Prevent fetching newReference again as we have in calling method
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
12 months ago
Benoit Tigeot
875e149d6b
Prevent failure when resolving version tags in oras memory store
...
- The newReference() function transforms version tags by replacing + with _ for OCI compatibility
- But the code was using the original ref (with +) for TagBytes()
- Then it tries to find the tagged reference using parsedRef.String() (with _)
- This mismatch causes the Resolve method to fail with "not found"
- By using parsedRef.String() consistently in both places, the references will match and the lookup will succeed.
I extracted the TagBytes function to improve testability.
Push() includes several external calls that are hard to mock,
so isolating this logic makes testing more manageable.
Close : #30881
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
12 months ago
Justen Stall
3877ec9049
fix golangci-lint issues
...
Signed-off-by: Justen Stall <39888103+justenstall@users.noreply.github.com>
1 year ago
Justen Stall
280a9ddbdb
Merge branch 'main' into stdlib-errors-2
...
Signed-off-by: Justen Stall <39888103+justenstall@users.noreply.github.com>
1 year ago
Matt Farina
2e6437beb5
Merge pull request #30684 from twz123/remove-clientoptresolver
...
Remove ClientOptResolver from OCI Client
1 year ago
linghuying
fc476f7235
chore: make function comment match function name
...
Signed-off-by: linghuying <1599935829@qq.com>
1 year ago
Tom Wieczorek
835ff78f48
Remove ClientOptResolver from OCI Client
...
This option was kept to avoid compile-time incompatibilities in Helm v3
when upgrading to ORAS v2. Let's remove it for Helm v4.
This allows Helm to drop the containerd dependency entirely.
Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>
1 year ago
Matt Farina
61d3eca55c
Move pkg/chart to pkg/chart/v2 to prepare for v3 charts
...
This change moves the code, updates the import locations, and
adds a doc.go file to document what the v2 package is for.
This is part of HIP 20 for v3 charts
Signed-off-by: Matt Farina <matt.farina@suse.com>
1 year ago
Terry Howe
5a7046b9bf
chore(oci): upgrade to ORAS v2
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
Co-authored-by: Zoran Regvart <zoran@regvart.com>
1 year ago
Matt Farina
f65eaf35ce
Merge pull request #12690 from TerryHowe/oci-install-digest
...
feat: OCI install by digest
1 year ago
Matt Farina
2236294119
Updating to helm.sh/helm/v4
...
Since Helm is going through breaking changes with Helm v4, the version path to
Helm needs to be updated.
Signed-off-by: Matt Farina <matt.farina@suse.com>
1 year ago
Matt Farina
4dd2a7d626
Merge branch 'main' into oci-install-digest
1 year ago
George Jenkins
76ba8a4b9f
naming is hard
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
1 year ago
George Jenkins
6dfaf955ee
Shadow ORAS remote.Client interface
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
1 year ago
Scott Rigby
28770bfc1d
Merge pull request #12588 from rynowak/rynowak/override-authorizer
...
Make the authorizer and registry authorizer configurable
1 year ago
Ryan Nowak
1ab264cb7d
Make the authorizer and registry authorizer configurable
...
Fixes : #12584
This change makes the authorizer and registryAuthorizer of the registry client configurable via options. This allows Go SDK users to override the authentication behavior of the client.
This PR makes both the authorizer and registryAuthorizer configurable because depending on the exact scenario that may be needed. The default registryAuthorizer only supports a specific implementation of the authorizer.
Signed-off-by: Ryan Nowak <nowakra@gmail.com>
1 year ago
Justen Stall
63cf42a843
fix: replace "github.com/pkg/errors" with stdlib "errors" package
...
Signed-off-by: Justen Stall <39888103+justenstall@users.noreply.github.com>
2 years ago
Terry Howe
d2b94f6200
fix: make ORAS reference private
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2 years ago
Terry Howe
aca7e8d775
fix: issue with helm template and oci chart
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2 years ago
Terry Howe
ad9fb68fa3
feat: allow installation by OCI digest
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2 years ago
Evans Mungai
76c0f297c1
Merge remote-tracking branch 'origin/main' into em/password-to-oci-registries
2 years ago
Matt Farina
a753ee7f43
Merge pull request #12866 from robertsirc/Correcting-Linting-Errors
...
Correcting linting errors
2 years ago
Andrew Block
0a69a0dea6
Modified how created annotation is populated based on package creation time
...
Signed-off-by: Andrew Block <andy.block@gmail.com>
2 years ago
Robert Sirchia
d58d7b3762
Fixing all the linting errors
...
Cleaned up all the linting errors we are getting.
Signed-off-by: Robert Sirchia <rsirchia@outlook.com>
2 years ago
Evans Mungai
dc158f6208
fix(helm): pass down username/password CLI parameters to OCI registry clients
...
When username/password parameters are passed in via the CLI
they are not passed down to the client handling requests to
OCI registries. This change ensures this happens
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2 years ago
Matt Farina
24e2864c64
Revert "fix(main): fix basic auth for helm pull or push"
...
This reverts commit 4a27baaffc .
Note, PR #11129 was layered in along with this change so the revert
preserves this API addition.
Signed-off-by: Matt Farina <matt.farina@suse.com>
3 years ago
Matt Farina
992dc58556
Revert "fix(registry): address anonymous pull issue"
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
3 years ago