Commit Graph
59380 Commits
Author SHA1 Message Date
Sebastiaan van Stijn f4e2c4fa3a Merge pull request #54039 from vvoland/work-ext-client
extpoints: Let extensions use a regular Engine API client
2026-11-05 17:18:59 +01:00
Sebastiaan van Stijn b3b7197adf Merge pull request #54090 from thaJeztah/rm_getcontroller
libnetwork: remove Network.getController accessor
2026-11-05 01:49:03 +01:00
Sebastiaan van Stijn 98f37c8a00 Merge pull request #54126 from renovate-bot/renovate/github.com-aws-smithy-go-1.x
fix(deps): update module github.com/aws/smithy-go to v1.28.8
2026-11-05 00:41:12 +01:00
Sebastiaan van Stijn 095fd38f5c libnetwork: remove Network.getController accessor
The getController method only returns the network's controller pointer,
without performing any additional operations.

Replace its callers with direct access to n.ctrlr and remove the
unnecessary accessor. Rename the ctrlr field to "controller" for
clarity.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-05 00:40:01 +01:00
Sebastiaan van Stijn 6cc6b10028 libnetwork: remove unnecessary locking in Network.getController
The controller pointer is initialized when a network is created and
is not modified afterward. Reading it therefore does not require
holding the network mutex.

Remove the unnecessary locking from getController.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-05 00:38:42 +01:00
Sebastiaan van Stijn 43ffffd387 Merge pull request #54129 from corhere/fix-nftables-cleanup-legacy-chains
libnetwork/d/bridge: fix cleanup of 27.x iptables
2026-11-04 23:14:29 +01:00
Sebastiaan van Stijn 99e4cd4d36 Merge pull request #54127 from corhere/fix-network-ls-filter-test
daemon/network: match any type filter value
2026-11-04 23:08:21 +01:00
Sebastiaan van Stijn a90fedf580 Merge pull request #54058 from vvoland/work-docs
docs: Import daemon reference and deprecation history
2026-11-04 22:59:19 +01:00
Sebastiaan van Stijn 54d812f66e Merge pull request #54125 from thaJeztah/fix_httpstatus
httpstatus: handle missing errdefs HTTP status codes
2026-11-04 22:54:49 +01:00
Sebastiaan van Stijn 43cc79083a Merge pull request #54124 from thaJeztah/fix_stream_errs
streamformatter: handle wrapped errors and remove uses of deprecated "errors" field
2026-11-04 20:23:16 +01:00
Paweł Gronowski be285dcad8 daemon: Create the extension API socket on first use
Every daemon with an extension host opened an extra full-access API
socket at startup, even when no extension used the API.

The socket is now created when an extension first connects to the API.
The daemonapi client looks up the endpoint on its first connection, so
NewClient no longer takes a context.

The socket is served separately from the configured hosts, returns 503
until the daemon is ready, and closes after extensions shut down.
It is accessible only to the daemon user, or to Administrators and
LocalSystem on Windows.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-11-04 19:48:07 +01:00
Paweł Gronowski fca6d1f16d extpoints: Let extensions use a regular Engine API client
Extensions had no supported way to call the Engine API.
The configured hosts may be socket-activated or TLS-only TCP.

Add the org.mobyproject.extension.daemon.api.v0 point.
It returns the address of a private unix socket where the daemon serves
its regular API handler.

daemonapiv0.NewClient helper resolves the point and returns a
*client.Client.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-11-04 19:47:55 +01:00
Paweł Gronowski b9ce036ac8 docs: Import daemon reference and Engine deprecation history
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-11-04 19:43:36 +01:00
Cory Snider 50416cf892 libnetwork/d/bridge: remove leftover DOCKER chain
When the daemon started with the nftables backend after a release older
than 28.0.0 had run with iptables, NewCleaner deleted the jumps from
filter-FORWARD to DOCKER-FORWARD and DOCKER-ISOLATION-STAGE-1, then
removed Docker's chains. Those releases also jumped from FORWARD to the
filter table's DOCKER chain for each bridge ("-o docker0 -j DOCKER").
iptables refuses to delete a chain that a rule still jumps to, and
removeIPChains ignores the error. The cleaner's DelNetwork deleted the
per-bridge jump later, when the bridge driver restored the network, but
nothing tried to remove the chain again. The empty DOCKER chain
remained.

When the bridge driver has restored its networks and endpoints, call
the cleaner's new Done method, which removes the chains again.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2026-11-04 12:25:59 -05:00
Cory Snider 3f2a441dfd libnetwork/d/bridge: clean up legacy FORWARD rules
When the daemon started with the nftables backend after a release older
than 28.0.1 had run with iptables, the iptables cleaner's DelNetwork
left the per-bridge rules those releases put in filter-FORWARD:
"-i docker0 ! -o docker0 -j ACCEPT" and the ICC rules. The iptables
backend deleted them in setupNonInternalNetworkRules and setIcc, but
only when adding a network's rules, and DelNetwork returned early for an
internal network.

Delete all the legacy per-bridge FORWARD rules in
deleteLegacyFilterRules, which the iptables backend and the cleaner call
for every network.

With the iptables backend, setupIPTables deletes the legacy rules after
calling setupNonInternalNetworkRules, which used to delete
"-i docker0 ! -o docker0 -j ACCEPT" before adding the DOCKER-FORWARD
rule that replaces it. Now, for a moment, both rules are present. Both
accept outgoing packets from the bridge.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2026-11-04 12:25:59 -05:00
Cory Snider 1fc4e13cc5 daemon/network: match any type filter value
matchesType tests a network against only the first value of the type
filter. The values come from a map. Their order is random and changes
from one network to the next. A GET /networks request that filters on
both type=builtin and type=custom lists a random subset of the
networks. Before networks were filtered one at a time, the daemon
filtered the list once for each type value and listed every network
that matched any of them.

Match a network when its type is any of the filter's values.

integration-cli's TestDockerNetworkLsFilter checks this request but is
skipped in every run. Its OnlyDefaultNetworks requirement is met only
when GET /networks lists no networks at all. The daemon always lists
the predefined bridge, host and none networks. Port the test to
integration/network as TestNetworkListFilters, which uses the API
client. The new test checks the same id, name, type, label and driver
filter terms against two networks that it creates and the predefined
networks. It derives the expected results for type=custom and
driver=bridge from the unfiltered list, as the daemon can have other
networks. Remove the integration-cli test, its assertNwList helper and
the OnlyDefaultNetworks requirement. Nothing else uses them.

Add the combined type values to the filter unit test as well. Both
tests fail on the combined values without the fix.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2026-11-04 11:40:35 -05:00
Mend Renovate 2d2bb11ba2 fix(deps): update module github.com/aws/smithy-go to v1.28.8
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-11-04 16:12:17 +00:00
Sebastiaan van Stijn 1f98bfc847 Merge pull request #54100 from renovate-bot/renovate/aws-sdk-go-v2-monorepo
fix(deps): update aws-sdk-go-v2 monorepo
2026-11-04 17:02:26 +01:00
Sebastiaan van Stijn 7ec2f1d2d3 httpstatus: simplify distribution error status handling
Remove the redundant ErrorCoder type assertion and let the
recursive call handle unsupported error types.

Make all switch cases return explicitly.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-04 16:05:45 +01:00
Sebastiaan van Stijn 5df4160942 httpstatus: handle missing errdefs HTTP status codes
Add missing mappings for ErrFailedPrecondition (412) and
ErrResourceExhausted (429), aligning with containerd's errhttp
implementation.

Add table-driven tests covering the errdefs mappings, gRPC and
distribution errors, and wrapped and joined errors.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-04 16:05:40 +01:00
Sebastiaan van Stijn b56dc7e027 Merge pull request #54117 from renovate-bot/renovate/github-codeql-action-4.x
chore(deps): update github/codeql-action action to v4.39.2
2026-11-04 13:40:55 +01:00
Sebastiaan van Stijn f17fe622c7 streamformatter: FormatError: handle wrapped JSON errors
Use errors.AsType to preserve the original JSON error details
when the error is wrapped, instead of replacing them with a
generic error containing only the message.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-04 13:18:21 +01:00
Sebastiaan van Stijn 2097d62051 streamformatter: FormatError: remove uses of deprecated error field
This error response was added in [moby@1421293], at which time the response
only contained a flat `error` field. This field was deprecated in favor of
an `errorDetails` struct in [moby@3043c26], but failed to update `FormatError`,
which continued to use the deprecated
`error` field.

Update `FormatError` to use the non-deprecated field, and update the error
message to be more descriptive. We're intentionally not preserving the actual
JSON marshal error, as it should be very unlikely to happen, and quoting the
error-message is not guaranteed to produce a JSON-compatible format.

[moby@1421293]: https://github.com/moby/moby/commit/14212930e40439d0cfc635d56e084736867f9e30
[moby@3043c26]: https://github.com/moby/moby/commit/3043c2641990d94298c6377b7ef14709263a4709

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-04 12:52:56 +01:00
Sebastiaan van Stijn 37645965de streamformatter: TestFormatError: rewrite to a table-test
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-04 12:22:50 +01:00
Paweł Gronowski 9c39c6583d Merge pull request #54119 from thaJeztah/tagged_release
vendor: cloud.google.com/go/auth v0.24.1
2026-11-04 12:15:10 +01:00
Sebastiaan van Stijn a2f4aa4040 Merge pull request #54121 from renovate-bot/renovate/docker-cli-29.x
chore(deps): update dependency docker/cli to v29.9.3
2026-11-04 08:47:19 +01:00
Mend Renovate 3ed5da60b7 chore(deps): update dependency docker/cli to v29.9.3
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-11-04 02:48:35 +00:00
Sebastiaan van Stijn 7d66540389 vendor: cloud.google.com/go/auth v0.24.1
use a tagged release

- fix(auth): return empty tls.Certificate on secureconnect helper failure

full diff: https://github.com/googleapis/google-cloud-go/compare/dbc26066f70a...auth/v0.24.1

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-03 22:48:29 +01:00
Paweł Gronowski a82d77b3c6 Merge pull request #54114 from vvoland/update-swarmkit
vendor: github.com/moby/swarmkit/v2 v2.1.3
2026-11-03 22:32:30 +01:00
Mend Renovate 96ec77b60b chore(deps): update github/codeql-action action to v4.39.2
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-11-03 20:46:20 +00:00
Sebastiaan van Stijn 92c11378c5 Merge pull request #54111 from renovate-bot/renovate/docker-buildx-bin-0.x
chore(deps): update docker/buildx-bin docker tag to v0.38.2
2026-11-03 21:18:13 +01:00
Sebastiaan van Stijn f296630d5e Merge commit from fork
libn/d/overlay: reapply rules on firewalld reload
2026-11-03 21:14:30 +01:00
Paweł Gronowski 4788efb563 vendor: github.com/moby/swarmkit/v2 v2.1.3
full diff: https://github.com/moby/swarmkit/compare/49925db4331f...v2.1.3

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-11-03 21:11:37 +01:00
Cory Snider f006a6abcf libn/d/overlay: reapply rules on firewalld reload
With the iptables firewall backend, the overlay driver programs iptables
rules which mark VXLAN datagrams of encrypted networks for encryption,
drop cleartext VXLAN datagrams received for those networks, and strip
the encryption mark from datagrams marked by local processes. A
firewalld reload can flush these rules. The node then sends the
network's VXLAN datagrams in cleartext and accepts forged cleartext
datagrams for it until the last local endpoint of the network leaves and
another joins, or the daemon restarts.

On firewalld reload, restore all rules which were previously programmed
by the overlay driver.

Signed-off-by: Cory Snider <csnider@mirantis.com>
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-11-03 21:10:27 +01:00
Paweł Gronowski d242cde968 Merge pull request #54094 from thaJeztah/rm_network_methods
daemon: remove unused Daemon.GetNetworkByName, Daemon. GetNetworksByIDPrefix
2026-11-03 20:55:15 +01:00
Mend Renovate 67dcad5345 chore(deps): update docker/buildx-bin docker tag to v0.38.2
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-11-03 18:02:48 +00:00
Sebastiaan van Stijn 8bffe38a06 Merge pull request #54109 from thaJeztah/bump_yamlv2
vendor: go.yaml.in/yaml/v2 v2.4.5 (security)
2026-11-03 18:58:17 +01:00
Sebastiaan van Stijn 16de272a08 vendor: go.yaml.in/yaml/v2 v2.4.5
v2: Fix YAML unmarshaler validation bypass

Quoted null and tilde scalars bypass UnmarshalYAML, allowing invalid
values to escape application-defined validation. In applications
accepting configuration from less-trusted sources, this can lead to
denial of service or shared configuration corruption.

Require implicit scalar resolution before treating untagged scalars
as null. Add regression tests covering custom validation, both quote
styles, explicit tags, and actual null values.

full diff: https://github.com/yaml/go-yaml/compare/v2.4.4...v2.4.5

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-03 15:40:42 +01:00
Paweł Gronowski 0c86697d0b Merge pull request #54106 from crazy-max/buildkit-0.34.2
vendor: update buildkit to v0.34.2
2026-11-03 15:00:36 +01:00
Paweł Gronowski 9eb10da37f Merge pull request #54101 from thaJeztah/bump_yaml
vendor: go.yaml.in/yaml/v3 v3.0.6
2026-11-03 14:49:47 +01:00
Mend Renovate 8713fb081d fix(deps): update aws-sdk-go-v2 monorepo
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-11-03 13:33:31 +00:00
CrazyMax b29d4222a3 vendor: update fsutil to e075fd9305eb
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-11-03 13:51:47 +01:00
CrazyMax 0f7dd638fd vendor: update buildkit to v0.34.2
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-11-03 13:18:28 +01:00
Sebastiaan van Stijn b1bf12766e Merge pull request #54098 from renovate-bot/renovate/github.com-moby-swarmkit-v2-digest
fix(deps): update github.com/moby/swarmkit/v2 digest to 49925db
2026-11-03 09:23:47 +01:00
Sebastiaan van Stijn 8163ca3ec3 Merge pull request #54095 from renovate-bot/renovate/go.yaml.in-yaml-v3-3.x
fix(deps): update module go.yaml.in/yaml/v3 to v3.0.6 (security)
2026-11-03 09:23:19 +01:00
Sebastiaan van Stijn 40e5168df6 vendor: go.yaml.in/yaml/v3 v3.0.6
resolve: hint-class literal merge-key string "<<" so it's quoted on encode

full diff: https://github.com/yaml/go-yaml/compare/v3.0.5...v3.0.6

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-11-03 09:18:30 +01:00
Sebastiaan van Stijn 02e0f82cb4 Merge pull request #54096 from renovate-bot/renovate/docker-compose-bin-5.x
chore(deps): update docker/compose-bin docker tag to v5.7.0
2026-11-03 08:43:58 +01:00
Mend Renovate 54372359af fix(deps): update github.com/moby/swarmkit/v2 digest to 49925db
Signed-off-by: Mend Renovate <bot@renovateapp.com>
2026-11-02 18:24:45 +00:00
Sebastiaan van Stijn aed2b781ab Merge pull request #54053 from vvoland/c8d-version
daemon: Hide empty containerd Git revisions in docker version
2026-11-02 19:14:30 +01:00
Sebastiaan van Stijn f7886407b2 Merge pull request #54093 from vvoland/update-profiles
vendor: github.com/moby/profiles/apparmor & seccomp v0.3.0
2026-11-02 19:12:58 +01:00