-
Notifications
You must be signed in to change notification settings - Fork 508
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
Make the proxy redirect to olympus on cache misses #349
Comments
Mind if I take a stab at this? Or is there already some work underway to get this working? |
Afaik it is up for grabs. The private list is in development still. #309 so that can either be added before merge or in another PR depending on which finishes first. |
Yup it is up for grabs! @marwan-at-work has looked into how th redirects
work on the client so he might have some good ideas here
…On Mon, Jul 30, 2018 at 22:17 Rob j Loranger ***@***.***> wrote:
Afaik it is up for grabs. The private list is in development still. #309
<#309> so that can either be added
before merge or in another PR depending on which finishes first.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#349 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAEU0QZxOZaOMg_QBGCyYkB5ypurhpO8ks5uL-hpgaJpZM4Vk11s>
.
|
@rchakra3
Things to consider:
CC: @arschles @robjloranger @michalpristas @marpio (let me know if this hits the right architecture/business-requirements/etc) |
There will be a configurable list of private modules #309 which should be checked as well together with the blacklist. |
Would it make sense for Olympus to redirect go once again directly to the CDN if the module is cached there? |
@marpio I keep forgetting, what's the difference between Olympus and CDN? Is CDN the backend storage for Olympus? |
@marwan-at-work yes, that is my understanding. CDN exposes all the endpoints required be download protocol though. |
@marpio how can we make say GCP storage expose DP endpoints? I might be not getting this :) |
@marwan-at-work I mean for every module stored in the CDN there should be: https://mycdn.com/gomods.io/my/module/@v/list Sorry if I wasn't clear. |
doesn't that make the CDN exactly the same as Olympus? |
I guess if the module@version isn't in the CDN then Olympus would have to fetch it and save it there. |
I think it still makes Olympus/CDN exactly the same, at least the way I see it. In any case, this issue is regarding redirecting from Proxy -> Olympus which is already a considerable amount of work. So we can safely put Olympus -> CDN stuff to the side. But would like to discuss it more separately |
Olympus is storing its data into storage and CDN should work on top of that automatically if configured. |
Totally underestimated my workload this past week. I'm going to get started on this now. Based on the expected behavior described by @marwan-at-work above, the additional behavior to be implemented for this issue is:
and once #309 is done also incorporate the private modules filter and
4b seems to be the current behavior (I'm assuming by storage you meant the goget fetcher but I might be wrong?). From reading through the current code it looks like this will involve registering Handlers for the proxy that (in the case of the module not existing in the proxy cache/storage):
At first glance it would seem we'd probably not use code in Just wanted to make sure all of that makes sense? |
Check #406 to see how upstream download protocol is passed (not directly solved in this PR but it's visible there) athens/cmd/proxy/actions/app_proxy.go Line 25 in 8bb5a40
with cache filled synchronously. same goes for olympus. what needs to be done is to make proxy talk to olympus. in few steps:
We might think of two different strategies in step 1: But that's just me speculating and will be most likely done in a followup PR |
one more option would be to use Olympus download protocol as an upstream for Proxy and do everything Sync |
Waiting on a discussion of #416 before settling on an implementation for now, but just wanted to throw some ideas out there to discuss. The long-term implementation will need some logic to decide where to asynchronously download from (VCS or Olympus) and what tags to store in the proxy cache (everything or just tagged releases like we discussed on the dev call last Thursday) It might make sense to actually have an implementation in place that adds items to the proxy |
As of #772, we're not going to try and build a registry for the time being, so I'm closing this issue |
If the proxy does not have module@version on its exclude list and not on its private module list, and it doesn't have it in its cache, it should redirect the go CLI to olympus
Continuation of #241
The text was updated successfully, but these errors were encountered: