-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
kustomize 3.5.5 breaks installing ArgoCD from URL #2538
Comments
May be related to #2494 |
likely a dupe of #2444. Fix is in #2537, which is in v3.6.1 @Shell32-Natsu FYI |
This doesn't seem resolved:
|
And I cannot seem to re-open this issue either. |
I think the issue is different from #2444. Kustomize has changed to use go-getter by default. From the documentation of go-getter:
So only |
Re-opening so that we can triage it. /reopen |
@seans3: Reopened this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@Shell32-Natsu That does seem to make a difference. I'll try to make this change to upstream argo-cd install docs so that it's hopefully avoided for others. Though I imagine this might be an issue for other remote bases/overlays that people could be using. |
Thanks @chancez and @seans3, and thanks @Shell32-Natsu for taking this on. |
I am encountering this issue on 3.6.1, but I am not using E.g., where kustomize build my-github-org/my-repo/dev but this succeeds: kustomize build https://my-github-org/my-repo/dev This was not previously (before 3.6.1) the case. |
@jameshochadel Hi James, thanks for the feedback. It looks like this is a go-getter issue. I have created issue here. For your case, the problem is go-getter has bug with sub directory. Adding And the reason for why @chancez can fix the issue by replace I am surprised that go-getter has these problems. I think we may need to clearly document the url pattern if we want to continue using go-getter. |
please provide
|
Here is a repo that reproduces the issue: https://github.com/jameshochadel/kustomize-issue-2538 Instructions are included in the readme (just running I think that covers everything.
|
@jameshochadel My speculation was correct. In |
See argoproj/argo-cd#3814 Kustomize issue: kubernetes-sigs/kustomize#2538 go-getter issue: hashicorp/go-getter#257
See argoproj/argo-cd#3814 Kustomize issue: kubernetes-sigs/kustomize#2538 go-getter issue: hashicorp/go-getter#257
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
I think we're talking about 2 different things. The problem I'm trying to highlight is that when you have a resource like What I instead usually want is to copy the whole repo I want to clarify because it all seems by chance that any of this works at all. Using The way I see it, there are a couple ways forward here:
As it is now, saying that kustomize uses |
Since go-getter has some annoying issues like this, I am happy to remove it from kustomize temporarily. What I am not sure about is the performance reduction that caused by calling external git exec. And also user will need to have a git executable in they PATH. Perhaps using a go git library like go-git is better. |
I'm not proposing getting rid of I think it would be better to aim for a proper fix that is consistent. I believe that requires clarifying the semantics of what should happen when you have remote resources and what happens with parent imports. |
I did a bit more digging into this and I might be more persuaded to just drop
This means that even with #3244, the following urls will still be broken
There can obviously be more variations of this, and this doesn't cover the special handling kustomize has for azure and AWS repositories. It has been suggested that the special handling can be made into a Where I see that @yujunz added |
A brief history of go-getter support
In fact go-getter can support git clone. But we tried to keep backward compatibility to old cloner URLs when implementing step 4. I think that could be one reason of the chaos we are facing. Dropping go-getter will probably break the backward compatibility to current version. Let me have a look of current implementation to see what is the best way out. |
It was tested against the examples in https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md#url-format . But I roughly remembered the example tests were once excluded from CI. Not sure if it is covered now or not. See also some history conversion in the two PRs for the problems go-getter tries to resolve and the tradeoffs |
Aside from archive downloads and urls that use the Either way though, I do think kustomize needs to be clear what the supported urls are. If the official position is that only As a user, I just want to know what url formats are supported and that I can reasonably expect to never break and that kustomize will immediately fix if broken. |
Yeah. It should be documented and covered by integration test. We may need an exhaustive list in https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md#url-format which is covered by https://github.com/kubernetes-sigs/kustomize/blob/master/hack/testExamplesAgainstKustomize.sh |
The test seems triggered by https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes-sigs/kustomize/kustomize-presubmit-master.yaml before submit any PR to master. |
I just realized the tests in remote build were skipped because of an extra blank line... Proposed a fix in #3253 |
I had this issue on ArgoCD 2.0.3 with Kustomize 3.9.4 I solved it by just replacing the base url double slashes kustomization.yaml:
EDIT: upgrading Kustomize to 4 in argocd-repo-server also solves this problem - I include this patch in my kustomizaton.yaml to get a specific version of Kustomize now. |
Are you sure it's not working for kustomize 4.1.3? I tried it locally and both urls work. Pre version 4, you might be hitting the go-getter path which is known to be broken for certain urls. |
It worked locally in Kustomize 4.1.3 but not in ArgoCD, even when I upgraded the Kustomize version inside the container via an init container shared emptyDir as seen in the patch I published above. I even exec'd into the argocd-server container and did a Kustomize version and it showed 4.1.3 |
I think evaluation happens in argocd-repo-server instead. Which is probably still using the old kustomize. |
Yeah I just woke up this morning and realized that! Will adjust the patch... I knew something was off. Updated my patch and comment above with both solutions. |
/remove-lifecycle frozen Closing since this is about a very old version of Kustomize, and comments indicate it was caused by a dependency we no longer have. |
@KnVerey: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Kustomize version
Error: accumulating resources: accumulation err='accumulating resources from 'github.com/argoproj/argo-cd/manifests/ha/cluster-install?ref=v2.5.2': evalsymlink failure on ...
Error: accumulating resources: accumulation err='accumulating resources from 'https://github.com/argoproj/argo-cd/manifests/ha/cluster-install?ref=v2.5.2': URL is a git repository': hit 27s timeout running '/usr/bin/git fetch --depth=1 origin v2.5.2' |
With kustomize 3.5.4, the following command succeeds and produces the YAML as expected:
With kustomize 3.5.5 I now get the following error when running the command:
The text was updated successfully, but these errors were encountered: