Cannot use the plus sign (`+`) in `git` URLs
Describe the bug
Cannot use the plus sign (+) in git URLs, which is a valid character in semver.
Apparently, this is a known issue (https://github.com/hashicorp/go-getter/issues/108) but it looks stale. I wonder if kustomize could instead do something like URL-encoding these resources before passing them to go-getter.
Files that can reproduce the issue
Example:
$ cat kustomization.yaml
resources:
- [email protected]:foo/bar?ref=1.0.0+1
Expected output
I expect it to pull the remote base and build successfully.
Actual output
$ kustomize build .
Error: accumulating resources: accumulation err='accumulating resources from '[email protected]:foo/bar?ref=1.0.0+1': evalsymlink failure on '/home/alkar/dev/github.com/HavenEngineering/platform-manifests/dev/kube-system/foo/[email protected]:foo/bar?ref=1.0.0+1' : lstat /home/alkar/dev/github.com/HavenEngineering/platform-manifests/dev/kube-system/foo/[email protected]:foo: no such file or directory': git cmd = '/usr/bin/git fetch --depth=1 origin 1.0.0 1': exit status 128
Kustomize version
$ kustomize version
{Version:4.5.7 GitCommit:$Format:%H$ BuildDate:2022-08-12T18:18:43Z GoOs:linux GoArch:amd64}
Platform Linux
Additional context N/A
@alkar: This issue is currently awaiting triage.
SIG CLI takes a lead on issue triage for this repo, but any Kubernetes member can accept issues by applying the triage/accepted label.
The triage/accepted label can be added by org members by writing /triage accepted in a comment.
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.
Hey @alkar I am interested in solving this bug, I would appreciate your help . I am currently looking for resources to understand this bug better and how can i solve it :)
/triage accepted /assign
Has the + sign ever worked in a previous version of kustomize?
If not, then I don't think we want to add support for it now. Kustomize cannot, for license-related reasons, have a direct dependency on go-getter. We support a subset of go-getter syntax for legacy reasons but have no plans to expand it into a full go-getter feature set. A description of kustomize's supported remote URLs are here: https://github.com/kubernetes-sigs/kustomize/blob/master/examples/remoteBuild.md, which recommends against using go-getter style URLs.
If on the other hand, the + has been supported in past releases of kustomize, prior to v4.0.5 when we removed go-getter support, it no longer working would be a regression that we should consider addressing.
FYI @ShivamTyagi12345 the "triage accepted" is for the maintainers to communicate that we would be willing to accept and support maintenance of the feature request.
/triage needs-information
The Kubernetes project currently lacks enough contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle stale - Close this issue with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.
This bot triages un-triaged issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue as fresh with
/remove-lifecycle rotten - Close this issue with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Reopen this issue with
/reopen - Mark this issue as fresh with
/remove-lifecycle rotten - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
@k8s-triage-robot: Closing this issue, marking it as "Not Planned".
In response to this:
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied- After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied- After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closedYou can:
- Reopen this issue with
/reopen- Mark this issue as fresh with
/remove-lifecycle rotten- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/close not-planned
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.