Commit Graph

12124 Commits

Author SHA1 Message Date
Derek McGowan
800ec305cb
Merge pull request #8272 from DataDog/ethan.lowman/fix-ctr-transfer-pull
Fix image pulling with Transfer service
2023-04-19 17:51:30 -07:00
Maksym Pavlenko
290a800e83
Merge pull request #8398 from fuweid/chore-ut
pkg/cri/sbserver: sub-test uses array and capture range var
2023-04-18 12:35:30 +02:00
Maksym Pavlenko
cc3f4f4ad7
Merge pull request #8399 from dmcgowan/add-proxy-differ
Add support for proxy differ
2023-04-18 12:32:58 +02:00
Derek McGowan
8700566073
Merge pull request #8397 from thaJeztah/restore_readonly_comments
oci: partially restore comment on read-only mounts for uid/gid uses
2023-04-17 13:08:28 -07:00
Fu Wei
9920673391
Merge pull request #8400 from fuweid/chore-ut-cri-server
pkg/cri/server: sub-test uses array and capture range var
2023-04-17 13:09:30 +08:00
Fu Wei
2185f581e1
Merge pull request #8395 from thaJeztah/runtime_tools_remove_replace 2023-04-16 20:07:30 +08:00
Wei Fu
4192ca8f8c pkg/cri/server: sub-test uses array and capture range var
Using array to build sub-tests is to avoid random pick. The shuffle
thing should be handled by go-test framework. And we should capture
range var before runing sub-test.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2023-04-16 16:47:02 +08:00
Wei Fu
8bcfdda39b pkg/cri/sbserver: sub-test uses array and capture range var
Using array to build sub-tests is to avoid random pick. The shuffle
thing should be handled by go-test framework. And we should capture
range var before runing sub-test.

Signed-off-by: Wei Fu <fuweid89@gmail.com>
2023-04-16 15:22:13 +08:00
Derek McGowan
745ec84e5a
Add diffservice to contrib
Signed-off-by: Derek McGowan <derek@mcg.dev>
2023-04-15 23:16:29 -07:00
Derek McGowan
3784c1c917
Add proxy differ
Signed-off-by: Derek McGowan <derek@mcg.dev>
2023-04-15 22:37:23 -07:00
Sebastiaan van Stijn
cb2c3ec8f8
oci: partially restore comment on read-only mounts for uid/gid uses
Commit cab056226f removed the tryReadonlyMounts
utility, in favor of mounts.ReadOnlyMounts() that was added in commit
daa3a7665e.

That change made part of the comment redundant, because mounts.ReadOnlyMounts
handles both overlayfs read-only mounts (by skipping the workdir mounts), and
sets the "ro" option for other mount-types, but the reason why we're using a
read-only mount is still relevant, so restoring that part of the comment.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-15 13:54:23 +02:00
Sebastiaan van Stijn
f238167408
go.mod: add comment explaining go-fuzz-headers replace rule
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-15 13:03:12 +02:00
Sebastiaan van Stijn
ec9e74ed92
go.mod: remove replace for github.com/opencontainers/runtime-tools
The replace rule was actually downgrading the package by one commit;
946c877fa8...2e043c6bd6

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-15 13:01:24 +02:00
Sebastiaan van Stijn
6c40cf3051
go.mod: integration: use non-pre-release of containerd
The actual version is replaced, so only "optics"

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-15 12:50:51 +02:00
Sebastiaan van Stijn
92d1e9bee0
go.mod: integration: move indirect dependencies to the right group
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-15 12:45:06 +02:00
Kazuyoshi Kato
ffc70c45c4
Merge pull request #8359 from kiashok/argsEscapedTestFix
Fix argsEscaped tests
2023-04-14 13:08:51 -07:00
Samuel Karp
d2b578f76d
Merge pull request #8384 from thaJeztah/runc_binary_1.1.6
update runc binary to v1.1.6
2023-04-13 22:23:22 -07:00
Sebastiaan van Stijn
49111b1155
update runc binary to v1.1.6
release notes: https://github.com/opencontainers/runc/releases/tag/v1.1.6
full diff: https://github.com/opencontainers/runc/compare/v1.1.5...v1.1.6

