Commit Graph

151 Commits

Author SHA1 Message Date
Samuel Karp
1e3c35bd0d Merge pull request #10488 from dcantah/avoid-realloc
Avoid potential reallocs by pre-sizing some slices
2024-07-22 05:39:19 +00:00
Danny Canter
b41bb6df73 Avoid potential reallocs by pre-sizing some slices
There's a couple spots where we know exactly how large
the destination buffer should be, so pre-size these to
avoid any reallocs to a higher capacity.

Signed-off-by: Danny Canter <danny@dcantah.dev>
2024-07-19 13:05:49 -07:00
Maksym Pavlenko
63b4688175 Use grpc.NewClient instead of deprecated ones
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-07-18 15:26:02 -07:00
Akhil Mohan
300fd770a0 use typeurl funcs for marshalling anypb.Any
Signed-off-by: Akhil Mohan <akhilerm@gmail.com>
2024-07-10 22:26:27 +05:30
Fu Wei
f5f11658c5 Merge pull request #9903 from abel-von/add-update-resource-only
sandbox: Add Update API for sandbox controller
2024-07-01 15:16:21 +00:00
Maksym Pavlenko
686c36ba3c Merge pull request #10385 from dmcgowan/metadata-transactor
Use the transactor interface in metadata
2024-06-26 19:21:41 +00:00
Derek McGowan
8f9607eed5 Use the transactor interface in metadata
The boltdb instance in metadata is only used for getting transactions
and can also be overriden via the context to have a wider control of the
transaction boundary. Using the transactor interface allows callers of
metadata to have more control of the transaction lifecycle.

Since boltdb must be fsync'ed on commit, operations which perform many
database operations can be costly and slow. While providing transactor
via context can be used to group together operations, it does not
provide a way to manage the commit fsyncs more globally.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-06-25 14:24:49 -07:00
Derek McGowan
2f1bf791b9 Cleanup metadata godoc
The godoc should properly show the formatting of the database
structure and sections explaining it.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-06-19 20:16:57 -07:00
Derek McGowan
4770618c7b Merge pull request #10349 from thaJeztah/less_logrus
Remove some logrus imports
2024-06-17 17:42:29 +00:00
Fu Wei
0975ec0908 Merge pull request #10342 from dmcgowan/add-mutex-fallback-host
Adds a mutex to protect fallback host
2024-06-17 13:13:57 +00:00
Sebastiaan van Stijn
ed64e6503a core/mount: remove logrus import
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-17 12:40:18 +02:00
Sebastiaan van Stijn
ea8265fb1e core/transfer/local: remove logrus import
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-06-17 12:37:14 +02:00
Maksym Pavlenko
ab61734e3d Merge pull request #10231 from jedevc/add-get-token-span
auth: add span to FetchToken helpers
2024-06-14 19:33:52 +00:00
Derek McGowan
38e2f00382 Adds a mutex to protect fallback host
Race detector complains about concurrent access such as with Dispatch on
push.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-06-14 10:43:39 -07:00
Abel Feng
15887d7efc sandbox: add update api for controller
Signed-off-by: Abel Feng <fshb1988@gmail.com>
2024-06-14 02:31:51 +00:00
Maksym Pavlenko
e840d1d9cc Merge pull request #10286 from dmcgowan/update-tls-fallback-default-ports
Allow fallback across default ports
2024-06-11 17:11:42 +00:00
Derek McGowan
d23c4b8b53 Use unix and windows specific connection error checks
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-06-05 14:39:57 -07:00
Derek McGowan
02b6c6939f Allow fallback across default ports
When no port is specified, allow falling back from 443 to 80 when
http is specified along with a TLS configuration.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-06-05 14:39:57 -07:00
Maksym Pavlenko
34d3c17ae2 Merge pull request #10291 from ktock/push-platform-conf
Transfer: Push: Enable to specify platforms
2024-06-05 21:28:09 +00:00
Kohei Tokunaga
5611fdd4af Transfer: Push: Enable to specify platforms
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
2024-06-04 10:02:13 +09:00
Maksym Pavlenko
1369112514 Merge pull request #10287 from ktock/transfer-push-dup
Transfer: Push: fix failure on pushing duplicated blobs
2024-06-04 00:11:56 +00:00
Derek McGowan
5d6a94a54c Merge pull request #10243 from dmcgowan/update-shim-manager-config
Cleanup shim manager configuration
2024-06-03 17:22:36 +00:00
Kohei Tokunaga
0e8cc91463 Transfer: Push: fix failure on pushing duplicated blobs
Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
2024-05-31 18:08:45 +09:00
Wei Fu
4123170a39 *: export RemoveVolatileOption for CRI image volumes
Remove volatile option when CRI prepares image volumes.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-05-30 09:56:37 +08:00
Fu Wei
5d2c988a5a Merge pull request #10201 from abel-von/retry-remote-sandbox-wait
sandbox: do retry for wait to remote sandbox controller
2024-05-29 00:00:29 +00:00
Sebastiaan van Stijn
446e63579c remove uses of platforms.Platform alias
Commit 3c8469a782 removed uses of the api
types.Platform type from public interfaces, instead using the type from
the OCI image spec.

For convenience, it also introduced an alias in the platforms package.
While this alias allows packages that already import containerd's
platforms package (now a separate module), it may also cause confusion
(it's not clear that it's an alias for the OCI type), and for packages
that do not depend on containerd's platforms package / module may now
be resulting in an extra dependency.

Let's remove the use of this alias, and instead use the OCI type directly.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-05-28 14:56:30 +02:00
Akhil Mohan
65024e6fd1 core/image: fix usage of "unknown" platform
"unknown" should not be returned as a valid platform
supported by the image

Signed-off-by: Akhil Mohan <akhilerm@gmail.com>
2024-05-23 16:35:44 +05:30
Derek McGowan
ca59fb0b41 Cleanup shim manager configuration
Keep platforms configuration on task manager and add environment config
for shims.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-22 11:06:53 -07:00
Maksym Pavlenko
8b30607170 Provide runtime options in plugin info
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-05-21 11:15:23 -07:00
Justin Chadwell
9831a62d72 auth: add span to FetchToken helpers
Before this, during a call to the docker resolver, we would generate
span wrappers for each HTTPRequest correctly, however, as the docker
resolver reaches out to the docker authorizer, it could create HTTP
requests (for fetching tokens) that would not be wrapped in any span.

This can result in rather confusing traces, e.g. something like:

	remotes.docker.resolver.HTTPRequest
		HTTP HEAD (fetch index, fails with 401)
	HTTP GET (fetch token)
	remotes.docker.resolver.HTTPRequest
		HTTP HEAD (fetch index)
	remotes.docker.resolver.HTTPRequest
		HTTP GET (fetch manifest)

By adding a span into the FetchToken, this trace becomes a little easier
to consume:

	remotes.docker.resolver.HTTPRequest
		HTTP HEAD (fetch index, fails with 401)
	remotes.docker.resolver.FetchToken
		HTTP GET (fetch token)
	remotes.docker.resolver.HTTPRequest
		HTTP HEAD (fetch index)
	remotes.docker.resolver.HTTPRequest
		HTTP GET (fetch manifest)

Signed-off-by: Justin Chadwell <me@jedevc.com>
2024-05-15 15:54:37 +01:00
Maksym Pavlenko
29a6ab8261 Merge pull request #10202 from dmcgowan/unpack-fetch-all
Unpack fetch all
2024-05-11 20:17:27 +00:00
Akihiro Suda
76895c4a31 Merge pull request #10200 from swagatbora90/preserve-unprivileged-flags
Preserve Unprivileged locked flags during remount of bind mounts
2024-05-10 21:21:31 +00:00
Derek McGowan
681a083fab Update unpacker to always fetch all
When a set of layers are provided to the unpacker, then the unpacker
should still fetch them regardless of whether they will be used for
unpack. The image handler filters are responsible for removing content
which is not intended to be fetched. Currently there is no way to use an
unpacker and also fetch all platforms.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-09 21:59:42 -07:00
Abel Feng
58be881890 sandbox: do retry for wait to remote sandbox controller
remote sandbox controller may restart, the Wait call should be retried
if it is an grpc disconnetion error.

Signed-off-by: Abel Feng <fshb1988@gmail.com>
2024-05-10 10:18:42 +08:00
Swagat Bora
0597317759 Preserve CL_UNPRIVILEGED locked flags during remount of bind mounts
Signed-off-by: Swagat Bora <sbora@amazon.com>
2024-05-10 00:31:21 +00:00
Maksym Pavlenko
f690928709 Merge pull request #10187 from dmcgowan/metadata-add-lease-on-prepare
Update metadata snapshotter to lease on already exists
2024-05-08 22:25:11 +00:00
Derek McGowan
8c6183d749 Add lease test for metadata snapshotter
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-07 16:53:20 -07:00
Derek McGowan
c7fb8a9255 Update metadata snapshotter to lease on exists
Currently the metadata snapshotter is not consistently adding keys to a
lease when already exists is returned. When a lease is provided, any
already exists errors should add the relevant key to the lease. It is
not expected that clients must explicitly lease a key after calling
Prepare/Commit.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-07 11:27:05 -07:00
Fu Wei
313fc12b8a Merge pull request #9965 from abel-von/streaming-io
cri: support io by streaming API
2024-05-07 14:22:12 +00:00
Abel Feng
b8dfb4d8f5 cri: support io by streaming api
Signed-off-by: Abel Feng <fshb1988@gmail.com>
2024-05-07 20:26:40 +08:00
Maksym Pavlenko
6c72ad9565 Merge pull request #10171 from fuweid/follow-up-10158
core/metadata: failfast on content.Commit
2024-05-06 19:23:52 +00:00
Wei Fu
99ad11a00a core/metadata: failfast on content.Commit
Close: #10158

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2024-05-04 17:24:00 +08:00
Kazuyoshi Kato
d65976b687 Merge pull request #10163 from dmcgowan/transfer-ttrpc-support
Add support for ttrpc in transfer and streaming service
2024-05-03 18:15:52 +00:00
Akihiro Suda
ef12da25e2 Merge pull request #9781 from kinvolk/rata/userns-use-pluginInfo
core/runtime: Check shim PluginInfo to enforce idmap support
2024-05-03 16:07:50 +00:00
Rodrigo Campos
f1e265b138 core/runtime: Check shim PluginInfo to enforce idmap support
This commit gets rid of the TODO by moving the check to use the
pluginInfo() infrastructure.

The check is only enforced for shims that return info that can be read
as type runtime.Features. For shims that don't provide that, we just
ignore it, as those shims might not be affected by this.

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
2024-05-03 15:00:59 +02:00
Fu Wei
857dc6f89e Merge pull request #10162 from dmcgowan/cleanup-local-transfer
Cleanup local transfer interface
2024-05-03 10:40:46 +00:00
Derek McGowan
05a3171bb4 Update transfer proxy to support ttrpc
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-02 23:16:51 -07:00
Derek McGowan
ec04e4f638 Add streaming proxy
Signed-off-by: Derek McGowan <derek@mcg.dev>

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-02 22:38:14 -07:00
Derek McGowan
fe01cad201 Cleanup local transfer interface
Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-02 15:45:49 -07:00
Derek McGowan
2ac2b9c909 Make api a Go sub-module
Allow the api to stay at the same v1 go package name and keep using a
1.x version number. This indicates the API is still at 1.x and allows
sharing proto types with containerd 1.6 and 1.7 releases.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2024-05-02 11:03:00 -07:00