carvel-dev / carvel-dev/vendir
Support fetching artifacts by OS & architecture
- Dominant language
- Go
- Stars
- 399
- Forks
- 73
- Avg merge
- 2h 53m
- Merged PRs (30d)
- 2
Description
**Describe the problem/challenge you have**
I want my project to run on different platforms and so depending on which platform I am building for I want to download different artifacts.
For example, [this vendir.yml](https://github.com/vmware-tanzu/carvel-vendir/blob/d115f5e139311531fcc6843eeca2921299edf751/examples/github-release/vendir.yml#L52) pulls in `kubectl` for linux/amd64.
**Describe the solution you'd like**
I would prefer a solution where I don't have to download artifacts for *all* platforms, so maybe this needs to be an argument that's passed to `vendir sync`.
For the example given above it seems like we could allow this to work:
```yaml
url: https://dl.k8s.io/release/{tag}/bin/{os}/{arch}/kubectl
```
**Anything else you would like to add:**
This probably only makes sense for certain kinds of artifacts: GitHub releases, HTTP maybe.
---
Vote on this request
This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.
👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"
We are also happy to receive and review Pull Requests if you want to help working on this issue.
Contributor guide
Research direction
Start with the linked examples/github-release/vendir.yml and the vendir sync entry point, then trace how GitHub release and HTTP artifacts are selected. Done means the supported artifact types can select the requested OS and architecture without downloading artifacts for every platform.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, go
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100