This is the sixth patch release in the 1.1.z series of runc, which fixes
a series of cgroup-related issues.

Note that this release can no longer be built from sources using Go
1.16. Using a latest maintained Go 1.20.x or Go 1.19.x release is
recommended. Go 1.17 can still be used.

- systemd cgroup v1 and v2 drivers were deliberately ignoring UnitExist error
  from systemd while trying to create a systemd unit, which in some scenarios
  may result in a container not being added to the proper systemd unit and
  cgroup.
- systemd cgroup v2 driver was incorrectly translating cpuset range from spec's
  resources.cpu.cpus to systemd unit property (AllowedCPUs) in case of more
  than 8 CPUs, resulting in the wrong AllowedCPUs setting.
- systemd cgroup v1 driver was prefixing container's cgroup path with the path
  of PID 1 cgroup, resulting in inability to place PID 1 in a non-root cgroup.
- runc run/start may return "permission denied" error when starting a rootless
  container when the file to be executed does not have executable bit set for
  the user, not taking the CAP_DAC_OVERRIDE capability into account. This is
  a regression in runc 1.1.4, as well as in Go 1.20 and 1.20.1
- cgroup v1 drivers are now aware of misc controller.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-13 19:46:21 +02:00
Maksym Pavlenko
6ec1c591dd
Merge pull request #8375 from Iceber/shim_version
update the version of the runc shim in the readme and examples
2023-04-12 10:59:26 -07:00
Maksym Pavlenko
34e9f9b38e
Merge pull request #8376 from kinvolk/rata/userns-stateless-idmap-error-main
Thow an error if the kubelet requests mounts with uid/gid mappings
2023-04-12 09:25:50 -07:00
Rodrigo Campos
7e6ab84884 cri: Throw an error if idmap mounts is requested
We need support in containerd and the OCI runtime to use idmap mounts.
Let's just throw an error for now if the kubelet requests some mounts
with mappings.

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
2023-04-11 21:31:12 +02:00
Rodrigo Campos
85afda6f52 cri: Vendor v0.27.0-beta.0 for mounts uid/gid mappings
We will use this in future commits to see if the kubelet requested idmap
mounts for volumes, that we don't yet support.

Signed-off-by: Rodrigo Campos <rodrigoca@microsoft.com>
2023-04-11 17:31:27 +02:00
Iceber Gu
f7b8b11812 update the version of the runc shim in the readme and examples
Signed-off-by: Iceber Gu <wei.cai-nat@daocloud.io>
2023-04-11 16:02:06 +08:00
Derek McGowan
c5a43b0007
Merge pull request #8366 from mxpv/stats
[sbserver] Backport CRI stats patches to sandboxed CRI
2023-04-10 13:38:30 -07:00
Derek McGowan
bee8267c75
Merge pull request #8370 from everpeace/follow-up-8136
Follow Up for #8136
2023-04-10 09:42:10 -07:00
Shingo Omura
dc2fc987ca
capture desc variable in range variable just in case that it run in parallel mode
Signed-off-by: Shingo Omura <everpeace@gmail.com>
2023-04-10 20:59:11 +09:00
Shingo Omura
05bb52b273
Use t.TempDir instead of os.MkdirTemp
Signed-off-by: Shingo Omura <everpeace@gmail.com>
2023-04-10 20:58:36 +09:00
Fu Wei
5885db62c8
Merge pull request #8136 from everpeace/fix-additiona-gids-to-read-image-user
[CRI] fix additionalGids: it should fallback to imageConfig.User when securityContext.RunAsUser,RunAsUsername are empty
2023-04-09 14:59:07 +08:00
Samuel Karp
3313231040
Merge pull request #8365 from estesp/setup-go-v4 2023-04-08 23:03:29 -07:00
Maksym Pavlenko
79cb4b0000 [sbserver] handle missing cpu stats
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-04-07 15:59:40 -07:00
Maksym Pavlenko
464a4977a6 [sbserver] Refactor usageNanoCores be to used for all OSes
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2023-04-07 15:56:23 -07:00
Kirtana Ashok
e0b817ec15 Fix argsEscaped tests
- Rename test name
- Add a tag to the container image used in the tests instead of the latest tag
- Add a 5 second delay between container start and stop to ensure that the
  container is fully initialized

