Commit graph

4714 commits

Author SHA1 Message Date
Milos Gajdos
5fa926a609
Enable pushing empty blobs
This is an edge case when we are trying to upload an empty chunk of data using
a MultiPart upload. As a result we are trying to complete the MultipartUpload
with an empty slice of `completedUploadedParts` which will always lead to 400
being returned from S3 See: https://docs.aws.amazon.com/sdk-for-go/api/service/s3/#CompletedMultipartUpload
Solution: we upload an empty i.e. 0 byte part as a single part and then append it
to the completedUploadedParts slice used to complete the Multipart upload.

Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com>
2023-03-27 10:11:07 +01:00
Milos Gajdos
ad6249fa92
Merge pull request #3681 from Jamstah/api-doc-fix
Fix API doc parameter placeholder: last
2022-11-07 15:34:07 +00:00
Milos Gajdos
08764d51bf
Merge pull request #3680 from Jamstah/env-var-clash
Raise a specific error for env var parsing issues
2022-11-07 11:26:09 +00:00
Hayley Swimelar
e3509fc1de
Merge pull request #3635 from milosgajdos/make-s3-driver-delete-faster
Delete S3 keys incrementally in batches
2022-11-04 16:56:41 +01:00
Hayley Swimelar
52d948a9f5
Merge pull request #3766 from thaJeztah/gofumpt
format code with gofumpt
2022-11-04 12:19:53 +01:00
Milos Gajdos
526d594ef6
Merge pull request #3770 from Jamstah/log-stderr-doc
Update doc to reflect that logs go to stderr
2022-11-03 22:19:51 +00:00
Sebastiaan van Stijn
e0281dc609
format code with gofumpt
gofumpt (https://github.com/mvdan/gofumpt) provides a supserset of `gofmt` / `go fmt`,
and addresses various formatting issues that linters may be checking for.

We can consider enabling the `gofumpt` linter to verify the formatting in CI, although
not every developer may have it installed, so for now this runs it once to get formatting
in shape.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-11-03 22:48:20 +01:00
James Hewitt
6dbb55ada5
Update doc to reflect that logs go to stderr
Closes #2855

Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
2022-11-03 16:37:00 +00:00
Hayley Swimelar
ebfa2a0ac0
Merge pull request #3768 from thaJeztah/http_consts
use http consts for request methods
2022-11-03 13:52:52 +01:00
Milos Gajdos
6a2594c5b0
Merge pull request #3754 from ndeloof/accept-encoding
Revert "registry/client: set Accept: identity header when getting layers
2022-11-03 11:06:17 +00:00
Sebastiaan van Stijn
f9ccd2c6ea
use http consts for request methods
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-11-02 23:31:47 +01:00
Milos Gajdos
ebc4234fd5
Delete S3 keys incrementally in batches
Instead of first collecting all keys and then batch deleting them,
we will do the incremental delete _online_ per max allowed batch.
Doing this prevents frequent allocations for large S3 keyspaces
and OOM-kills that might happen as a result of those.

This commit introduces storagedriver.Errors type that allows to return
multierrors as a single error from any storage driver implementation.

Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com>
2022-10-30 19:10:24 +00:00
Milos Gajdos
7f9f86c411
Merge pull request #3755 from wy65701436/fix-getstatus 2022-10-28 08:20:15 +01:00
Wang Yan
bad5dcb602 fit get status issue
1, return the right upload offset for client when asks.
2, do not call ResumeBlobUpload on getting status.
3, return 416 rather than 404 on failed to patch chunk blob.
4, add the missing upload close

Signed-off-by: Wang Yan <wangyan@vmware.com>
2022-10-26 23:33:39 +08:00
Milos Gajdos
c47a966fde
Merge pull request #3727 from thaJeztah/bump_x_net
vendor: golang.org/x/net v0.0.0-20220906165146-f3363e06e74c
2022-10-21 10:26:57 +01:00
Nicolas De Loof
9c04d0b30a
Revert "registry/client: set Accept: identity header when getting layers"
This reverts commit 16f086a0ec.

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
2022-10-20 14:44:10 +02:00
Milos Gajdos
fb2188868d
Merge pull request #3365 from brackendawson/3122-remove-workaround
Remove workaround from 2.1.1 for faulty 2.1.0 manifest links
2022-10-19 09:04:24 +01:00
Wang Yan
ff42b8bf8e
Merge pull request #3748 from gliptak/patch-1
Add Go 1.19 to GHA
2022-10-17 14:33:46 +08:00
Gábor Lipták
8cc5b4f5aa
Add Go 1.19 to GHA
Signed-off-by: Gábor Lipták gliptak@gmail.com
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
2022-10-09 16:52:41 -04:00
Milos Gajdos
78b9c98c5c
Merge pull request #3689 from aaronlehmann/inmemory-descriptor-cache-lru
registry/storage/cache/memory: Use LRU cache to bound cache size
2022-09-07 16:52:24 +01:00
Aaron Lehmann
e36cb0a5d8 registry/storage/cache/memory: Use LRU cache to bound cache size
Instead of letting the cache grow without bound, use a LRU to impose a
size limit.

The limit is configurable through a new `blobdescriptorsize` config key.

Signed-off-by: Aaron Lehmann <alehmann@netflix.com>
2022-09-07 07:20:06 -07:00
Sebastiaan van Stijn
f9dee9dc90
vendor: golang.org/x/net v0.0.0-20220906165146-f3363e06e74c
Update to the latest version that contains a fix for CVE-2022-27664;
f3363e06e7

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-09-06 23:09:44 +02:00
Milos Gajdos
0122d7ddae
Merge pull request #3724 from Littlemoon917/main
fix all json syntax error in error api spec
2022-09-02 13:51:04 +01:00
Littlemoon917
e24be4e834 fix all json syntax error
Signed-off-by: Littlemoon917 <Littlemoon917@users.noreply.github.com>
2022-09-02 16:40:01 +08:00
Wang Yan
3413bf8e14
Merge pull request #3682 from Jamstah/contributing-review
Review contributing for Docker references
2022-08-22 11:44:24 +08:00
Milos Gajdos
bc6b7455cb
Merge pull request #3687 from Jamstah/add-build-tags
Add build tags to BUILDING.md
2022-08-20 11:24:08 +01:00
Milos Gajdos
cec2cad801
Merge pull request #3706 from kaovilai/s3-no-hostport
configuration: use "fake" values for tests
2022-08-18 18:11:35 +01:00
Tiger Kaovilai
567158c365 configuration: use "fake" values for tests
These tests don't validate if options are valid for the storage-driver,
nor do they test if the storage-driver itself is valid. However, the tests
were using actual values (such as s3) and options (such as "region") which
may lead to the conclusion that it's also testing validity of those values.

This patch replaces the test-values with non-existing driver-names and
options to make it more clear these are fake values.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Signed-off-by: Tiger Kaovilai <tkaovila@redhat.com>
2022-08-18 10:23:17 -04:00
Milos Gajdos
6c237953cb
Merge pull request #3711 from aaronlehmann/request-with-context
Use http.NewRequestWithContext for outgoing HTTP requests
2022-08-16 16:03:28 +01:00
Milos Gajdos
1db54ecaf6
Merge pull request #3688 from Ailuridae/patch-1
Fix Grammar Mistake
2022-08-16 15:25:38 +01:00
Aaron Lehmann
fbdfd1ac35 Use http.NewRequestWithContext for outgoing HTTP requests
This simple change mainly affects the distribution client. By respecting
the context the caller passes in, timeouts and cancellations will work
as expected. Also, transports which rely on the context (such as tracing
transports that retrieve a span from the context) will work properly.

Signed-off-by: Aaron Lehmann <alehmann@netflix.com>
2022-08-10 10:38:30 -07:00
Milos Gajdos
26163d8256
Merge pull request #3683 from aaronlehmann/dont-recreate-router
Do not recreate mux router for each incoming request
2022-07-29 17:30:34 +01:00
Milos Gajdos
4bf3547399
Merge pull request #3489 from aojea/ipv6_domains
Ipv6 registries
2022-07-25 14:31:11 +01:00
Milos Gajdos
df14ebe142
Merge pull request #3644 from crazy-max/cleanup-ci
ci: cleanup ci workflow
2022-07-21 09:35:39 +01:00
CrazyMax
0e17e54091
dockerfiles: formatting
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-20 16:44:31 +02:00
CrazyMax
b066451b40
dockerfiles: set ALPINE_VERSION
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-20 14:19:39 +02:00
CrazyMax
7e546784a4
ci: move test step to build workflow and remove ci workflow
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-20 14:18:27 +02:00
CrazyMax
1a905ab966
ci: git validation target
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-20 14:18:27 +02:00
CrazyMax
8b2c54bf57
ci: remove dco check (dco bot already does this)
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-20 14:10:24 +02:00
Milos Gajdos
87941225ed
Merge pull request #3693 from crazy-max/update-xx
Update to xx 1.1.1
2022-07-20 11:24:25 +01:00
CrazyMax
52a88c596b
Update to xx 1.1.1
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2022-07-20 01:38:26 +02:00
Milos Gajdos
b655f9dda4
Merge pull request #3692 from aaronlehmann/get-request-in-example
Change GET in example request to POST
2022-07-18 17:08:15 +01:00
Aaron Lehmann
c3074d095e Change GET in example request to POST
The example shows a `GET` request to `/callback`, but it looks like it's
intending to show the `POST` request made by the registry to a
notificaitons endpoint. Unless I'm missing something, no `GET` request
should be involved.

Signed-off-by: Aaron Lehmann <alehmann@netflix.com>
2022-07-18 08:39:47 -07:00
Maurice Sotzny
3801e37d16
Fix grammar mistake
Signed-off-by: Maurice Sotzny <ailuridae@users.noreply.github.com>
2022-07-13 12:38:29 +02:00
James Hewitt
87d9edf770
Add build tags to BUILDING.md
Easier to see what build tags there are and what they are used for.

Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
2022-07-12 14:55:06 +01:00
Aaron Lehmann
853e2e92d8 Do not recreate mux router for each incoming request
(*App).context, called in the HTTP handler on each request, creates a
URLBuilder, which involves calling Router(). This shows up in profiles a
hot spot because it involves compiling the regexps which define all the
routes. For efficiency, cache the router and return the same object each
time.

It appears to be safe to reuse the router because GetRoute is the only
method ever called on the returned router object.

Signed-off-by: Aaron Lehmann <alehmann@netflix.com>
2022-07-08 14:17:17 -07:00
James Hewitt
d5b2f94c7c
Say when a config error is caused by an env var
Without this, the log message for the user indicates a problem with the
yaml file, so identifying the actual error is hard. This change fixes
the output so that the incorrect environment variable is easy to spot.

Fixes #3653

Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
2022-07-08 17:42:19 +01:00
James Hewitt
c895369b77
Review contributing for Docker references
As the project has transitioned from Docker to CNCF, clean up the
contributing.md to reflect that:
- CNCF slack
- CNCF maintainers
- Use with other container tools

Fixes #3550

Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
2022-07-08 13:52:12 +01:00
James Hewitt
9e74396f31
Fix API doc parameter placeholder: last
Last is not an integer, but is the last returned value to start the
pagination from.

Signed-off-by: James Hewitt <james.hewitt@uk.ibm.com>
2022-07-07 12:17:10 +01:00
Milos Gajdos
8857a19487
Merge pull request #3669 from sudo-bmitch/pr-manifest-comment
Fix comment for manifest list
2022-07-02 08:19:10 +01:00