Commit Graph

51692 Commits

Author SHA1 Message Date
Sebastiaan van Stijn
0cd39d7b23 builder/remotecontext: fix naked returns
builder/remotecontext/detect.go:47:2: naked return in func `Detect` with 17 lines of code (nakedret)
        return
        ^
    builder/remotecontext/archive.go:127:2: naked return in func `normalize` with 7 lines of code (nakedret)
        return
        ^

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-04 13:55:44 +01:00
Sebastiaan van Stijn
0c1b37c50a builder/dockerfile: fix minor linting issues
- remove/rename vars that shadowed
- suppress some unhandled errors
- remove naked return

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-04 13:55:44 +01:00
Sebastiaan van Stijn
8302cd2d29 builder/dockerfile: downloadSource: fix naked returns, output vars
- use explicit returns
- rename error-return that's used in a defer
- move closing the tmpFile on error to a defer
- add debug logs for cases where either closing the file, or failing to
  remove the temp-directory

    builder/dockerfile/copy.go:369:3: naked return in func `downloadSource` with 67 lines of code (nakedret)
            return
            ^
    builder/dockerfile/copy.go:374:3: naked return in func `downloadSource` with 67 lines of code (nakedret)
            return
            ^
    builder/dockerfile/copy.go:382:3: naked return in func `downloadSource` with 67 lines of code (nakedret)
            return
            ^
    builder/dockerfile/copy.go:398:3: naked return in func `downloadSource` with 67 lines of code (nakedret)
            return
            ^
    builder/dockerfile/copy.go:407:3: naked return in func `downloadSource` with 67 lines of code (nakedret)
            return
            ^
    builder/dockerfile/copy.go:428:3: naked return in func `downloadSource` with 67 lines of code (nakedret)
            return
            ^

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-04 13:55:44 +01:00
Sebastiaan van Stijn
69deeaa03d Merge pull request #49571 from thaJeztah/registry_improve_tests
registry: improve test-coverage, and some minor fixes
2025-03-04 13:16:55 +01:00
Akihiro Suda
41fe41382e Merge pull request #49559 from thaJeztah/testutil_remove_isErrNotFoundSwarmClassic
testutil: remove isErrNotFoundSwarmClassic
2025-03-04 17:45:15 +09:00
Sebastiaan van Stijn
2b9b239db0 Merge pull request #49570 from vvoland/golangci-is-alias
golangci-lint: enforce "is" alias for gotest.tools/v3/assert/cmp
2025-03-04 00:53:40 +01:00
Sebastiaan van Stijn
f1bec97dfe registry: use literal for empty slice
slightly more idiomatic

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 20:03:10 +01:00
Sebastiaan van Stijn
7b4e21e5d0 registry: fix typo in godoc
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 20:03:10 +01:00
Sebastiaan van Stijn
be9c4dd3c5 registry: TestNewIndexInfo: add more test-cases
- Add test-cases for IPv6 refs
- Add test-cases for validating the insecure-registries passed in the test

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 20:03:03 +01:00
Sebastiaan van Stijn
949afd933b registry: TestNewIndexInfo: assert all fields
Using DeepEquals showed that the test was missing differences between
nil-mirrors and empty-slice, in addition to mirrors being normalized
(the test only checked for the length).