Signed-off-by: Kirtana Ashok <Kirtana.Ashok@microsoft.com>
2023-04-07 13:25:03 -07:00
Phil Estes
aee3587651
Update to setup-go@v4 action
The latest setup-go action caches the Go pkg cache and may have several
minute-per-run speed improvement on CI runs which have to fill the
pkg cache.

Signed-off-by: Phil Estes <estesp@amazon.com>
2023-04-07 15:26:40 -04:00
Kazuyoshi Kato
7cd72cce99
Merge pull request #8043 from gabriel-samfira/wcow_mount_layers_rebased
Mount snapshots on Windows
2023-04-06 16:34:05 -07:00
Derek McGowan
2503bef581
Merge pull request #8351 from rumpl/oci-readonly-mounts
oci: Use WithReadonlyTempMount when adding users/groups
2023-04-05 13:18:18 -07:00
Phil Estes
3c6ddee128
Merge pull request #8352 from thaJeztah/bump_go1.20.3
update go to go1.20.3, go1.19.8
2023-04-05 11:17:49 -04:00
Sebastiaan van Stijn
0fb2d91322
update go to go1.20.3, go1.19.8
go1.20.3 (released 2023-04-04) includes security fixes to the go/parser,
html/template, mime/multipart, net/http, and net/textproto packages, as well
as bug fixes to the compiler, the linker, the runtime, and the time package.
See the Go 1.20.3 milestone on our issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.20.3+label%3ACherryPickApproved

full diff: https://github.com/golang/go/compare/go1.20.2...go1.20.3

go1.19.8 (released 2023-04-04) includes security fixes to the go/parser,
html/template, mime/multipart, net/http, and net/textproto packages, as well as
bug fixes to the linker, the runtime, and the time package. See the Go 1.19.8
milestone on our issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.19.8+label%3ACherryPickApproved

full diff: https://github.com/golang/go/compare/go1.19.7...go1.19.8

Further details from the announcement on the mailing list:

We have just released Go versions 1.20.3 and 1.19.8, minor point releases.
These minor releases include 4 security fixes following the security policy:

- go/parser: infinite loop in parsing

  Calling any of the Parse functions on Go source code which contains `//line`
  directives with very large line numbers can cause an infinite loop due to
  integer overflow.
  Thanks to Philippe Antoine (Catena cyber) for reporting this issue.
  This is CVE-2023-24537 and Go issue https://go.dev/issue/59180.

- html/template: backticks not treated as string delimiters

  Templates did not properly consider backticks (`) as Javascript string
  delimiters, and as such did not escape them as expected. Backticks are
  used, since ES6, for JS template literals. If a template contained a Go
  template action within a Javascript template literal, the contents of the
  action could be used to terminate the literal, injecting arbitrary Javascript
  code into the Go template.

  As ES6 template literals are rather complex, and themselves can do string
  interpolation, we've decided to simply disallow Go template actions from being
  used inside of them (e.g. "var a = {{.}}"), since there is no obviously safe
  way to allow this behavior. This takes the same approach as
  github.com/google/safehtml. Template.Parse will now return an Error when it
  encounters templates like this, with a currently unexported ErrorCode with a
  value of 12. This ErrorCode will be exported in the next major release.

  Users who rely on this behavior can re-enable it using the GODEBUG flag
  jstmpllitinterp=1, with the caveat that backticks will now be escaped. This
  should be used with caution.

  Thanks to Sohom Datta, Manipal Institute of Technology, for reporting this issue.

  This is CVE-2023-24538 and Go issue https://go.dev/issue/59234.

- net/http, net/textproto: denial of service from excessive memory allocation

  HTTP and MIME header parsing could allocate large amounts of memory, even when
  parsing small inputs.

  Certain unusual patterns of input data could cause the common function used to
  parse HTTP and MIME headers to allocate substantially more memory than
  required to hold the parsed headers. An attacker can exploit this behavior to
  cause an HTTP server to allocate large amounts of memory from a small request,
  potentially leading to memory exhaustion and a denial of service.
  Header parsing now correctly allocates only the memory required to hold parsed
  headers.

  Thanks to Jakob Ackermann (@das7pad) for discovering this issue.

  This is CVE-2023-24534 and Go issue https://go.dev/issue/58975.

- net/http, net/textproto, mime/multipart: denial of service from excessive resource consumption

  Multipart form parsing can consume large amounts of CPU and memory when
  processing form inputs containing very large numbers of parts. This stems from
  several causes:

  mime/multipart.Reader.ReadForm limits the total memory a parsed multipart form
  can consume. ReadForm could undercount the amount of memory consumed, leading
  it to accept larger inputs than intended. Limiting total memory does not
  account for increased pressure on the garbage collector from large numbers of
  small allocations in forms with many parts. ReadForm could allocate a large
  number of short-lived buffers, further increasing pressure on the garbage
  collector. The combination of these factors can permit an attacker to cause an
  program that parses multipart forms to consume large amounts of CPU and
  memory, potentially resulting in a denial of service. This affects programs
  that use mime/multipart.Reader.ReadForm, as well as form parsing in the
  net/http package with the Request methods FormFile, FormValue,
  ParseMultipartForm, and PostFormValue.

  ReadForm now does a better job of estimating the memory consumption of parsed
  forms, and performs many fewer short-lived allocations.

  In addition, mime/multipart.Reader now imposes the following limits on the
  size of parsed forms:

  Forms parsed with ReadForm may contain no more than 1000 parts. This limit may
  be adjusted with the environment variable GODEBUG=multipartmaxparts=. Form
  parts parsed with NextPart and NextRawPart may contain no more than 10,000
  header fields. In addition, forms parsed with ReadForm may contain no more
  than 10,000 header fields across all parts. This limit may be adjusted with
  the environment variable GODEBUG=multipartmaxheaders=.

  Thanks to Jakob Ackermann for discovering this issue.

  This is CVE-2023-24536 and Go issue https://go.dev/issue/59153.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-04-05 16:03:25 +02:00
Djordje Lukic
cab056226f
oci: Use WithReadonlyTempMount when adding users/groups
Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
2023-04-05 12:09:36 +02:00
Akihiro Suda
a85af0f5ca
Merge pull request #8343 from AkihiroSuda/crun-1.8.3
CI: bump up crun to 1.8.3
2023-04-05 10:52:14 +09:00
Gabriel Adrian Samfira
c9e5c33a18 UnmountAll is a no-op for missing mount points
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-04 12:59:52 -07:00
Gabriel Adrian Samfira
8538e7a2ac Improve error messages and remove check
* Improve error messages
  * remove a check for the existance of unmount target. We probably
    should not mask that the target was missing.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-04 12:07:34 -07:00
Gabriel Adrian Samfira
ba74cdf150 Make ReadOnly() available on all platforms
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-04 02:04:56 -07:00
Gabriel Adrian Samfira
7bb2756bc4 Increase integration test tmieout to 20m
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-04 00:29:14 -07:00
Gabriel Adrian Samfira
1279ad880c Remove bind code path in mount()
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-03 23:18:44 -07:00
Samuel Karp
cbb2d08af0
Merge pull request #8342 from davidhsingyuchen/exit-status-typo 2023-04-03 11:04:12 -07:00
Gabriel Adrian Samfira
6a5b4c9c24 Remove "bind" code path from diff
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-03 08:11:35 -07:00
Akihiro Suda
76690706f4
CI: bump up crun to 1.8.3
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2023-04-03 14:30:15 +09:00
Gabriel Adrian Samfira
d373ebc4de Properly mount base layers
As opposed to a writable layer derived from a base layer, the volume
path of a base layer, once activated and prepared will not be a WCIFS
volume, but the actual path on disk to the snapshot. We cannot directly
mount this folder, as that would mean a client may gain access and
potentially damage important metadata files that would render the layer
unusabble.

For base layers we need to mount the Files folder which must exist in
any valid base windows-layer.

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-02 08:35:34 -07:00
Gabriel Adrian Samfira
ca5605b4a2 Skip parent layer options on bind mounts
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-01 08:49:24 -07:00
Gabriel Adrian Samfira
7f82dd91f4 Add ReadOnly() function
Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
2023-04-01 08:43:14 -07:00