-
Notifications
You must be signed in to change notification settings - Fork 5.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to use OCI Registry with sub helm charts #12436
Comments
It's not very intuitive, but hopefully will be made more clear with #12255 |
@blakepettersson I have configured a repository with the suitable credentials like this: I can confirm that the repo connection status is successful: Nevertheless I cannot create any appProject which has access to registry.app.corpintra.net/les because this still ends up with the forbidden message. I have also tried to add repocreds like this but this also makes no difference: Please note that registry.app.corpintra.net/les is a public repo so there are no credentials required to pull any helm charts from this repo. |
This is how my appProject looks like:
And I can confirm that this works if I am using a helm chart repo instead of an OCI registry.
So this has to work the same way for an OCI registry like oci://registry.app.corpintra.net/les without specifying any repo creds or something like this. |
@jascsch I use OCI dependencies myself and have seen this work with my own eyes. Perhaps it's possible that you bumped into the same issue I did in #10218? |
If you are talking about this one:
Sorry but that this is not a feasible workaround for me. |
I'm currently facing exactly the same problem as described by @jascsch We're also forced to use OCI but when I try to use it as dependency, I'm also always getting a forbidden message, although it's public and I can fetch it using So I also think that this should be an issue of argo. Fixing this issue is very appreciated and import for me, too. |
I've been digging through all of the related issues that I can find on this, and I'm in the same position as others. Our scenario:
Expectation: Since the pod(s) running ArgoCD applications have workload identities granted via IAM, we should not need to pass credentials explicitly. The fact that the pod has proper bindings to IAM means that the request should essentially be possible by using the access token method where the token is granted by the GCP metadata server upon request. Reference: |
I have a workaround for this issue that applies to GCP / Google Artifact Registry when using workload identities:
|
We have a workaround for this issue. Instead of using a Chart.yaml file we decided to specify multiple sources and reference the helm chart as a git repo like this:
|
Isn't that a different scenario @jascsch ? In your example you are just fetching the values.yaml from a different repository, however if your helm chart uses OCI as dependencies in the Chart.yaml, the same error as describe in the topic will occur, right? |
That is actually a workaround because using OCI as dependencies in the Chart.yaml does not work. |
In the end it serves the same purpose to deploy apps via a central helm chart repo. |
Hi, I encounter very similar error that is described in origin of this thread and also in thread #11717. After upgrade from ArgoCD v2.7.7 to v2.7.8 (and any upper version, my main destination is latest v2.8.2) I see this error (v2.8.0+)
(v2.7.8-2.7.X)
at my Applications which depend on some Helm Chart in OCI repository. When I create directly Application from OCI repo, then Argo will download and build Helm Chart correctly. But when it is depended in some parent Chart, then Argo cannot download it during build and throw this error. Project hase assigned this repository as source repository. This is what my helm dependenci definition looks like And this is what my repository secret for Argo looks like
Is there anyone still working on this problem? And can it help with debugging and fixing? |
I just wanted to add my two-cents since I saw this and was almost ready to give up hope. I was able to get this working with v2.8.4+c279299, although it was very subtle and I don't have the minimum test case yet. Just a check list:
To debug whether things were working or not, I actually just created an application pointing to the Library Chart.
Even though the repoUrl pointed to a library chart the errors that I got were MUCH more transparent the the random 401 from At the end of the day, if everything is working, the application should fail with At that point, after 4 hours my other application in the same project that referenced that library chart was able to run. Something odd: I noticed at some point I saw error messages saying I couldn't access "quay.io/repository//SUB>" and I'm not sure where VERY IMPORTANT: Also something that is very subtle that when I was trying to reproduce this, you need to do a Hard Refresh as mentioned in #12039, otherwise your changes will take no effect. |
I'm facing the same issue as originally described by @jascsch. We're using Google Artifact Registry, which only supports OCI. The application points to a git repository with a helm chart. This helm chart references a dependency with the prefix I've connected the helm repo as helm OCI registry in Argo CD. I tried both the base registry and the full path. Both registries show as successfully connected in the UI. When Argo CD tries to pull the dependency chart, it throws a Is there any simple workaround without switching to an application manifest? In my opinion, this is quite a severe bug. |
We are also still facing this issue, but we are now forced to upgrade Argo version from 2.7.7 to latest. I will focus more to this issue in few weeks and I will try to fix this and PR it here. IMHO this is bug and i'm shocked that almost no one is facing it. |
After hours I was finally able to resolve it. This issue helped my find the right config #10823 The key is to not configure the full path of the registry as the repo URL. Any base path should work. So instead of Second, it's hard to get the authentication right. In my case setting the username to It turns out that Argo CD always shows a Helm OCI registry as successfully connected, even when the authentication fails, which is super confusing. |
I'm not 100% sure about this but it seems that you also need to set the name equal to the repo URL for it to work. |
Describe the bug
You cannot create a new app which uses a GIT repo URL as a source and use a sub helm chart with an OCI Registry.
The Chart.yaml looks like this:
To Reproduce
See screenshot
Expected behavior
The sub helm chart needs to work with the OCI registry like before with a chart repo URL --> https://registry.app.corpintra.net/chartrepo/les
Screenshots
Version
v2.6.1+3f143c9
Logs
Unable to create application: application spec for ass is invalid: InvalidSpecError: Unable to generate manifests in env: rpc error: code = Unknown desc = helm dependency build failed exit status 1: Error: could not download oci://registry.app.corpintra.net/les/les-service: failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://s3-edc.emea.svc.corpintra.net/edcs3dhccaasprodb/docker/registry/v2/blobs/sha256/24/2431b3f41cb1c457ca3828492ab626f446096b6205e297694a913e8e534416c2/data?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=7cbc312f5c926f7fc1ad%2F20230113%2Feddhcbuckets%2Fs3%2Faws4_request&X-Amz-Date=20230113T153231Z&X-Amz-Expires=1200&X-Amz-SignedHeaders=host&X-Amz-Signature=e9c0e391e10a05307d4a27286ccec4c46553f5fba7fb4751a355fefbdec7c549": Forbidden
The text was updated successfully, but these errors were encountered: