-
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
Athens airgapped mode #1378
Comments
Hi @LukeMauldin - at the moment, Athens tries to fetch the list of versions from storage and from the upstream, and then merge them (here is where it does that) When you do a |
I think it makes sense to add a new configuration option where a "more advanced" Athens admin would "disable using However, I do want to understand your use case a little more...couldn't you just solve this on the client side by doing |
I like the idea of a configuration option to tell Athens to use the packages in storage and not check upstream for completely airgapped scenarios. |
Sorry for the delay @LukeMauldin. In your use-case, when you do the That said, I'm ok with adding an "airgapped" configuration. It would be fairly easy to prevent Athens from looking upstream on the What do you think @marwan-at-work ? |
It should be as simple as just avoiding the UpstreamLister and keep whatever in storage. We can do it in two ways:
I prefer 2 for now since we already have a pretty big config file |
Using the new config options in Athens, I was able to set the GoProxy and GoPrivate variables to get the behavior that I needed. I was able to get it to work for both Go 1.12 and Go 1.13 clients. |
@LukeMauldin that's awesome. Can you share that part of your config? We can add that to the docs |
I would like to run Athens in a completely airgapped mode. I have it setup with disk storage. I use a separate Athens server on a machine with internet access to download modules and then manually transfer the storage directory to the Athens server. This works as long as I specify the exact version in go get. Example:
‘go get -v github.com/foo/bar@v1.0.1’ however if I run ‘go get -v github.com/foo/bar’ then it fails because Athens tries to do a ‘go list -m’ internally which fails due to lack of internet access.
I would prefer for that ‘go list’ command just to return the versions that I have uploaded into Athens for a specific module. If that is not possible, I would at least like to configure it not to make the external calls which will always fail.
I have tried the filtering modes and download mode options but have not been able to get the configuration correct. Is this even possible with the current version?
Using version v0.6.0
The text was updated successfully, but these errors were encountered: