Commit graph

43587 commits

Author SHA1 Message Date
Sebastiaan van Stijn
cfddecc3d2
builder/dockerfile: remove leftover LCOW platform checks
This removes some of the checks that were added in 0cba7740d4,
but should no longer be needed.

- `dockerfile.BuildFromConfig()` is used for `docker (container) commmit` and
  `docker (image) import`. For `docker import`, we're failing early already.
  For `commit`, it won't be possible to have a container that doesn't have the
  right operating-system, so there's no need to validate.
- `dispatchRequest.getImageOrStage()`: simplify the check; all checks resulted
  in an error on Windows, so it came down to "Windows does not support FROM scratch".
- `dispatchState.beginStage()`: `image.OperatingSystem()` already defaults to the
  `runtime.GOOS` if unset, so remove the local default fallback.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-25 15:23:11 +01:00
Sebastiaan van Stijn
1ef0a5bb91
image: remove leftover LCOW platform checks
This removes some of the checks that were added in 0cba7740d4,
but should no longer be needed.

- `image/store.Delete()`: no need to validate image platform to delete it.
- `image/tarexporter/takeLayerReference()`: use `image.OperatingSystem()` and
  fail early to prevent constructing the `ChainID()`.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-25 12:18:44 +01:00
Sebastiaan van Stijn
b2ef2e8c83
daemon/images: remove leftover LCOW platform checks
This removes some of the checks that were added in 0cba7740d4,
but should no longer be needed.

- `ImageService.ImageDelete()`: no need to validate image platform to delete it.
- `ImageService.ImageHistory()`: no need to validate image platform to show its
  history; if it made it into the local image cache, it should be valid.
- `ImageService.ImportImage()`: `dockerfile.BuildFromConfig()` is used for
  `docker (container) commmit` and `docker (image) import`. For `docker import`,
   it's more transparent to perform validation early.
- `ImageService.LookupImage()`: no need to validate image platform to inspect it;
  if it made it into the local image cache, it should be valid.
- `ImageService.SquashImage()`: same. This code was actually broken, because it
  wrapped an `err` that was always `nil`, so would never return an error.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-25 12:15:50 +01:00
Sebastiaan van Stijn
559ff0ac66
Merge pull request #43103 from thaJeztah/image_import_platform
Add support for platform (os and architecture) on image import
2022-01-24 20:29:27 +01:00
Sebastiaan van Stijn
f9a1846ca2
distribution: PushLayer.Size(): remove unused error return
None of the implementations returned an error for this function, so removing it.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 18:45:51 +01:00
Sebastiaan van Stijn
f5db4b01c0
daemon/images: ImageService.LookupImage(): minor cleanup
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 18:45:49 +01:00
Sebastiaan van Stijn
e1ea911aba
layer: remove unused error return from .Size() and .DiffSize()
None of the implementations used return an error, so removing the error
return can simplify using these.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 18:45:47 +01:00
Sebastiaan van Stijn
01ae9525dd
Add support for platform (os and architecture) on image import
Commit 0380fbff37 added the ability to pass a
--platform flag on `docker import` when importing an archive. The intent
of that commit was to allow importing a Linux rootfs on a Windows daemon
(as part of the experimental LCOW feature).

A later commit (337ba71fc1) changed some
of this code to take both OS and Architecture into account (for `docker build`
and `docker pull`), but did not yet update the `docker image import`.

This patch updates the import endpoitn to allow passing both OS and
Architecture. Note that currently only matching OSes are accepted,
and an error will be produced when (e.g.) specifying `linux` on Windows
and vice-versa.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 18:24:51 +01:00
Sebastiaan van Stijn
6b69de61f9
integration-cli: TestImportBadURL: use proper rfc6761 "invalid domain"
Just a minor nit: make sure we use a designated "bad" domain
https://datatracker.ietf.org/doc/html/rfc6761#section-6.4

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 17:00:57 +01:00
Sebastiaan van Stijn
9839ddd800
api: postImagesCreate(): use local variable for platform
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 17:00:55 +01:00
Sebastiaan van Stijn
81ac487d71
api: postImagesCreate(): rename ambiguous err variable
This error is meant to be used in the output stream, and some comments
were added to prevent accidentally using local variables.

Renaming the variable instead to make it less ambiguous.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 17:00:53 +01:00
Sebastiaan van Stijn
5c870b421a
daemon/images.NewImageService() don't print debug logs
These logs were meant to be logged when starting the daemon. Moving the logs
to the daemon startup code (which also prints similar messages) instead of
having the images service log them.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-24 15:55:45 +01:00
Sebastiaan van Stijn
bb66ebd621
distribution: xfer.LayerDownloadManager.Download(): remove "os" argument
This argument was added for LCOW support, but it was only used to verify if
the passed platform (OS) matched the host. Given that all uses of this function
(except for one) passed runtime.GOOS, we may as well move the check to that
location.

We should do more cleaning up after this, and perform such validations early,
instead of passing platform around in too many places where it's only used for
similar validations. This is a first step in that direction.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-21 15:07:55 +01:00
Sebastiaan van Stijn
eddbd6ff1e
Merge pull request #43132 from lzhfromustc/patch_1_7
test: fix a simple goroutine leak in distribution/xfer
2022-01-21 14:10:47 +01:00
Sebastiaan van Stijn
0b0a995d9d
distribution: remove RootFSDownloadManager interface
This interface only had a single implementation (xfer.LayerDownloadManager),
and all places where it was used already imported the xfer package.
Removing the interface, also makes it a closer match to the "upload" part,
as `xfer.LayerUploadManager()` did not use an interface.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-21 13:53:36 +01:00
Akihiro Suda
84cac21e38
Merge pull request #43172 from thaJeztah/lxc_my_old_friend
api: remove HostConfig.LxcConf field from swagger and docs
2022-01-21 18:00:10 +09:00
Aaron Lehmann
40bb983175
Merge pull request #43095 from aaronlehmann/avoid-regexp-simple-cases
fileutils: Avoid compiling a regexp for simple patterns
2022-01-20 17:43:07 -08:00
Aaron Lehmann
38e2e756c9 Avoid platform-specific NewPatternMatcher function in TestCompile
Signed-off-by: Aaron Lehmann <alehmann@netflix.com>
2022-01-20 09:08:16 -08:00
Sebastiaan van Stijn
839e2ecc1b
docs: remove HostConfig.LxcConf field from API docs
Commit 3b5fac462d  / docker 1.10 removed support
for the LXC runtime, and removed the corresponding fields from the API (v1.22).

This patch removes the `HostConfig.LxcConf` field from the API documentation.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 17:24:07 +01:00
Sebastiaan van Stijn
75a1ad0c9f
api: remove HostConfig.LxcConf field
Commit 3b5fac462d  / docker 1.10 removed support
for the LXC runtime, and removed the corresponding fields from the API (v1.22).

This patch removes the `HostConfig.LxcConf` field from the swagger definition.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 17:23:51 +01:00
Sebastiaan van Stijn
16cb04c2e8
api/swagger: move DistributionInspect to definitions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:53:59 +01:00
Sebastiaan van Stijn
ebd709f80c
api/swagger: rename PluginPrivilegeItem to PluginPrivilege
To match the name in Go

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:53:57 +01:00
Sebastiaan van Stijn
0b5a2e3c87
api/swagger: fix up event-types and move to definitions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:53:54 +01:00
Sebastiaan van Stijn
a65804adc4
api/swagger: move DistributionInspect to definitions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:53:34 +01:00
Sebastiaan van Stijn
24a43d934c
api/swagger: rename PluginPrivilegeItem to PluginPrivilege
To match the name in Go

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:53:32 +01:00
Sebastiaan van Stijn
92ed6ca356
api/swagger: fix up event-types and move to definitions
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:53:30 +01:00
Tobias Gesellchen
62cf748df9
Fix swagger docs to match the opencontainers image-spec
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:52:32 +01:00
Tobias Gesellchen
6153c2f08d
Extract PluginPrivilegeItem as explicit type definition
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:52:31 +01:00
Tobias Gesellchen
be93e50a58
Use explicit object names for improved swagger based code generation
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:52:29 +01:00
Tobias Gesellchen
8168d1877d
Fix ContainerSummary swagger docs
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:52:27 +01:00
Tobias Gesellchen
0e719f8a00
Add "changes" query parameter for /image/create to swagger docs
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:52:25 +01:00
Tobias Gesellchen
d3d78c1ae3
Add RestartPolicy "no" to swagger docs
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:52:22 +01:00
Tobias Gesellchen
c0bc82cef1
Fix swagger docs to match the opencontainers image-spec
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:30:40 +01:00
Tobias Gesellchen
7248ebcd7e
Extract PluginPrivilegeItem as explicit type definition
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:30:38 +01:00
Tobias Gesellchen
6e421a1823
Use explicit object names for improved swagger based code generation
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:30:36 +01:00
Tobias Gesellchen
9ac2d04617
Fix ContainerSummary swagger docs
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:30:34 +01:00
Tobias Gesellchen
050f5f29f7
Add "changes" query parameter for /image/create to swagger docs
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:30:32 +01:00
Tobias Gesellchen
90294e9bdb
Add RestartPolicy "no" to swagger docs
Signed-off-by: Tobias Gesellchen <tobias@gesellix.de>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 15:30:29 +01:00
Sebastiaan van Stijn
6e05fa7076
Merge pull request #43161 from Haarolean/master
Fixed broken links in project documentation files.
2022-01-20 13:06:48 +01:00
Sebastiaan van Stijn
037b4c0e8e
docker-py: skip CreateContainerTest::test_create_with_device_cgroup_rules
This test is verifying that the container has the right options set (through
`docker inspect`), but also checks if the cgroup-rules are set within the container
by reading `/sys/fs/cgroup/devices/devices`

Unlike cgroups v1, on cgroups v2, there is no file interface, and rules are handled
through ebpf, which means that the test will fail because this file is not present.

From the Linux documentation for cgroups v2: https://github.com/torvalds/linux/blob/v5.16/Documentation/admin-guide/cgroup-v2.rst#device-controller

> (...)
> Device controller manages access to device files. It includes both creation of
> new device files (using mknod), and access to the existing device files.
>
> Cgroup v2 device controller has no interface files and is implemented on top of
> cgroup BPF. To control access to device files, a user may create bpf programs
> of type BPF_PROG_TYPE_CGROUP_DEVICE and att>

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-20 11:11:22 +01:00
Sebastiaan van Stijn
860db4f4e3
Merge pull request #43101 from thaJeztah/go_mod_rebase
vendor: use go mod (rebase after removal of deprecated host-discovery)
2022-01-20 09:21:49 +01:00
Sebastiaan van Stijn
b47c0b8896
Merge pull request #43152 from thaJeztah/bump_go_1.17.6
Update Go to 1.17.6
2022-01-18 17:37:39 +01:00
Sebastiaan van Stijn
ace8c7896c
vendor: cloud.google.com/go v0.59.0 to remove some test-deps
commit ad4f9324cd
removes some of the test-dependencies from cloud.google.com.

only other relevant changes in vendored code are from this commit:
dccc6b4b71

Full diff: https://github.com/googleapis/google-cloud-go/compare/v0.44.3...v0.59.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-18 15:46:08 +01:00
Sebastiaan van Stijn
3bd74488fd
Makefile: use volume for go mod cache when running dev-container
This allows the modules to be cached when vendoring modules from within
the dev container.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-18 15:46:06 +01:00
Sebastiaan van Stijn
e5d28115ee
vendor: regenerate
- all changes here are attributed to difference in behaviour between,
  namely:
  - resolution of secondary test dependencies
  - prunning of non-Go files

Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-18 15:46:04 +01:00
Ilya Dmitrichenko
a46f968229
vendor: replace vndr with go mod vendor
- use `vendor.mod` instead of `go.mod` to avoid issues to do with
  use of CalVer, not SemVer
- ensure most of the dependency versions do not change
  - only zookeeper client has to change (via docker/libkv#218) as
    previously used version is no longer maintained and has missing
    dependencies

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2022-01-18 15:46:00 +01:00
Roman Zabaluev
fa73c24471
Fixed broken links in project documentation files.
Signed-off-by: Roman Zabaluev <gpg@haarolean.dev>
2022-01-18 15:10:07 +03:00
Sebastiaan van Stijn
79651b7a97
Merge pull request #43154 from kaffarell/fix-documentation
Removed slack row in contributing.md
2022-01-14 10:32:30 +01:00
Sebastiaan van Stijn
403e9ad92d
Merge pull request #43143 from thaJeztah/jenkinsfile_remove_rs1
Jenkinsfile: remove Windows RS1 as it reached end of support
2022-01-13 21:18:01 +01:00
kaffarell
7b052cdc63 Removed the slack archives
Removed the slack archive linke because it doesn't exist anymore.

Signed-off-by: kaffarell <gabrielgoller123@gmail.com>
2022-01-13 18:30:45 +01:00