Commit Graph

377 Commits

Author SHA1 Message Date
Ashish Ranjan
cc496afbf1 read redis lock options from config to support custom TTL & timeout (#1791)
* read redis lock options from config to support custom TTL & timeout

* fix test

* fix typo

* downgrade to bsm/redislock@v0.7.2 to prevent usage of beta go-redis version

* revert test changes

* return error for invalid lock config

* update config parsing test

* udpate docs to include redis lock config

* fix test

* set default max retries to 10

* reduce default redis lock timeout to 15s

* update default TTL to 15mins

Co-authored-by: Manu Gupta <manugupt1@gmail.com>
2022-09-28 22:53:06 -07:00
Zhongpeng Lin
b8d7c4aa79 Register HTTP client views for stats (#1787) 2022-09-22 21:04:51 -07:00
Ashish Ranjan
7d67ee76ce fix default s3 credentials set as anonymous (#1789) 2022-09-15 18:30:54 -07:00
Ashish Ranjan
33777c5cc4 copy context before starting stash operations to prevent ctx cancellations (#1790)
* copy context before starting stash operations to prevent ctx cancellations

* add comment about context cancellation
2022-09-15 11:03:59 -04:00
Rob Prentiss
3fab46905e Resolve memory leaks when using Minio storage (#1777)
When using Minio storage, memory usage constantly increases. After
profiling, it appears that memory usage is building in the minio client,
and not being released.

Finding a similar issue listed in the minio/warp project, I found that
they fixed the issue by closing the *minio.Object instances. In the
athens usage, the minio.Object instances are never closed after reading
the data from them.

This adds deferred 'Close' calls in the 'storageImpl.Info' and
'storageImpl.GoMod' functions so that the objects may be released and
garbage collected. The 'storageImpl.Zip' function does not use defer,
since it has the object embedded into the return value, so the 'Close'
is only called on error.
2022-06-06 19:04:33 -04:00
Manu Gupta
be203340be Remove deprecated GOPROXY in favor of GoBinaryEnvVars (#1759) 2022-02-18 10:24:44 -08:00
Manu Gupta
3a40029ec8 Revert retries in redis-flake as builds are failing again. (#1758) 2022-02-16 12:31:47 -08:00
Manu Gupta
67bb68c45d Update etcd (#1756) 2022-02-15 09:10:51 -08:00
Manu Gupta
533035c40c fix flake on redis-sentinel by depending on redis container / step. (#1748)
* fix: flake on redis-sentinel by depending on redis container / step.

Signed-off-by: Manu Gupta <manugupt1@gmail.com>

* Add retries in an attempt to reduce the number of flakes

Also; update go-redis.

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2022-02-14 14:01:29 -08:00
Rob Lee
918ddfb59a Replace golint with go vet#1743 (#1744)
* Set GO111MODULE to auto in golint script– #1743

As mentioned in #1743 the Go modules environment flag is set to `off`
in the script which appears to cause a warning message for each module
of the codebase that it is "not in GOROOT".

Set to `auto` as this allows the same build to be run the original way
should someone choose to delete the `go.mod` file from the project root.

* Remove redundant code – golint script

Go 1.17 ignores `GO111MODULE` and there are no directories in the
project root called `mock`.

* Replace `golint` with `go vet`

`golint` is deprecated (and frozen) replace with the current `go vet`.
This reported one issue on `main` branch:
```pkg/stash/with_etcd.go:33:28:
loop variable ep captured by func literal```

Fixed loop variable capture with extraction to parameterised anonymous
function passed loop variable and passed in to `errgroup.Go` call.
2021-12-09 22:03:48 -08:00
Abhay Krishna
38a3039a21 Fix typos and comments in config.toml (#1739)
Co-authored-by: Marwan Sulaiman <marwan.sameer@gmail.com>
2021-12-03 01:38:09 -05:00
Aaron Schlesinger
2a8b8eed75 Fixing panic with S3 storage (#1730)
Signed-off-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2021-10-01 13:11:33 -07:00
Marwan Sulaiman
a724fcdddc Update mongo client to address CVE (#1728) 2021-08-18 22:49:44 -04:00
Zhongpeng Lin
4abe908a58 Using directory as prefix for S3 (#1720)
* Using directory as prefix for S3

* address comments

Co-authored-by: Marwan Sulaiman <marwan.sameer@gmail.com>
2021-08-18 21:06:51 -04:00
Marwan Sulaiman
151c4922fb Enable Athens to work in offline mode (#1717)
Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2021-08-18 19:09:14 -04:00
Zhongpeng Lin
9b505e9ee0 Use actual content length when it is not available in headers (#1719)
* Use actual content length when it is not available in headers

* Setting Content-Length before writing body

* Using zero value as unknown size
2021-06-18 10:57:46 -04:00
Aaron Schlesinger
1acdf17a4a Reverting passthrough auth (#1700)
* Reverting PR 1650

https://github.com/gomods/athens/pull/1650 was a big change to the
authentication/authorization code, which we have decided to pull
out and potentially move into a separate process/project

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* removing commented, unused code

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* removing more commented, unused code

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* removing more unused code

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
2021-03-11 11:28:15 -08:00
Marwan Sulaiman
6ef4a793c3 Add Content-Length to .zip requests (#1681)
* Add Content-Length to .zip requests

* pr comments

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2020-11-24 10:00:47 -05:00
Abhisek Banerjee
46b68e4da8 Support IRSA for S3 bucket (#1673) 2020-11-20 11:24:54 -08:00
Marwan Sulaiman
dfb7887080 Allow Athens to Propagate Authentication to Mod Download (#1650)
* Allow Athens to Propagate Authentication to Mod Download

* update readme

* add pattern matching to auth propagation

* Propagate authentication to pre declared static host

* quote redis test

* fix flaky redis error message

* fix config tests

* fix config tests

* Update config.dev.toml

Co-authored-by: Ted Wexler <ted@stuckinacan.com>

* gofmt

Co-authored-by: Ted Wexler <ted@stuckinacan.com>
2020-07-30 17:06:53 -04:00
Marwan Sulaiman
81906b918f pkg/requestid: add Request ID to Athens requests and logs (#1655)
Co-authored-by: Ted Wexler <ted@stuckinacan.com>
2020-07-27 12:37:36 -04:00
Marwan Sulaiman
4ad3dd1135 pkg/config: make test failures output diff instead of %+v (#1652)
Co-authored-by: Ted Wexler <ted@stuckinacan.com>
2020-07-27 12:28:26 -04:00
Marwan Sulaiman
46f176482f pkg/stash: fix redis failing test (#1656) 2020-07-27 12:17:08 -04:00
Marwan Sulaiman
d6f06d0302 index: gracefully handle duplicate module indexes (#1645)
* index: gracefully handle duplicate module indexes

* fix memory impl
2020-07-03 10:42:51 -04:00
Keith Burdis
78101d3694 Support downloadURLs with paths (#1640)
* Support downloadURLs with paths

* Always join URL paths with forward slashes
2020-06-28 16:07:05 -04:00
Marwan Sulaiman
ef15c3458b Allow users to specify the module fetcher's temporary directory (#1636) 2020-06-25 17:15:15 -04:00
Marwan Sulaiman
52934cfa46 implement /index endpoint (#1630)
* implement /index endpoint

* rename to Module to Path
2020-06-24 14:29:30 -04:00
Marwan Sulaiman
f01c645305 pkg/middleware: add tracing to ValidationHook (#1627) 2020-06-15 16:34:24 -04:00
Marwan Sulaiman
90af973c3d pkg/storage/external: remove debug lines (#1606) 2020-04-20 09:38:47 -04:00
Marwan Sulaiman
3c4db4ce86 pkg/storage: add External implementation (#1587)
* pkg/storage: add External implementation

* fix conflicts

* use newly instantiated client
2020-03-27 13:35:52 -04:00
Marwan Sulaiman
0bb95c7351 pkg/storage: make Checker optional in storage.Backend (#1580)
* pkg/storage: make Checker optional in storage.Backend

* pass storage
2020-03-18 19:07:00 -04:00
Ted Wexler
939e695526 Adds redis sentinel support (#1554)
* Adds redis sentinel support

Fixes #1553

* Fix redis-sentinel test hostnames

* Fix redis master name again

* Fix redis sentinel port in tests

* Upgrade the redis client

* Rmoeve accidental config change

* Fix default config

* Addresses review comments

* Add documentation on single flight mechanisms

* Fix spelling issues

* Fix formatting

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
2020-03-17 13:04:37 -07:00
Matthew Plachter
71c57ef7ee add config options for redis password (#1545)
* add config options for redis password

* redis password test and failure test

* changed redis name and made a minimal redis.conf

add drone volume

volume fix

remove volumes from drone.

repoint redis path

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Co-authored-by: Marwan Sulaiman <marwan.sameer@gmail.com>
2020-02-25 16:18:04 -08:00
vapod
4530a58359 Add forcepathstyle config for s3 (#1533)
* Add forcepathstyle config for s3

* Bump chart version

* Fix typos in s3 config struct
2020-02-10 16:03:25 -08:00
Marwan Sulaiman
ba40b8f76d config: use semi-colon instead of comma to separate ATHENS_GO_BINARY_… (#1531)
* config: use semi-colon instead of comma to separate ATHENS_GO_BINARY_ENV_VARS

* document behavior
2020-01-24 10:20:37 -05:00
Marwan Sulaiman
34f55365a2 always use request logging middleware (#1522)
* always use request logging middleware

* reads better

* rm http-url as it is redundant

* gopls being redundant

* add color name
2020-01-20 18:25:48 -05:00
Mark Dodgson
f76ca00665 Display warning log message if validation fails (#1517)
* Display a warning log message if the validation response fails with a valid reason

* provide a reason and description for failed validation

* added unknown to description

* Allow a successful response to carry a message

* tidy up

* formatting

* Simplified the message response

* updated based on latest comments

* no need to export struct

* suggested method rename

Co-authored-by: Marwan Sulaiman <marwan.sameer@gmail.com>
2020-01-20 13:26:17 -05:00
Marwan Sulaiman
0b649557bb stasher: log when a stash event occurs (#1518)
* stasher: log when a stash event occurs

* rm space
2020-01-09 15:15:37 -08:00
Aleksandr Razumov
5b194688a0 storage/s3: add custom endpoint url support (#1467) 2019-12-05 13:04:03 -08:00
Aaron Schlesinger
707b7b5413 Fixing the build failures from a missing GCS Key (#1480)
* Fixing the build failures from a missing GCS Key

Accidentally introduced in https://github.com/gomods/athens/pull/1428

* Adding a TODO to the drone build

* adding a step to test the Athens server startup

* Adding the JSONKey back to the default config

* use temporary image

* Switching back to the old env var for the GCS JSON Key

cc/ @marwan-at-work

* removing the ServiceAccount. we want to stick with JSONKey

* reverting to original key fetching code

* fixing build err

* bumping chart ver
2019-12-05 10:49:56 -08:00
Aditya Sharma
e0ec46b221 Add GCS to helm chart (#1428)
* Add GCS to helm chart

* base64 encode serviceAccount in the chart

* Standardize GCP Service Account references

* pipe storage.gcp.serviceAccount to quote
2019-12-03 18:28:07 -08:00
Jens Hausherr
f578472490 Unescape key before attempting to split module and version (#1457)
* Unescape key before attempting to split module and version

* PathUnescape key in minio/lister

* use unescaped path for module

* Compare againse escaped key

* Exctract common key parsing from cataloger and lister
2019-11-25 16:27:25 -08:00
David Farrell
db84b52159 Invoke envOverrides before checkFilePerms (#1441)
* Invoke envOverrides before checkFilePerms

* Reverts changes to cmd/proxy/Dockerfile
2019-11-07 14:27:29 -05:00
Aleksandr Razumov
790c74588a pkg/module: set only present environment variables (#1399)
* pkg/module: set only present environment variables

* pkg/module: apply new env variable logic to all keys
2019-10-16 13:13:07 -07:00
Chris Mills
82ecff968f Correct issue with continuation token failures on deploy (#1415)
* Add working image for minio

Between RELEASE.2019-09-26T19-42-35Z and RELEASE.2019-10-02T21-19-38Z
there's an issue with continuation tokens that's caused #1414 and #1413
to fail.

Signed-off-by: Chris M <me@christophermills.co.uk>

* Undo docker changes, update minio to v6

* Narrow issue down to catalog compliance test

Signed-off-by: Chris M <me@christophermills.co.uk>
2019-10-08 16:54:20 -04:00
Rob Prentiss
ed66d85f3f Use glob matching for package paths (#1409)
- Match the behavior of GOPRIVATE/GONOPROXY/GONOSUMDB
2019-10-02 08:45:58 -04:00
kmhagan
90b3c1dc97 Allow EnvList.Validate to have multiple = for GODEBUG var (#1397)
* Allow EnvList.Validate to have multiple = for GODEBUG var

* Added tests for EnvList GODEBUG.

* Made EnvList.Validate less strict, just checks for existence of one equal sign
2019-09-30 14:59:02 -04:00
psy-core
97a2df4414 fix proxy not work when lower case is unset. (#1332)
* fix proxy not enable when proxy lower is unset.

* Update prepare_env.go

format blankspace
2019-09-26 17:44:40 -05:00
Wang Qilin
8969e690ea update import path and go mod of opencensus (#1392) 2019-09-24 09:39:23 -04:00
Marwan Sulaiman
298c6cd74d cmd/proxy/actions: pass NoSumPatterns to GoGetFetcher (#1391)
* cmd/proxy/actions: pass NoSumPatterns to GoGetFetcher

* add gosum unit tests

* upgrade appveyor to 1.13

* fix test typo

* check appveyor version

* AppVeyor has no 1.13

* use logger
2019-09-23 12:47:40 -04:00