While we should consider if we need an explicit empty slice (or if a
nil value would be appropriate), at least we now have a test to verify
the behavior.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 20:02:05 +01:00
Sebastiaan van Stijn
310d6d2fa5 registry: TestNewIndexInfo: use sub-tests
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 20:00:56 +01:00
Sebastiaan van Stijn
50d17676e4 registry: TestParseRepositoryInfo: add test-cases for IPv6 refs
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 20:00:51 +01:00
Sebastiaan van Stijn
328b808765 registry: TestParseRepositoryInfo: assert all index-info fields
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 19:56:54 +01:00
Sebastiaan van Stijn
d9634c3b28 registry: TestParseRepositoryInfo: use sub-tests
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 19:38:54 +01:00
Sebastiaan van Stijn
e2a5220ec3 registry: remove makeServiceConfig test-utility
It was a very thin wrapper around newServiceConfig, and didn't save
any code needed; possibly even the reverse, as it was abstracting
what it did under the hood.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 19:38:49 +01:00
Paweł Gronowski
52419cf933 golangci-lint: enforce "is" alias for gotest.tools/v3/assert/cmp
We already have been following this convention - add a linter rule that
will help us follow that convention in future changes.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:49 +01:00
Paweł Gronowski
1c63f3983b volume/service: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:46 +01:00
Paweł Gronowski
9766a446ae integration/network: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:44 +01:00
Paweł Gronowski
c16fcdfc4b integration/image: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:43 +01:00
Paweł Gronowski
6abe6a910a integration/container: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:42 +01:00
Paweł Gronowski
22069f2431 integration-cli: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:40 +01:00
Paweł Gronowski
605f02a59b distribution: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:39 +01:00
Paweł Gronowski
75b86c47d9 daemon/logger/loggerutils: adjust "gotest.tools/v3/assert/cmp" import alias
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-03-03 19:11:37 +01:00
Sebastiaan van Stijn
59e6d1d214 registry: TestLoadInsecureRegistries: don't mutate emptyServiceConfig
This was not revealed in our tests, which only checked for the length
of the Mirror-slice, but when testing with DeepEquals, tests were failing
when all tests were run (but succeeded on individual tests). The problem
here is that some code can mutate the list of Mirrors and set it to `nil`
or an empty slice, resulting in other tests to fail.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 19:08:25 +01:00
Sebastiaan van Stijn
07be327aaa Merge pull request #49568 from thaJeztah/dismantle_ParseRepositoryInfo
registry: refactor to allow splitting out logic for CLI
2025-03-03 15:53:49 +01:00
Sebastiaan van Stijn
960a39bf2c Merge pull request #49567 from thaJeztah/deprecate_repositoryinfo_official
registry: deprecate RepositoryInfo.Official field
2025-03-03 15:52:43 +01:00
Sebastiaan van Stijn
b8b2400a5b Merge pull request #49512 from thaJeztah/portallocator_unexport
libnet/portallocator: un-export errors that were not used as sentinel  errors
2025-03-03 12:38:43 +01:00
Sebastiaan van Stijn
4c96df6550 Merge pull request #49549 from thaJeztah/cleanup_cluster_init
daemon/cluster: some cleanups in initialisation
2025-03-03 12:38:11 +01:00
Sebastiaan van Stijn
ca114a1851 Merge pull request #49544 from thaJeztah/fix_windows_errors
fix some errors for windows containers
2025-03-03 12:33:31 +01:00
Sebastiaan van Stijn
43f636a4e5 Merge pull request #49558 from thaJeztah/testutil_redundant_check
testutil/environment: Execution.Clean: remove redundant condition
2025-03-03 12:31:46 +01:00
Sebastiaan van Stijn
849f344ecc registry: split normalizing index name from validating
ValidateIndexName is used by the docker daemon CLI to validate options
passed through CLI flags and daemon.json. However, it also handled
normalizing the registry name ("index.docker.io" -> "docker.io").

This patch splits the normalization code to a separate function. It
is currently not exported, but could be considered in the future;
if we do so, we may want to look for a better place for that function
to not have it in the same package as the registry code.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 10:16:44 +01:00
Sebastiaan van Stijn
fee40a9333 registry: create emptyServiceConfig without parsing
emptyServiceConfig is a default service-config for situations where
no config-file is available (e.g. when used in the CLI). If won't
have mirrors configured, but does have the default insecure registry
CIDRs for loopback interfaces configured.

Before this patch, this config was constructeed using the same code
that handled constructing the config with a config present, but this
involved parsing CIDR masks, and much more.

With this patch, the service config is constructed as a literal, making
it more transparent that it does not depend on any config or state.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 10:16:43 +01:00
Sebastiaan van Stijn
a3583b4b58 registry: newRepositoryInfo only check for official images for Docker Hub
RepositoryInfo.Official indicates whether the image repository
is an official (docker library official images) repository.

We only need to check this if the image-repository is on Docker Hub.

This patch renames the variable to make it more transparent that this
boolean is for the repository, and not to be confused for IndexInfo.Official,
which indicates if the _registry_ is the "Official" (Docker Hub) registry.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 10:16:43 +01:00
Sebastiaan van Stijn
08654b0b30 registry: deprecate RepositoryInfo.Official field
This field indicates whether a repository is an official image (Docker
Library / Docker Official Images). This information is deducted from the
image reference, and not used anywhere, other than in tests.

The `RepositoryInfo` and `IndexInfo` types were originally introduced in
568f86eb18, with their fields documented in
4fcb9ac40c.

At the time, the `Official` field was only used for `docker push` to produce
a custom error message if someone would attempt to push an official image
to docker hub (assuming nobody would be able to do so);
6870bde584/api/client/commands.go (L1184-L1194)

Before that commit, the condition for this error message was based on the
given image reference directly; b370acd679
b370acd679/commands.go (L421-L428)

This patch deprecates the field, because it's not used, and removes
tests related to it.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-03 10:12:17 +01:00
Akihiro Suda
d86dd75948 Merge pull request #49563 from thaJeztah/graphdriver_noshadow
daemon/graphdriver: rename vars that shadowed
2025-03-03 10:51:36 +09:00
Akihiro Suda
a626620286 Merge pull request #49564 from thaJeztah/bump_containerd_2.0.3
vendor: github.com/containerd/containerd v2.0.3
2025-03-03 10:51:14 +09:00
Sebastiaan van Stijn
dbc9d56820 vendor: github.com/containerd/containerd v2.0.3
Relevant changes:

- Update remote content to break up writes to avoid grpc message size limits
- Move CDI device spec out of the OCI package
- Remove deprecated WithCDIDevices in oci spec opts

full diff: https://github.com/containerd/containerd/compare/v2.0.2...v2.0.3

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-28 22:11:49 +01:00
Sebastiaan van Stijn
15895d8ead daemon/graphdriver: rename vars that shadowed
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-28 21:36:09 +01:00
Sebastiaan van Stijn
41f781fab3 Merge pull request #49551 from thaJeztah/libcontainerd_less_stubbing
libcontainerd/local: remove unused code and arguments
2025-02-28 16:25:25 +01:00
Sebastiaan van Stijn
aa9817b0c5 testutil: remove isErrNotFoundSwarmClassic
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-27 22:03:08 +01:00
Sebastiaan van Stijn
0ab7d41f9e testutil/environment: Execution.Clean: remove redundant condition
It's either "not windows" or "windows" (and something else), so the second
condition doesn't have to check if it's windows.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-27 21:59:05 +01:00
Brian Goff
7194b508b6 Merge pull request #48638 from robmry/iptables-nft
Use iptables-nft in the dev container / CI
2025-02-27 12:03:14 -08:00
Sebastiaan van Stijn
ea3bb90773 Merge pull request #49547 from robmry/test_docker_ingress_jump
Check swarm's jump to DOCKER-INGRESS
2025-02-27 20:26:29 +01:00
Sebastiaan van Stijn
320db9d55d Merge pull request #49546 from thaJeztah/archiver_noshadow
builder/dockerfile: remove intermediate var that shadowed
2025-02-26 20:48:46 +01:00
Sebastiaan van Stijn
c1fceb0167 Merge pull request #49550 from thaJeztah/bump_docker_cli
Dockerfile: update docker CLI to v28.0.1, docker compose to v2.33.1
2025-02-26 20:45:40 +01:00
Sebastiaan van Stijn
b301c34b92 libcontainerd/local: remove arg-names for stubs
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-26 19:00:20 +01:00
Sebastiaan van Stijn
12f89cc19b libcontainerd/local: NewClient: remove unused cli, stateDir, ns args
The "local" client does not use containerd, but implements the same interface,
many args are not used though, so remove these to make it more clear what's
actually in use.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-26 19:00:20 +01:00
Sebastiaan van Stijn
620f26e1e3 libcontainerd/local: client.createWindows: remove unused runtimeOptions
The "local" client does not use containerd, but implements the same interface,
many args are not used though, so remove these to make it more clear what's
actually in use.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-26 19:00:20 +01:00
Sebastiaan van Stijn
9c4e10126e libcontainerd/local: client.NewContainer: use early return
Also remove an intermediate var, and remove a "WithError" in favor of
adding the error field to the "WithFields".

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-26 19:00:20 +01:00
Sebastiaan van Stijn
7c1a2301f0 libcontainerd/local: client.extractResourcesFromSpec: use early return
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-02-26 19:00:20 +01:00