Skip to content
Success

Changes

Summary

  1. Move StartedAt time to before starting the container (details)
  2. feat: ctx to client API (details)
  3. API: bump version to 1.46 (details)
  4. chore: remove repetitive words (details)
  5. Update GoDoc for ioutils on atomic writers (details)
  6. Makefile: refactoring .PHONY (details)
  7. Disable IPv6 for endpoints in '--ipv6=false' networks. (details)
  8. vendor: github.com/moby/swarmkit/v2 master (f3ffc0881d0e) (details)
  9. daemon/cluster/executor: Add volume `Subpath` (details)
  10. Add netiputil.AddrPortFromNet() (details)
  11. daemon: add nolint-comments for deprecated kernel-memory options, hooks (details)
  12. vendor: github.com/opencontainers/runtime-spec v1.2.0 (details)
  13. Update tags.cncf.io/container-device-interface to v0.7.1 (details)
  14. Windows DNS resolver forwarding (details)
  15. builder/normalizeWorkdir: Always return cleaned path (details)
  16. container/SetupWorkingDirectory: Don't mutate config (details)
  17. nil dereference fix on image history Created value (details)
  18. Include more details in errnotManifestOrIndex (details)
  19. c8d/list: Ignore unexpected image target (details)
  20. vendor: github.com/cilium/ebpf v0.12.3 (details)
  21. Dockerfile: update docker CLI to v26.1.0 (details)
  22. vendor: golang.org/x/mod v0.17.0 (details)
  23. vendor: golang.org/x/tools v0.16.0 (details)
  24. vendor: github.com/Microsoft/go-winio v0.6.2 (details)
  25. Do not forward DNS requests to self. (details)
  26. apparmor: Allow confined runc to kill containers (details)
  27. Add firewalld policy "docker-forwarding". (details)
  28. Update containerd to v1.7.16 (details)
  29. libnet/ipam: un-embed mutex from `addrSpace` (details)
  30. libnet/ipam: put `addrSpace` into a separate file (details)
  31. libnet/ipam: remove dead DumpDatabase() (details)
  32. libnet/ipam: split v4/v6 address spaces (details)
  33. libnet/netutils: remove dead util NetworkRange (details)
  34. libnet/ipamapi: add in/out structs for RequestPool (details)
  35. integration-cli: createNetwork: add t.Helper() (details)
  36. libnet/ipam: default-address-pools as Register arg (details)
  37. libnet: move ipam pkg to ipam/defaultipam (details)
  38. libnet/ipams/builtin: move to libnet/ipams (details)
  39. libnet/ipams/defaultipam: add a Register fn (details)
  40. libnet/ipams/windowsipam: that driver knows its name (details)
  41. libnet/ipams: Unconditionally call windowsipam.Register (details)
  42. libnet/ipams: register all drivers (details)
  43. libnet/ipamutils: no more global state (details)
  44. libnet/ipams/defaultipam: move driver name to its pkg (details)
  45. libnet/ipams/null: move driver name to its pkg (details)
  46. Option to avoid deleting the kernel_ll address from bridges. (details)
  47. Allow for a read-only "/proc/sys/net". (details)
  48. Do not remove kernel-ll addresses from bridges (details)
  49. Refactor IPv6 subnet validation (details)
  50. Disallow IPv6 multicast as bridge n/w subnet (details)
  51. Don't delete IPv6 multicast addresses from a bridge (details)
  52. Fix TestDockerSwarmSuite/TestSwarmInitIPv6 (details)
  53. Remove integration-cli TestDaemonSuite/TestDaemonIPv6Enabled (details)
  54. Delete broken/unused test requirement helper "IPv6" (details)
  55. Makefile: bundles is not PHONY (details)
  56. update to go1.21.10 (details)
  57. libnet: don't check if ctrler store is nil (details)
  58. libnet/d/remote: replace errorWithRollback (details)
Commit d4f61f92fd98e5c738bb55780742c0fd7f39dcf8 by l.s.andringa
Move StartedAt time to before starting the container

Signed-off-by: Lars Andringa <l.s.andringa@rug.nl>
Signed-off-by: LarsSven <l.s.andringa@rug.nl>

Replaced boolean parameter by IsZero check

Signed-off-by: LarsSven <l.s.andringa@rug.nl>

Separated SetRunning into two functions

Signed-off-by: LarsSven <l.s.andringa@rug.nl>

Apply suggestions from code review

Documentation fixes

Co-authored-by: Paweł Gronowski <me@woland.xyz>
Signed-off-by: LarsSven <l.s.andringa@rug.nl>
The file was modified daemon/start.go (diff)
The file was modified daemon/delete_test.go (diff)
The file was modified container/state_test.go (diff)
The file was modified container/state.go (diff)
The file was modified integration/container/daemon_linux_test.go (diff)
The file was modified daemon/monitor.go (diff)
Commit 80d92fd45007b6395dc2db5f93def3b159dacd7f by 18033717+Benehiko
feat: ctx to client API

Signed-off-by: Alano Terblanche <18033717+Benehiko@users.noreply.github.com>
The file was modified client/image_pull.go (diff)
The file was modified client/image_search.go (diff)
The file was modified client/image_search_test.go (diff)
The file was modified client/image_pull_test.go (diff)
The file was modified api/types/client.go (diff)
The file was modified client/plugin_install.go (diff)
The file was modified client/image_push_test.go (diff)
The file was modified client/image_push.go (diff)
The file was modified api/types/image/opts.go (diff)
Commit 8bbba6315ffcbd61d6c556df723e4f8bde986f21 by Paweł Gronowski
API: bump version to 1.46

Docker 26.0 was released with API v1.45, so any change in the API should
now target v1.46.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified api/common.go (diff)
The file was modified api/swagger.yaml (diff)
The file was modified docs/api/version-history.md (diff)
Commit 98d51b510d9283d7f19347208847c7fe0e080a2c by cmoman
chore: remove repetitive words

chore: remove repetitive words

Signed-off-by: avoidaway <cmoman@126.com>
The file was modified docs/api/v1.27.yaml (diff)
The file was modified docs/api/v1.35.yaml (diff)
The file was modified docs/api/v1.33.yaml (diff)
The file was modified docs/api/v1.34.yaml (diff)
The file was modified docs/api/v1.36.yaml (diff)
The file was modified docs/api/v1.25.yaml (diff)
The file was modified docs/api/v1.26.yaml (diff)
The file was modified docs/api/v1.32.yaml (diff)
The file was modified docs/api/v1.37.yaml (diff)
The file was modified contrib/download-frozen-image-v2.sh (diff)
Commit 57a12a372f22c615b6ee98b0db6fd174b913795f by antonio
Update GoDoc for ioutils on atomic writers

Unlike its stdlib counterparts, AtomicFileWriter does not take into
consideration umask due to its use of chmod. Failure to recognize this
may cause subtle problems like the one described in #47498.

Therefore the documentation has been updated to let users know that
umask is not taken into consideration when using AtomicFileWriter.

Closes #47516.

Signed-off-by: Antonio Aguilar <antonio@zoftko.com>
The file was modified pkg/ioutils/fswriters.go (diff)
Commit 194cbd6e7d4978bc5cf441b3f3f7bfc45fe46392 by 704566072
Makefile: refactoring .PHONY

Signed-off-by: xiaochangbai <704566072@qq.com>
The file was modified Makefile (diff)
Commit 57dd56726a5bb581b09661929927aa443d530b69 by rob.murray
Disable IPv6 for endpoints in '--ipv6=false' networks.

No IPAM IPv6 address is given to an interface in a network with
'--ipv6=false', but the kernel would assign a link-local address and,
in a macvlan/ipvlan network, the interface may get a SLAAC-assigned
address.

So, disable IPv6 on the interface to avoid that.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/network/macvlan/macvlan_test.go (diff)
The file was modified integration/network/ipvlan/ipvlan_test.go (diff)
The file was modified integration/networking/bridge_test.go (diff)
The file was modified libnetwork/osl/interface_linux.go (diff)
Commit 5368c3a04f8422e3da6b515838ddf33ee9620421 by Paweł Gronowski
vendor: github.com/moby/swarmkit/v2 master (f3ffc0881d0e)

full diff: https://github.com/moby/swarmkit/compare/911c97650f2e...f3ffc0881d0e

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified vendor.mod (diff)
The file was modified vendor/github.com/moby/swarmkit/v2/api/types.proto (diff)
The file was modified vendor/github.com/moby/swarmkit/v2/api/types.pb.go (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/moby/swarmkit/v2/api/api.pb.txt (diff)
The file was modified vendor/modules.txt (diff)
Commit d3c051318f1576ecadf04657b328792ef6513a5d by Paweł Gronowski
daemon/cluster/executor: Add volume `Subpath`

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified daemon/cluster/convert/service_test.go (diff)
The file was modified daemon/cluster/executor/container/container.go (diff)
The file was modified daemon/cluster/convert/container.go (diff)
Commit f07644e17e151307d4fe302ee3b292d866b56de9 by rob.murray
Add netiputil.AddrPortFromNet()

Co-authored-by: Cory Snider <csnider@mirantis.com>
Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/internal/netiputil/netiputil.go (diff)
Commit f5209d23a8a9df3db6287a1e2c60638be1bf920c by Sebastiaan van Stijn
daemon: add nolint-comments for deprecated kernel-memory options, hooks

This adds some nolint-comments for the deprecated kernel-memory options; we
deprecated these, but they could technically still be accepted by alternative
runtimes.

    daemon/daemon_unix.go:108:3: SA1019: memory.Kernel is deprecated: kernel-memory limits are not supported in cgroups v2, and were obsoleted in [kernel v5.4]. This field should no longer be used, as it may be ignored by runtimes. (staticcheck)
            memory.Kernel = &config.KernelMemory
            ^
    daemon/update_linux.go:63:3: SA1019: memory.Kernel is deprecated: kernel-memory limits are not supported in cgroups v2, and were obsoleted in [kernel v5.4]. This field should no longer be used, as it may be ignored by runtimes. (staticcheck)
            memory.Kernel = &resources.KernelMemory
            ^

Prestart hooks are deprecated, and more granular hooks should be used instead.
CreateRuntime are the closest equivalent, and executed in the same locations
as Prestart-hooks, but depending on what these hooks do, possibly one of the
other hooks could be used instead (such as CreateContainer or StartContainer).
As these hooks are still supported, this patch adds nolint comments, but adds
some TODOs to consider migrating to something else;

    daemon/nvidia_linux.go:86:2: SA1019: s.Hooks.Prestart is deprecated: use [Hooks.CreateRuntime], [Hooks.CreateContainer], and [Hooks.StartContainer] instead, which allow more granular hook control during the create and start phase. (staticcheck)
        s.Hooks.Prestart = append(s.Hooks.Prestart, specs.Hook{
        ^

    daemon/oci_linux.go:76:5: SA1019: s.Hooks.Prestart is deprecated: use [Hooks.CreateRuntime], [Hooks.CreateContainer], and [Hooks.StartContainer] instead, which allow more granular hook control during the create and start phase. (staticcheck)
                    s.Hooks.Prestart = append(s.Hooks.Prestart, specs.Hook{
                    ^

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified daemon/update_linux.go (diff)
The file was modified daemon/nvidia_linux.go (diff)
The file was modified daemon/oci_linux.go (diff)
The file was modified daemon/daemon_unix.go (diff)
Commit 0d6a1a212b00b67543e83e9cc4a45f098f4abb61 by Sebastiaan van Stijn
vendor: github.com/opencontainers/runtime-spec v1.2.0

- deprecate Prestart hook
- deprecate kernel memory limits

Additions

- config: add idmap and ridmap mount options
- config.md: allow empty mappings for [r]idmap
- features-linux: Expose idmap information
- mount: Allow relative mount destinations on Linux
- features: add potentiallyUnsafeConfigAnnotations
- config: add support for org.opencontainers.image annotations

Minor fixes:

- config: improve bind mount and propagation doc

full diff: https://github.com/opencontainers/runtime-spec/compare/v1.1.0...v1.2.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor.sum (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/opencontainers/runtime-spec/specs-go/features/features.go (diff)
The file was modified vendor/github.com/opencontainers/runtime-spec/specs-go/version.go (diff)
The file was modified vendor/github.com/opencontainers/runtime-spec/specs-go/config.go (diff)
Commit 745e2356ab01363a02cfec947c624a9f6220fe7f by elezar
Update tags.cncf.io/container-device-interface to v0.7.1

This also bumps the maximum supported CDI specification to v0.7.0.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
The file was modified vendor.mod (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/doc.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/specs-go/config.go (diff)
The file was removedvendor/tags.cncf.io/container-device-interface/internal/multierror/multierror.go
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/spec.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/container-edits.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/version.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/specs-go/oci.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/cache.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/spec-dirs.go (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/internal/validation/k8s/objectmeta.go (diff)
The file was addedvendor/tags.cncf.io/container-device-interface/pkg/cdi/default-cache.go
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/registry.go (diff)
Commit 6c68be24a2e6a4dea621b82ab4245e4ed363158e by rob.murray
Windows DNS resolver forwarding

Make the internal DNS resolver for Windows containers forward requests
to upsteam DNS servers when it cannot respond itself, rather than
returning SERVFAIL.

Windows containers are normally configured with the internal resolver
first for service discovery (container name lookup), then external
resolvers from '--dns' or the host's networking configuration.

When a tool like ping gets a SERVFAIL from the internal resolver, it
tries the other nameservers. But, nslookup does not, and with this
change it does not need to.

The internal resolver learns external server addresses from the
container's HNSEndpoint configuration, so it will use the same DNS
servers as processes in the container.

The internal resolver for Windows containers listens on the network's
gateway address, and each container may have a different set of external
DNS servers. So, the resolver uses the source address of the DNS request
to select external resolvers.

On Windows, daemon.json feature option 'windows-no-dns-proxy' can be used
to prevent the internal resolver from forwarding requests (restoring the
old behaviour).

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/networking/resolvconf_test.go (diff)
The file was removedlibnetwork/sandbox_unsupported.go
The file was modified libnetwork/network_unix.go (diff)
The file was modified daemon/container_operations_windows.go (diff)
The file was modified libnetwork/resolver.go (diff)
The file was modified libnetwork/sandbox_dns_unix.go (diff)
The file was modified daemon/container_operations.go (diff)
The file was modified libnetwork/network.go (diff)
The file was addedlibnetwork/sandbox_options_windows.go
The file was modified libnetwork/network_windows.go (diff)
The file was modified daemon/config/config_linux.go (diff)
The file was modified libnetwork/endpoint.go (diff)
The file was addedlibnetwork/sandbox_windows.go
The file was addedlibnetwork/network_windows_test.go
The file was modified libnetwork/sandbox_linux.go (diff)
The file was modified daemon/container_operations_unix.go (diff)
The file was modified libnetwork/sandbox.go (diff)
Commit a4d5b6b4d081fadfe933e49bd4d71d8c91ffa06f by Paweł Gronowski
builder/normalizeWorkdir: Always return cleaned path

The `normalizeWorkdir` function has two branches, one that returns a
result of `filepath.Join` which always returns a cleaned path, and
another one where the input string is returned unmodified.

To make these two outputs consistent, also clean the path in the second
branch.

This also makes the cleaning of the container workdir explicit in the
`normalizeWorkdir` function instead of relying on the
`SetupWorkingDirectory` to mutate it.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified builder/dockerfile/dispatchers_unix.go (diff)
The file was modified integration-cli/docker_cli_build_test.go (diff)
Commit 7532420f3b4f7c62fb6c0de3c92b24ad91c380a4 by Paweł Gronowski
container/SetupWorkingDirectory: Don't mutate config

Don't mutate the container's `Config.WorkingDir` permanently with a
cleaned path when creating a working directory.

Move the `filepath.Clean` to the `translateWorkingDir` instead.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified container/container.go (diff)
The file was modified integration/build/build_test.go (diff)
The file was modified daemon/container.go (diff)
The file was modified integration/container/run_linux_test.go (diff)
Commit ab570ab3d62038b3d26f96a9bb585d0b6095b9b4 by 47751006+krissetto
nil dereference fix on image history Created value

Issue was caused by the changes here https://github.com/moby/moby/pull/45504
First released in v25.0.0-beta.1

Signed-off-by: Christopher Petito <47751006+krissetto@users.noreply.github.com>
The file was modified daemon/images/image_history.go (diff)
Commit 6667e96dad672cd489d8ff258e4edc28317cbd09 by Brian Goff
Include more details in errnotManifestOrIndex

This error is returned when attempting to walk a descriptor that
*should* be an index or a manifest.
Without this the error is not very helpful sicne there's no way to tell
what triggered it.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
The file was modified daemon/containerd/image_manifest.go (diff)
Commit 7d95fe8db59ab6bb7c18e3179c6e54d2326e8e61 by Paweł Gronowski
c8d/list: Ignore unexpected image target

Don't fail-fast when encountering an image that targets an unexpected
descriptor (neither a manifest nor index). Log a warning instead.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified daemon/containerd/image_list_test.go (diff)
The file was modified internal/testutils/specialimage/multilayer.go (diff)
The file was addedinternal/testutils/specialimage/configtarget.go
The file was modified daemon/containerd/image_list.go (diff)
Commit df831c943f5000b35ddfb12f5695902aaad55693 by Sebastiaan van Stijn
vendor: github.com/cilium/ebpf v0.12.3

full diff: https://github.com/cilium/ebpf/compare/v0.11.0...v0.12.3

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/layout.go
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/func.go (diff)
The file was modified vendor/github.com/cilium/ebpf/prog.go (diff)
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/marshal.go
The file was modified vendor/github.com/cilium/ebpf/run-tests.sh (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/sys/syscall.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/vdso.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/syscalls.go (diff)
The file was modified vendor/github.com/cilium/ebpf/elf_reader.go (diff)
The file was modified vendor/github.com/cilium/ebpf/info.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/marshal.go (diff)
The file was addedvendor/github.com/cilium/ebpf/netlify.toml
The file was modified vendor/github.com/cilium/ebpf/btf/ext_info.go (diff)
The file was modified vendor/github.com/cilium/ebpf/Makefile (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/unix/types_linux.go (diff)
The file was modified vendor/github.com/cilium/ebpf/marshalers.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/alu.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/btf.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/unix/types_other.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/cilium/ebpf/.clang-format (diff)
The file was modified vendor/github.com/cilium/ebpf/link/program.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/tracefs/kprobe.go (diff)
The file was modified vendor/github.com/cilium/ebpf/syscalls.go (diff)
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/doc.go
The file was modified vendor/github.com/cilium/ebpf/internal/kconfig/kconfig.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/load_store_string.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/instruction.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/endian_be.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/endian_le.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/alu_string.go (diff)
The file was modified vendor/github.com/cilium/ebpf/types_string.go (diff)
The file was modified vendor/github.com/cilium/ebpf/.golangci.yaml (diff)
The file was modified vendor/github.com/cilium/ebpf/link/iter.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/core.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/opcode.go (diff)
The file was addedvendor/github.com/cilium/ebpf/btf/feature.go
The file was modified vendor/github.com/cilium/ebpf/btf/btf_types.go (diff)
The file was modified vendor/github.com/cilium/ebpf/types.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/uprobe.go (diff)
The file was modified vendor/github.com/cilium/ebpf/linker.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/jump.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/format.go (diff)
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/buffer.go
The file was modified vendor/github.com/cilium/ebpf/map.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/kprobe_multi.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/types.go (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/github.com/cilium/ebpf/README.md (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/load_store.go (diff)
The file was modified vendor/github.com/cilium/ebpf/collection.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/sys/types.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/strings.go (diff)
Commit e314113ad7b799d705610eb7caae38d643fa5908 by Paweł Gronowski
Dockerfile: update docker CLI to v26.1.0

Update the CLI that's used in the dev-container

- full diff: https://github.com/docker/cli/compare/v26.0.0...v26.1.0

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified Dockerfile (diff)
Commit 85c990037767d9556af033715bba57843b4a2e57 by Sebastiaan van Stijn
vendor: golang.org/x/mod v0.17.0

no changes in vendored codee

full diff: https://github.com/golang/mod/compare/v0.13.0...v0.17.0

- modfile: do not collapse if there are unattached comments within blocks
- modfile: fix crash on AddGoStmt in empty File
- modfile: improve directory path detection and error text consistency
- modfile: use new go version string format in WorkFile.add error
- sumdb: replace globsMatchPath with module.MatchPrefixPatterns
- sumdb/tlog: make NewTiles only generate strictly necessary tiles

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor.mod (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/modules.txt (diff)
Commit 2140e7e0f5f47464445182cfa0fb2663ff63f6f8 by Sebastiaan van Stijn
vendor: golang.org/x/tools v0.16.0

It's not used in our code, but some dependencies have a "tools.go" to
force it; updating to a version that doesn't depend on golang.org/x/sys/execabs

full diff: https://github.com/golang/tools/compare/v0.14.0...v0.16.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was addedvendor/golang.org/x/tools/internal/versions/types_go121.go
The file was modified vendor.sum (diff)
The file was modified vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go (diff)
The file was modified vendor/golang.org/x/tools/go/packages/external.go (diff)
The file was modified vendor/golang.org/x/tools/internal/gocommand/invoke.go (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/types.go
The file was modified vendor/modules.txt (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/types_go122.go
The file was modified vendor/golang.org/x/tools/go/packages/golist.go (diff)
The file was removedvendor/golang.org/x/sys/execabs/execabs_go119.go
The file was removedvendor/golang.org/x/sys/execabs/execabs_go118.go
The file was modified vendor/golang.org/x/tools/go/packages/packages.go (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/versions_go122.go
The file was removedvendor/golang.org/x/sys/execabs/execabs.go
The file was modified vendor/golang.org/x/tools/go/packages/golist_overlay.go (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/golang.org/x/tools/internal/packagesinternal/packages.go (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/gover.go
The file was modified vendor/golang.org/x/tools/go/types/objectpath/objectpath.go (diff)
The file was removedvendor/golang.org/x/tools/internal/typesinternal/objectpath.go
The file was addedvendor/golang.org/x/tools/internal/versions/versions_go121.go
Commit e3c59640d5d15acc54616790bdae5bf0974c505a by Sebastiaan van Stijn
vendor: github.com/Microsoft/go-winio v0.6.2

- fileinfo: internally fix FileBasicInfo memory alignment (fixes compatibility
  with go1.22)

full diff: https://github.com/Microsoft/go-winio/compare/v0.6.1...v0.6.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go (diff)
The file was addedvendor/github.com/Microsoft/go-winio/pkg/etw/opcode_string.go
The file was modified vendor.sum (diff)
The file was addedvendor/github.com/Microsoft/go-winio/pkg/etw/level_string.go
The file was modified vendor.mod (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/bindfilter/bind_filter.go (diff)
The file was removedvendor/github.com/Microsoft/go-winio/tools.go
The file was modified vendor/github.com/Microsoft/go-winio/fileinfo.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/.golangci.yml (diff)
The file was modified vendor/github.com/Microsoft/go-winio/vhd/zvhd_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/backup.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/file.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/zsyscall_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pipe.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/sd.go (diff)
The file was removedvendor/golang.org/x/tools/cmd/stringer/stringer.go
The file was modified vendor/github.com/Microsoft/go-winio/internal/socket/socket.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/zsyscall_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/hvsock.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/fs/resolve.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/privilege.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/backuptar/tar.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/fieldopt.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/bindfilter/zsyscall_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/eventdata.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/internal/fs/fs.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/eventdescriptor.go (diff)
Commit 87506142d88fa3c0e10963144bef0651b60cfafc by rob.murray
Do not forward DNS requests to self.

If a container is configured with the internal DNS resolver's own
address as an external server, try the next ext server rather than
recursing (return SERVFAIL if there are no other servers).

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/internal/container/ops.go (diff)
The file was modified integration/network/dns_test.go (diff)
The file was modified libnetwork/resolver.go (diff)
Commit 5ebe2c0d6bf30ad76550f0dc8cf35a71098ba5fc by nechtom
apparmor: Allow confined runc to kill containers

/usr/sbin/runc is confined with "runc" profile[1] introduced in AppArmor
v4.0.0. This change breaks stopping of containers, because the profile
assigned to containers doesn't accept signals from the "runc" peer.
AppArmor >= v4.0.0 is currently part of Ubuntu Mantic (23.10) and later.

In the case of Docker, this regression is hidden by the fact that
dockerd itself sends SIGKILL to the running container after runc fails
to stop it. It is still a regression, because graceful shutdowns of
containers via "docker stop" are no longer possible, as SIGTERM from
runc is not delivered to them. This can be seen in logs from dockerd
when run with debug logging enabled and also from tracing signals with
killsnoop utility from bcc[2] (in bpfcc-tools package in Debian/Ubuntu):

  Test commands:

    root@cloudimg:~# docker run -d --name test redis
    ba04c137827df8468358c274bc719bf7fc291b1ed9acf4aaa128ccc52816fe46
    root@cloudimg:~# docker stop test

  Relevant syslog messages (with wrapped long lines):

    Apr 23 20:45:26 cloudimg kernel: audit:
      type=1400 audit(1713905126.444:253): apparmor="DENIED"
      operation="signal" class="signal" profile="docker-default" pid=9289
      comm="runc" requested_mask="receive" denied_mask="receive"
      signal=kill peer="runc"
    Apr 23 20:45:36 cloudimg dockerd[9030]:
      time="2024-04-23T20:45:36.447016467Z"
      level=warning msg="Container failed to exit within 10s of kill - trying direct SIGKILL"
      container=ba04c137827df8468358c274bc719bf7fc291b1ed9acf4aaa128ccc52816fe46
      error="context deadline exceeded"

  Killsnoop output after "docker stop ...":

    root@cloudimg:~# killsnoop-bpfcc
    TIME      PID      COMM             SIG  TPID     RESULT
    20:51:00  9631     runc             3    9581     -13
    20:51:02  9637     runc             9    9581     -13
    20:51:12  9030     dockerd          9    9581     0

This change extends the docker-default profile with rules that allow
receiving signals from processes that run confined with either runc or
crun profile (crun[4] is an alternative OCI runtime that's also confined
in AppArmor >= v4.0.0, see [1]). It is backward compatible because the
peer value is a regular expression (AARE) so the referenced profile
doesn't have to exist for this profile to successfully compile and load.

Note that the runc profile has an attachment to /usr/sbin/runc. This is
the path where the runc package in Debian/Ubuntu puts the binary. When
the docker-ce package is installed from the upstream repository[3], runc
is installed as part of the containerd.io package at /usr/bin/runc.
Therefore it's still running unconfined and has no issues sending
signals to containers.

[1] https://gitlab.com/apparmor/apparmor/-/commit/2594d936
[2] https://github.com/iovisor/bcc/blob/master/tools/killsnoop.py
[3] https://download.docker.com/linux/ubuntu
[4] https://github.com/containers/crun

Signed-off-by: Tomáš Virtus <nechtom@gmail.com>
The file was modified profiles/apparmor/template.go (diff)
Commit ff8de5e15690ff88fd5bae59918915effb46faef by rob.murray
Add firewalld policy "docker-forwarding".

Allow forwarding from any firewalld zone to the 'docker' zone.

This makes it possible to use routable IPv6 addresses on a bridge
network, with masquerading disabled, and have the host forward packets
to it.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/iptables/firewalld.go (diff)
Commit eeec716e332e5c058dfe70ddc0006d8552f632b2 by derek
Update containerd to v1.7.16

Includes fix for HTTP fallback

Signed-off-by: Derek McGowan <derek@mcg.dev>
The file was modified vendor/github.com/containerd/containerd/services/server/config/config.go (diff)
The file was modified vendor/github.com/containerd/containerd/remotes/docker/authorizer.go (diff)
The file was modified vendor/github.com/containerd/containerd/plugin/plugin.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/containerd/containerd/RELEASES.md (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/github.com/containerd/containerd/pkg/deprecation/deprecation.go (diff)
The file was modified vendor/github.com/containerd/containerd/Vagrantfile (diff)
The file was modified vendor/github.com/containerd/containerd/remotes/docker/resolver.go (diff)
The file was modified vendor/github.com/containerd/containerd/version/version.go (diff)
The file was modified vendor.sum (diff)
Commit a047d4b1df4664d9b4cb7ff9b320756d009f690b by Albin Kerouanton
libnet/ipam: un-embed mutex from `addrSpace`

Embedding `sync.Mutex` into a struct is considered a bad practice
as it makes the mutex methods part of the embedding struct's API.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipam/structures.go (diff)
Commit df88857e6cd265e0b5ccd29c9e4db5f3db5c16fd by Albin Kerouanton
libnet/ipam: put `addrSpace` into a separate file

`addrSpace` methods are currently scattered in two different files.
As upcoming work will rewrite some of these methods, better put them
into a separate file.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipam/structures.go (diff)
The file was addedlibnetwork/ipam/address_space.go
Commit 199c72cb5d9bf87b230700e77080b3a88dc007d9 by Albin Kerouanton
libnet/ipam: remove dead DumpDatabase()

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipam/address_space.go (diff)
Commit 37a81cd04dcdf60f40cce2fa09498cc23172625c by Albin Kerouanton
libnet/ipam: split v4/v6 address spaces

Address spaces are a continuum of addresses that can be used for a
specific purpose (ie. 'local' for unmanaged containers, 'global for
Swarm). v4 and v6 addresses aren't of the same size -- hence
combining them into a single address space doesn't form a continuum.
Better set them apart into two different address spaces.

Also, the upcoming rewrite of `addrSpace` will benefit from that
split.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/address_space.go (diff)
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipam/allocator_test.go (diff)
The file was modified libnetwork/ipam/structures.go (diff)
Commit 82aae0fe50e55d4f217c0c3b5934a0a9210a6775 by Albin Kerouanton
libnet/netutils: remove dead util NetworkRange

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/netutils/utils.go (diff)
The file was modified libnetwork/netutils/utils_linux_test.go (diff)
Commit 115de5ff3d16dbec510923e166950556071693ee by Albin Kerouanton
libnet/ipamapi: add in/out structs for RequestPool

The `RequestPool` method has many args and named returns. This
makes the code hard to follow at times. This commit adds one struct,
`PoolRequest`, to replace these args, and one struct, `AllocatedPool`,
to replace these named returns.

Both structs' fields are properly documented to better define their
semantics, and their relationship with address allocation.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/cnmallocator/networkallocator_test.go (diff)
The file was modified libnetwork/ipam/allocator_test.go (diff)
The file was modified libnetwork/ipams/windowsipam/windowsipam.go (diff)
The file was modified libnetwork/ipams/remote/remote.go (diff)
The file was modified libnetwork/network.go (diff)
The file was modified libnetwork/ipams/remote/remote_test.go (diff)
The file was modified libnetwork/ipam/parallel_test.go (diff)
The file was modified libnetwork/cnmallocator/networkallocator.go (diff)
The file was modified libnetwork/ipams/null/null_test.go (diff)
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipamapi/contract.go (diff)
The file was modified libnetwork/ipams/null/null.go (diff)
The file was modified libnetwork/ipams/windowsipam/windowsipam_test.go (diff)
Commit 1d5a12dfb1ecb28cbe8070de056595e37826319b by Albin Kerouanton
integration-cli: createNetwork: add t.Helper()

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified integration-cli/docker_api_network_test.go (diff)
Commit e8644c3e0e8aed98f11ef27f15b124c0ee5c6dea by Albin Kerouanton
libnet/ipam: default-address-pools as Register arg

Prior to this change, daemon's `default-address-pools` param would
be passed to `SetDefaultIPAddressPool()` to set a global var named
`defaultAddressPool`. This var would then be retrieved during the
`default` IPAM driver registration. Both steps were executed in
close succession during libnet's controller initialization.

This change removes the global var and just pass the user-defined
`default-address-pools` to the `default` driver's `Register` fn.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/builtin/builtin_windows.go (diff)
The file was modified libnetwork/drivers_ipam.go (diff)
The file was modified libnetwork/ipams/builtin/builtin_unix.go (diff)
The file was modified libnetwork/ipams/builtin/builtin.go (diff)
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
Commit 29f2ca04e0695feb7d232bf3eb03c6dedac378f6 by Albin Kerouanton
libnet: move ipam pkg to ipam/defaultipam

All drivers except the default ipam driver are stored in ipams/.
Since `default` isn't a valid Go pkg name, this package is
renamed to `defaultipam`, following `windowsipam` example.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was removedlibnetwork/ipam/allocator_test.go
The file was addedlibnetwork/ipams/defaultipam/parallel_test.go
The file was removedlibnetwork/ipam/allocator.go
The file was modified libnetwork/ipams/builtin/builtin.go (diff)
The file was removedlibnetwork/ipam/address_space.go
The file was addedlibnetwork/ipams/defaultipam/allocator.go
The file was addedlibnetwork/ipams/defaultipam/address_space.go
The file was addedlibnetwork/ipams/defaultipam/allocator_test.go
The file was addedlibnetwork/ipams/defaultipam/structures.go
The file was removedlibnetwork/ipam/parallel_test.go
The file was removedlibnetwork/ipam/structures.go
Commit 218394cada882b7e73cb19dabb4df68cfbea3c9c by Albin Kerouanton
libnet/ipams/builtin: move to libnet/ipams

Packages in libnet/ipams are drivers, except builtin -- it's used
to register drivers. Move files one level up and delete this pkg.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
The file was removedlibnetwork/ipams/builtin/builtin.go
The file was removedlibnetwork/ipams/builtin/builtin_windows.go
The file was addedlibnetwork/ipams/drivers_windows.go
The file was addedlibnetwork/ipams/drivers.go
The file was addedlibnetwork/ipams/drivers_unix.go
The file was modified libnetwork/drivers_ipam.go (diff)
The file was removedlibnetwork/ipams/builtin/builtin_unix.go
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
Commit 8cec9f0dcaa3e56972a61aa4634621c65cd1f7d1 by Albin Kerouanton
libnet/ipams/defaultipam: add a Register fn

All drivers except the default have a Register function. Before this
change, default's registration was handled by another package. Move
this logic into the driver pkg.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was removedlibnetwork/ipams/drivers.go
The file was modified libnetwork/ipams/drivers_unix.go (diff)
The file was modified libnetwork/ipams/defaultipam/allocator.go (diff)
The file was modified libnetwork/ipams/drivers_windows.go (diff)
Commit ae9e4319b07c35a18db58255962307ddec4502ec by Albin Kerouanton
libnet/ipams/windowsipam: that driver knows its name

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/windowsipam/windowsipam.go (diff)
The file was modified libnetwork/ipams/drivers_windows.go (diff)
Commit eda47500fc8a2a8de6b2f93dad4f4cea0726e8aa by Albin Kerouanton
libnet/ipams: Unconditionally call windowsipam.Register

This function is made a no-op on non-windows platform.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was removedlibnetwork/ipams/drivers_windows.go
The file was removedlibnetwork/ipams/drivers_unix.go
The file was modified libnetwork/ipams/windowsipam/windowsipam_test.go (diff)
The file was addedlibnetwork/ipams/windowsipam/windowsipam_other.go
The file was addedlibnetwork/ipams/drivers.go
The file was modified libnetwork/ipams/windowsipam/windowsipam.go (diff)
Commit 3c9718144f22557e7448c70d22129e4602d0984d by Albin Kerouanton
libnet/ipams: register all drivers

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/drivers.go (diff)
The file was removedlibnetwork/drivers_ipam.go
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
The file was modified libnetwork/controller.go (diff)
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
Commit 0db56de78e2f7d156fe18ea85f0daa9e9e686f83 by Albin Kerouanton
libnet/ipamutils: no more global state

Prior to this change, cnmallocator would call
`ConfigGlobalScopeDefaultNetworks` right before initializing its
IPAM drivers. This function was mutating some global state used
during drivers init.

This change just remove the global state, and adds an arg to
ipams.Register and defaultipam.Register to pass the global pools
by arguments instead.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
The file was modified libnetwork/ipams/defaultipam/allocator.go (diff)
The file was modified libnetwork/ipams/drivers.go (diff)
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
The file was modified libnetwork/controller.go (diff)
The file was modified libnetwork/ipamutils/utils.go (diff)
The file was modified libnetwork/ipamutils/utils_test.go (diff)
Commit f2387f3632437af8fcdc0fc41f4b92e34eaae138 by Albin Kerouanton
libnet/ipams/defaultipam: move driver name to its pkg

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/network_unix.go (diff)
The file was modified libnetwork/cnmallocator/networkallocator.go (diff)
The file was modified libnetwork/libnetwork_linux_test.go (diff)
The file was modified libnetwork/cnmallocator/provider.go (diff)
The file was modified libnetwork/endpoint_unix_test.go (diff)
The file was modified libnetwork/ipams/defaultipam/allocator.go (diff)
The file was modified libnetwork/network_windows.go (diff)
The file was modified libnetwork/network.go (diff)
The file was modified libnetwork/ipamapi/contract.go (diff)
The file was modified libnetwork/libnetwork_internal_test.go (diff)
The file was modified libnetwork/sandbox_unix_test.go (diff)
Commit c5376e534c5f2c7e16f6480609232fff1f8f85b7 by Albin Kerouanton
libnet/ipams/null: move driver name to its pkg

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/libnetwork_linux_test.go (diff)
The file was modified libnetwork/ipamapi/contract.go (diff)
The file was modified libnetwork/ipams/null/null.go (diff)
Commit 57ada4b8481f8a5a138b9ed312135b148eaf6d09 by rob.murray
Option to avoid deleting the kernel_ll address from bridges.

If env var DOCKER_BRIDGE_PRESERVE_KERNEL_LL=1, don't assign fe80::1/64
to a bridge, and don't delete any link local address with prefix fe80::/64.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/setup_ipv6_linux.go (diff)
The file was modified libnetwork/drivers/bridge/interface_linux.go (diff)
The file was modified integration/networking/bridge_test.go (diff)
Commit 01ea18f1e3b0ce07f6c77f4e4741e0e0bdb8edd5 by rob.murray
Allow for a read-only "/proc/sys/net".

If dockerd runs on a host with a read-only /proc/sys/net filesystem,
it isn't able to enable or disable IPv6 on network interfaces when
attaching a container to a network (including initial networks during
container creation).

In release 26.0.2, a read-only /proc/sys/net meant container creation
failed in all cases.

So, don't attempt to enable/disable IPv6 on an interface if it's already
set appropriately.

If it's not possible to enable IPv6 when it's needed, just log (because
that's what libnetwork has always done if IPv6 is disabled in the
kernel).

If it's not possible to disable IPv6 when it needs to be disabled,
refuse to create the container and raise an error that suggests setting
environment variable "DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE=1", to tell
the daemon it's ok to ignore the problem.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/networking/bridge_test.go (diff)
The file was modified libnetwork/osl/namespace_linux.go (diff)
Commit f46473b29c46675e683a76e37d6bdd4db5bcb4cf by rob.murray
Do not remove kernel-ll addresses from bridges

Make the behaviour enabled by env var DOCKER_BRIDGE_PRESERVE_KERNEL_LL
the default...
- don't remove kernel assigned link-local addresses
  - or any address in fe80::/64
- don't assign fe80::1 to a bridge

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/networking/bridge_test.go (diff)
The file was modified libnetwork/drivers/bridge/interface_linux.go (diff)
The file was modified libnetwork/drivers/bridge/setup_ipv6_linux_test.go (diff)
The file was modified libnetwork/drivers/bridge/interface_linux_test.go (diff)
The file was modified libnetwork/drivers/bridge/network_linux_test.go (diff)
Commit aa3a86c038ab9823b9d1b0b59b3986d4f715ef92 by rob.murray
Refactor IPv6 subnet validation

- Remove package variable bridge.bridgeIPv6
- Use netip in more places
- Improve error messages from fixed-cidr-v6 checks

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/bridge_linux.go (diff)
The file was modified libnetwork/drivers/bridge/bridge_linux_test.go (diff)
The file was modified libnetwork/drivers/bridge/setup_ipv6_linux.go (diff)
Commit a5f82ba4bf9771c65b07d62e5a7a6adcf7fd4473 by rob.murray
Disallow IPv6 multicast as bridge n/w subnet

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/bridge_linux.go (diff)
The file was modified libnetwork/drivers/bridge/bridge_linux_test.go (diff)
Commit b11e95f5bc67b59ec4fe4230eee510d19a79dfe1 by rob.murray
Don't delete IPv6 multicast addresses from a bridge

Multicast addresses aren't added by the daemon so, if they're present,
it's because they were explicitly added - possibly to a user-managed
bridge. So, don't remove.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/interface_linux.go (diff)
The file was modified libnetwork/drivers/bridge/interface_linux_test.go (diff)
Commit 346a7c07a0425e04e732322ed468bae40aededb3 by rob.murray
Fix TestDockerSwarmSuite/TestSwarmInitIPv6

The test hadn't been running, because it used testRequires(c, IPv6)
and predicate "IPv6" returns the opposite of the expected result.

If the test had run, it'd have failed because:
- it used "--listen-add", but the option is "--listen-addr"
  - so, the daemon wouldn't have started
- it tried to use "--join ::1"
  - address "::1" was interpreted as host:port so the Dial() failed,
    it needed to be "[::1]".
  - it didn't supply a  join token

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration-cli/docker_cli_swarm_test.go (diff)
Commit 4aff2fbc9856498c592e182990f9a3211e846c04 by rob.murray
Remove integration-cli TestDaemonSuite/TestDaemonIPv6Enabled

The test hadn't been running, because it used testRequires(c, IPv6)
and predicate "IPv6" returns the opposite of the expected result.

TestDaemonIPv6Enabled tried to run with IPv6 on the default bridge,
but didn't set up a "fixed-cidr-v6" - so the daemon wouldn't start.

It then tried to check the bridge had address "fe80::1", which it
expected to work because it had just used setupV6() to add that
address.

Then it  checked that "LinkLocalIPv6Address" was set in container
inspect output, but it wouldn't be (the field is deprecated).

There are working IPv6 tests in the suite (TestDaemonIPv6FixedCIDR,
TestDaemonIPv6FixedCIDRAndMac, TestDaemonIPv6HostMode) - and there's
more coverage in the network integration tests.

So, deleted the test as it didn't seem worth salvaging.

Also deleted now-unused helper functions setupV6(), teardownV6().

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration-cli/docker_cli_daemon_test.go (diff)
Commit fda708f55dd87707268ac66e7c2e82ca16e896e8 by rob.murray
Delete broken/unused test requirement helper "IPv6"

It'd only return true on a host with no IPv6 in its kernel.

So, removed, having fixed the two tests that used it.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration-cli/requirements_test.go (diff)
Commit 72eb615490966f8b4e12afd939aed0a688b08dc2 by Brian Goff
Makefile: bundles is not PHONY

This was changed recently so that the bundles target is always run, but
`mkdir bundles` fails when bundles exists...

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
The file was modified Makefile (diff)
Commit 6c97e0e0b5bdf173fb771eef4aa67441d53f546b by Paweł Gronowski
update to go1.21.10

- https://github.com/golang/go/issues?q=milestone%3AGo1.21.10+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.21.9...go1.21.10

These minor releases include 2 security fixes following the security policy:

- cmd/go: arbitrary code execution during build on darwin
On Darwin, building a Go module which contains CGO can trigger arbitrary code execution when using the Apple version of ld, due to usage of the -lto_library flag in a "#cgo LDFLAGS" directive.
Thanks to Juho Forsén of Mattermost for reporting this issue.
This is CVE-2024-24787 and Go issue https://go.dev/issue/67119.

- net: malformed DNS message can cause infinite loop
A malformed DNS message in response to a query can cause the Lookup functions to get stuck in an infinite loop.
Thanks to long-name-let-people-remember-you on GitHub for reporting this issue, and to Mateusz Poliwczak for bringing the issue to our attention.
This is CVE-2024-24788 and Go issue https://go.dev/issue/66754.

View the release notes for more information:
https://go.dev/doc/devel/release#go1.22.3

**- Description for the changelog**

```markdown changelog
Update Go runtime to 1.21.10
```

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified .github/workflows/test.yml (diff)
The file was modified Dockerfile (diff)
The file was modified hack/dockerfiles/generate-files.Dockerfile (diff)
The file was modified .github/workflows/.windows.yml (diff)
The file was modified Dockerfile.windows (diff)
The file was modified .github/workflows/buildkit.yml (diff)
The file was modified Dockerfile.simple (diff)
Commit 7216541b1743f957a17a3a08c4c4e018e57fa462 by Albin Kerouanton
libnet: don't check if ctrler store is nil

Since commit befff0e1, `(*Controller).getStore()` never returns nil
except if `c.store` isn't initialized yet. This can't happen unless
`New()` returned an error and it wasn't proper caught.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/endpoint_cnt.go (diff)
The file was modified libnetwork/store.go (diff)
The file was modified libnetwork/sandbox_store.go (diff)
Commit 5952920380debc0493f6890175ba9657ce0e9a17 by Albin Kerouanton
libnet/d/remote: replace errorWithRollback

Use defer funcs instead.

For no apparant reasons, a few error cases in the Join method were not
triggering a rollback. This is now fixed.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/drivers/remote/driver.go (diff)

Summary

  1. Move StartedAt time to before starting the container (details)
  2. feat: ctx to client API (details)
  3. API: bump version to 1.46 (details)
  4. chore: remove repetitive words (details)
  5. Update GoDoc for ioutils on atomic writers (details)
  6. Makefile: refactoring .PHONY (details)
  7. Disable IPv6 for endpoints in '--ipv6=false' networks. (details)
  8. vendor: github.com/moby/swarmkit/v2 master (f3ffc0881d0e) (details)
  9. daemon/cluster/executor: Add volume `Subpath` (details)
  10. Add netiputil.AddrPortFromNet() (details)
  11. daemon: add nolint-comments for deprecated kernel-memory options, hooks (details)
  12. vendor: github.com/opencontainers/runtime-spec v1.2.0 (details)
  13. Update tags.cncf.io/container-device-interface to v0.7.1 (details)
  14. Windows DNS resolver forwarding (details)
  15. builder/normalizeWorkdir: Always return cleaned path (details)
  16. container/SetupWorkingDirectory: Don't mutate config (details)
  17. nil dereference fix on image history Created value (details)
  18. Include more details in errnotManifestOrIndex (details)
  19. c8d/list: Ignore unexpected image target (details)
  20. vendor: github.com/cilium/ebpf v0.12.3 (details)
  21. Dockerfile: update docker CLI to v26.1.0 (details)
  22. vendor: golang.org/x/mod v0.17.0 (details)
  23. vendor: golang.org/x/tools v0.16.0 (details)
  24. vendor: github.com/Microsoft/go-winio v0.6.2 (details)
  25. Do not forward DNS requests to self. (details)
  26. apparmor: Allow confined runc to kill containers (details)
  27. Add firewalld policy "docker-forwarding". (details)
  28. Update containerd to v1.7.16 (details)
  29. libnet/ipam: un-embed mutex from `addrSpace` (details)
  30. libnet/ipam: put `addrSpace` into a separate file (details)
  31. libnet/ipam: remove dead DumpDatabase() (details)
  32. libnet/ipam: split v4/v6 address spaces (details)
  33. libnet/netutils: remove dead util NetworkRange (details)
  34. libnet/ipamapi: add in/out structs for RequestPool (details)
  35. integration-cli: createNetwork: add t.Helper() (details)
  36. libnet/ipam: default-address-pools as Register arg (details)
  37. libnet: move ipam pkg to ipam/defaultipam (details)
  38. libnet/ipams/builtin: move to libnet/ipams (details)
  39. libnet/ipams/defaultipam: add a Register fn (details)
  40. libnet/ipams/windowsipam: that driver knows its name (details)
  41. libnet/ipams: Unconditionally call windowsipam.Register (details)
  42. libnet/ipams: register all drivers (details)
  43. libnet/ipamutils: no more global state (details)
  44. libnet/ipams/defaultipam: move driver name to its pkg (details)
  45. libnet/ipams/null: move driver name to its pkg (details)
  46. Option to avoid deleting the kernel_ll address from bridges. (details)
  47. Allow for a read-only "/proc/sys/net". (details)
  48. Do not remove kernel-ll addresses from bridges (details)
  49. Refactor IPv6 subnet validation (details)
  50. Disallow IPv6 multicast as bridge n/w subnet (details)
  51. Don't delete IPv6 multicast addresses from a bridge (details)
  52. Fix TestDockerSwarmSuite/TestSwarmInitIPv6 (details)
  53. Remove integration-cli TestDaemonSuite/TestDaemonIPv6Enabled (details)
  54. Delete broken/unused test requirement helper "IPv6" (details)
  55. Makefile: bundles is not PHONY (details)
  56. update to go1.21.10 (details)
  57. libnet: don't check if ctrler store is nil (details)
  58. libnet/d/remote: replace errorWithRollback (details)
Commit d4f61f92fd98e5c738bb55780742c0fd7f39dcf8 by l.s.andringa
Move StartedAt time to before starting the container

Signed-off-by: Lars Andringa <l.s.andringa@rug.nl>
Signed-off-by: LarsSven <l.s.andringa@rug.nl>

Replaced boolean parameter by IsZero check

Signed-off-by: LarsSven <l.s.andringa@rug.nl>

Separated SetRunning into two functions

Signed-off-by: LarsSven <l.s.andringa@rug.nl>

Apply suggestions from code review

Documentation fixes

Co-authored-by: Paweł Gronowski <me@woland.xyz>
Signed-off-by: LarsSven <l.s.andringa@rug.nl>
The file was modified daemon/delete_test.go (diff)
The file was modified integration/container/daemon_linux_test.go (diff)
The file was modified daemon/monitor.go (diff)
The file was modified container/state.go (diff)
The file was modified daemon/start.go (diff)
The file was modified container/state_test.go (diff)
Commit 80d92fd45007b6395dc2db5f93def3b159dacd7f by 18033717+Benehiko
feat: ctx to client API

Signed-off-by: Alano Terblanche <18033717+Benehiko@users.noreply.github.com>
The file was modified api/types/client.go (diff)
The file was modified client/image_push_test.go (diff)
The file was modified client/image_search.go (diff)
The file was modified api/types/image/opts.go (diff)
The file was modified client/image_search_test.go (diff)
The file was modified client/image_pull.go (diff)
The file was modified client/plugin_install.go (diff)
The file was modified client/image_pull_test.go (diff)
The file was modified client/image_push.go (diff)
Commit 8bbba6315ffcbd61d6c556df723e4f8bde986f21 by Paweł Gronowski
API: bump version to 1.46

Docker 26.0 was released with API v1.45, so any change in the API should
now target v1.46.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified api/common.go (diff)
The file was modified docs/api/version-history.md (diff)
The file was modified api/swagger.yaml (diff)
Commit 98d51b510d9283d7f19347208847c7fe0e080a2c by cmoman
chore: remove repetitive words

chore: remove repetitive words

Signed-off-by: avoidaway <cmoman@126.com>
The file was modified docs/api/v1.26.yaml (diff)
The file was modified docs/api/v1.32.yaml (diff)
The file was modified docs/api/v1.36.yaml (diff)
The file was modified contrib/download-frozen-image-v2.sh (diff)
The file was modified docs/api/v1.34.yaml (diff)
The file was modified docs/api/v1.25.yaml (diff)
The file was modified docs/api/v1.33.yaml (diff)
The file was modified docs/api/v1.35.yaml (diff)
The file was modified docs/api/v1.37.yaml (diff)
The file was modified docs/api/v1.27.yaml (diff)
Commit 57a12a372f22c615b6ee98b0db6fd174b913795f by antonio
Update GoDoc for ioutils on atomic writers

Unlike its stdlib counterparts, AtomicFileWriter does not take into
consideration umask due to its use of chmod. Failure to recognize this
may cause subtle problems like the one described in #47498.

Therefore the documentation has been updated to let users know that
umask is not taken into consideration when using AtomicFileWriter.

Closes #47516.

Signed-off-by: Antonio Aguilar <antonio@zoftko.com>
The file was modified pkg/ioutils/fswriters.go (diff)
Commit 194cbd6e7d4978bc5cf441b3f3f7bfc45fe46392 by 704566072
Makefile: refactoring .PHONY

Signed-off-by: xiaochangbai <704566072@qq.com>
The file was modified Makefile (diff)
Commit 57dd56726a5bb581b09661929927aa443d530b69 by rob.murray
Disable IPv6 for endpoints in '--ipv6=false' networks.

No IPAM IPv6 address is given to an interface in a network with
'--ipv6=false', but the kernel would assign a link-local address and,
in a macvlan/ipvlan network, the interface may get a SLAAC-assigned
address.

So, disable IPv6 on the interface to avoid that.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/osl/interface_linux.go (diff)
The file was modified integration/network/macvlan/macvlan_test.go (diff)
The file was modified integration/networking/bridge_test.go (diff)
The file was modified integration/network/ipvlan/ipvlan_test.go (diff)
Commit 5368c3a04f8422e3da6b515838ddf33ee9620421 by Paweł Gronowski
vendor: github.com/moby/swarmkit/v2 master (f3ffc0881d0e)

full diff: https://github.com/moby/swarmkit/compare/911c97650f2e...f3ffc0881d0e

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/moby/swarmkit/v2/api/types.pb.go (diff)
The file was modified vendor/github.com/moby/swarmkit/v2/api/api.pb.txt (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/github.com/moby/swarmkit/v2/api/types.proto (diff)
The file was modified vendor/modules.txt (diff)
Commit d3c051318f1576ecadf04657b328792ef6513a5d by Paweł Gronowski
daemon/cluster/executor: Add volume `Subpath`

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified daemon/cluster/convert/container.go (diff)
The file was modified daemon/cluster/executor/container/container.go (diff)
The file was modified daemon/cluster/convert/service_test.go (diff)
Commit f07644e17e151307d4fe302ee3b292d866b56de9 by rob.murray
Add netiputil.AddrPortFromNet()

Co-authored-by: Cory Snider <csnider@mirantis.com>
Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/internal/netiputil/netiputil.go (diff)
Commit f5209d23a8a9df3db6287a1e2c60638be1bf920c by Sebastiaan van Stijn
daemon: add nolint-comments for deprecated kernel-memory options, hooks

This adds some nolint-comments for the deprecated kernel-memory options; we
deprecated these, but they could technically still be accepted by alternative
runtimes.

    daemon/daemon_unix.go:108:3: SA1019: memory.Kernel is deprecated: kernel-memory limits are not supported in cgroups v2, and were obsoleted in [kernel v5.4]. This field should no longer be used, as it may be ignored by runtimes. (staticcheck)
            memory.Kernel = &config.KernelMemory
            ^
    daemon/update_linux.go:63:3: SA1019: memory.Kernel is deprecated: kernel-memory limits are not supported in cgroups v2, and were obsoleted in [kernel v5.4]. This field should no longer be used, as it may be ignored by runtimes. (staticcheck)
            memory.Kernel = &resources.KernelMemory
            ^

Prestart hooks are deprecated, and more granular hooks should be used instead.
CreateRuntime are the closest equivalent, and executed in the same locations
as Prestart-hooks, but depending on what these hooks do, possibly one of the
other hooks could be used instead (such as CreateContainer or StartContainer).
As these hooks are still supported, this patch adds nolint comments, but adds
some TODOs to consider migrating to something else;

    daemon/nvidia_linux.go:86:2: SA1019: s.Hooks.Prestart is deprecated: use [Hooks.CreateRuntime], [Hooks.CreateContainer], and [Hooks.StartContainer] instead, which allow more granular hook control during the create and start phase. (staticcheck)
        s.Hooks.Prestart = append(s.Hooks.Prestart, specs.Hook{
        ^

    daemon/oci_linux.go:76:5: SA1019: s.Hooks.Prestart is deprecated: use [Hooks.CreateRuntime], [Hooks.CreateContainer], and [Hooks.StartContainer] instead, which allow more granular hook control during the create and start phase. (staticcheck)
                    s.Hooks.Prestart = append(s.Hooks.Prestart, specs.Hook{
                    ^

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified daemon/oci_linux.go (diff)
The file was modified daemon/daemon_unix.go (diff)
The file was modified daemon/update_linux.go (diff)
The file was modified daemon/nvidia_linux.go (diff)
Commit 0d6a1a212b00b67543e83e9cc4a45f098f4abb61 by Sebastiaan van Stijn
vendor: github.com/opencontainers/runtime-spec v1.2.0

- deprecate Prestart hook
- deprecate kernel memory limits

Additions

- config: add idmap and ridmap mount options
- config.md: allow empty mappings for [r]idmap
- features-linux: Expose idmap information
- mount: Allow relative mount destinations on Linux
- features: add potentiallyUnsafeConfigAnnotations
- config: add support for org.opencontainers.image annotations

Minor fixes:

- config: improve bind mount and propagation doc

full diff: https://github.com/opencontainers/runtime-spec/compare/v1.1.0...v1.2.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor/github.com/opencontainers/runtime-spec/specs-go/features/features.go (diff)
The file was modified vendor.mod (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/opencontainers/runtime-spec/specs-go/version.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/opencontainers/runtime-spec/specs-go/config.go (diff)
Commit 745e2356ab01363a02cfec947c624a9f6220fe7f by elezar
Update tags.cncf.io/container-device-interface to v0.7.1

This also bumps the maximum supported CDI specification to v0.7.0.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
The file was modified vendor/tags.cncf.io/container-device-interface/specs-go/oci.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/spec-dirs.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/cache.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/doc.go (diff)
The file was removedvendor/tags.cncf.io/container-device-interface/internal/multierror/multierror.go
The file was modified vendor/tags.cncf.io/container-device-interface/specs-go/config.go (diff)
The file was modified vendor.sum (diff)
The file was modified vendor.mod (diff)
The file was addedvendor/tags.cncf.io/container-device-interface/pkg/cdi/default-cache.go
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/container-edits.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/version.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/registry.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/internal/validation/k8s/objectmeta.go (diff)
The file was modified vendor/tags.cncf.io/container-device-interface/pkg/cdi/spec.go (diff)
Commit 6c68be24a2e6a4dea621b82ab4245e4ed363158e by rob.murray
Windows DNS resolver forwarding

Make the internal DNS resolver for Windows containers forward requests
to upsteam DNS servers when it cannot respond itself, rather than
returning SERVFAIL.

Windows containers are normally configured with the internal resolver
first for service discovery (container name lookup), then external
resolvers from '--dns' or the host's networking configuration.

When a tool like ping gets a SERVFAIL from the internal resolver, it
tries the other nameservers. But, nslookup does not, and with this
change it does not need to.

The internal resolver learns external server addresses from the
container's HNSEndpoint configuration, so it will use the same DNS
servers as processes in the container.

The internal resolver for Windows containers listens on the network's
gateway address, and each container may have a different set of external
DNS servers. So, the resolver uses the source address of the DNS request
to select external resolvers.

On Windows, daemon.json feature option 'windows-no-dns-proxy' can be used
to prevent the internal resolver from forwarding requests (restoring the
old behaviour).

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified daemon/container_operations_unix.go (diff)
The file was modified libnetwork/network.go (diff)
The file was modified daemon/container_operations.go (diff)
The file was modified daemon/container_operations_windows.go (diff)
The file was addedlibnetwork/sandbox_windows.go
The file was modified libnetwork/sandbox_dns_unix.go (diff)
The file was removedlibnetwork/sandbox_unsupported.go
The file was modified libnetwork/network_windows.go (diff)
The file was modified libnetwork/endpoint.go (diff)
The file was modified daemon/config/config_linux.go (diff)
The file was modified integration/networking/resolvconf_test.go (diff)
The file was modified libnetwork/network_unix.go (diff)
The file was addedlibnetwork/network_windows_test.go
The file was modified libnetwork/resolver.go (diff)
The file was modified libnetwork/sandbox.go (diff)
The file was addedlibnetwork/sandbox_options_windows.go
The file was modified libnetwork/sandbox_linux.go (diff)
Commit a4d5b6b4d081fadfe933e49bd4d71d8c91ffa06f by Paweł Gronowski
builder/normalizeWorkdir: Always return cleaned path

The `normalizeWorkdir` function has two branches, one that returns a
result of `filepath.Join` which always returns a cleaned path, and
another one where the input string is returned unmodified.

To make these two outputs consistent, also clean the path in the second
branch.

This also makes the cleaning of the container workdir explicit in the
`normalizeWorkdir` function instead of relying on the
`SetupWorkingDirectory` to mutate it.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified builder/dockerfile/dispatchers_unix.go (diff)
The file was modified integration-cli/docker_cli_build_test.go (diff)
Commit 7532420f3b4f7c62fb6c0de3c92b24ad91c380a4 by Paweł Gronowski
container/SetupWorkingDirectory: Don't mutate config

Don't mutate the container's `Config.WorkingDir` permanently with a
cleaned path when creating a working directory.

Move the `filepath.Clean` to the `translateWorkingDir` instead.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified daemon/container.go (diff)
The file was modified integration/build/build_test.go (diff)
The file was modified container/container.go (diff)
The file was modified integration/container/run_linux_test.go (diff)
Commit ab570ab3d62038b3d26f96a9bb585d0b6095b9b4 by 47751006+krissetto
nil dereference fix on image history Created value

Issue was caused by the changes here https://github.com/moby/moby/pull/45504
First released in v25.0.0-beta.1

Signed-off-by: Christopher Petito <47751006+krissetto@users.noreply.github.com>
The file was modified daemon/images/image_history.go (diff)
Commit 6667e96dad672cd489d8ff258e4edc28317cbd09 by Brian Goff
Include more details in errnotManifestOrIndex

This error is returned when attempting to walk a descriptor that
*should* be an index or a manifest.
Without this the error is not very helpful sicne there's no way to tell
what triggered it.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
The file was modified daemon/containerd/image_manifest.go (diff)
Commit 7d95fe8db59ab6bb7c18e3179c6e54d2326e8e61 by Paweł Gronowski
c8d/list: Ignore unexpected image target

Don't fail-fast when encountering an image that targets an unexpected
descriptor (neither a manifest nor index). Log a warning instead.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was addedinternal/testutils/specialimage/configtarget.go
The file was modified daemon/containerd/image_list_test.go (diff)
The file was modified daemon/containerd/image_list.go (diff)
The file was modified internal/testutils/specialimage/multilayer.go (diff)
Commit df831c943f5000b35ddfb12f5695902aaad55693 by Sebastiaan van Stijn
vendor: github.com/cilium/ebpf v0.12.3

full diff: https://github.com/cilium/ebpf/compare/v0.11.0...v0.12.3

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/layout.go
The file was modified vendor/github.com/cilium/ebpf/internal/endian_le.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/alu_string.go (diff)
The file was modified vendor/github.com/cilium/ebpf/syscalls.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/vdso.go (diff)
The file was addedvendor/github.com/cilium/ebpf/btf/feature.go
The file was modified vendor/github.com/cilium/ebpf/internal/tracefs/kprobe.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/unix/types_linux.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/btf.go (diff)
The file was modified vendor/github.com/cilium/ebpf/run-tests.sh (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/load_store.go (diff)
The file was modified vendor/github.com/cilium/ebpf/prog.go (diff)
The file was modified vendor/github.com/cilium/ebpf/elf_reader.go (diff)
The file was modified vendor/github.com/cilium/ebpf/types.go (diff)
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/marshal.go
The file was modified vendor/github.com/cilium/ebpf/collection.go (diff)
The file was modified vendor/github.com/cilium/ebpf/info.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/btf_types.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/format.go (diff)
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/doc.go
The file was modified vendor/github.com/cilium/ebpf/internal/sys/types.go (diff)
The file was modified vendor/github.com/cilium/ebpf/README.md (diff)
The file was modified vendor/github.com/cilium/ebpf/types_string.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/load_store_string.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/endian_be.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/jump.go (diff)
The file was modified vendor/github.com/cilium/ebpf/.golangci.yaml (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/strings.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/types.go (diff)
The file was modified vendor/github.com/cilium/ebpf/.clang-format (diff)
The file was addedvendor/github.com/cilium/ebpf/internal/sysenc/buffer.go
The file was modified vendor/github.com/cilium/ebpf/link/syscalls.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/core.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/program.go (diff)
The file was modified vendor/github.com/cilium/ebpf/marshalers.go (diff)
The file was addedvendor/github.com/cilium/ebpf/netlify.toml
The file was modified vendor/github.com/cilium/ebpf/linker.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/kprobe_multi.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/uprobe.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/opcode.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/ext_info.go (diff)
The file was modified vendor/github.com/cilium/ebpf/btf/marshal.go (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/github.com/cilium/ebpf/map.go (diff)
The file was modified vendor/github.com/cilium/ebpf/Makefile (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/alu.go (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/sys/syscall.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/func.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/kconfig/kconfig.go (diff)
The file was modified vendor/github.com/cilium/ebpf/asm/instruction.go (diff)
The file was modified vendor/github.com/cilium/ebpf/internal/unix/types_other.go (diff)
The file was modified vendor/github.com/cilium/ebpf/link/iter.go (diff)
Commit e314113ad7b799d705610eb7caae38d643fa5908 by Paweł Gronowski
Dockerfile: update docker CLI to v26.1.0

Update the CLI that's used in the dev-container

- full diff: https://github.com/docker/cli/compare/v26.0.0...v26.1.0

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified Dockerfile (diff)
Commit 85c990037767d9556af033715bba57843b4a2e57 by Sebastiaan van Stijn
vendor: golang.org/x/mod v0.17.0

no changes in vendored codee

full diff: https://github.com/golang/mod/compare/v0.13.0...v0.17.0

- modfile: do not collapse if there are unattached comments within blocks
- modfile: fix crash on AddGoStmt in empty File
- modfile: improve directory path detection and error text consistency
- modfile: use new go version string format in WorkFile.add error
- sumdb: replace globsMatchPath with module.MatchPrefixPatterns
- sumdb/tlog: make NewTiles only generate strictly necessary tiles

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor.mod (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/modules.txt (diff)
Commit 2140e7e0f5f47464445182cfa0fb2663ff63f6f8 by Sebastiaan van Stijn
vendor: golang.org/x/tools v0.16.0

It's not used in our code, but some dependencies have a "tools.go" to
force it; updating to a version that doesn't depend on golang.org/x/sys/execabs

full diff: https://github.com/golang/tools/compare/v0.14.0...v0.16.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor/golang.org/x/tools/go/packages/external.go (diff)
The file was modified vendor/golang.org/x/tools/go/packages/golist_overlay.go (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/gover.go
The file was addedvendor/golang.org/x/tools/internal/versions/versions_go121.go
The file was modified vendor.sum (diff)
The file was modified vendor/golang.org/x/tools/internal/packagesinternal/packages.go (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/types_go122.go
The file was addedvendor/golang.org/x/tools/internal/versions/versions_go122.go
The file was removedvendor/golang.org/x/sys/execabs/execabs.go
The file was removedvendor/golang.org/x/sys/execabs/execabs_go118.go
The file was addedvendor/golang.org/x/tools/internal/versions/types_go121.go
The file was modified vendor/modules.txt (diff)
The file was modified vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go (diff)
The file was addedvendor/golang.org/x/tools/internal/versions/types.go
The file was modified vendor/golang.org/x/tools/go/packages/packages.go (diff)
The file was modified vendor.mod (diff)
The file was modified vendor/golang.org/x/tools/go/packages/golist.go (diff)
The file was modified vendor/golang.org/x/tools/internal/gocommand/invoke.go (diff)
The file was removedvendor/golang.org/x/tools/internal/typesinternal/objectpath.go
The file was modified vendor/golang.org/x/tools/go/types/objectpath/objectpath.go (diff)
The file was removedvendor/golang.org/x/sys/execabs/execabs_go119.go
Commit e3c59640d5d15acc54616790bdae5bf0974c505a by Sebastiaan van Stijn
vendor: github.com/Microsoft/go-winio v0.6.2

- fileinfo: internally fix FileBasicInfo memory alignment (fixes compatibility
  with go1.22)

full diff: https://github.com/Microsoft/go-winio/compare/v0.6.1...v0.6.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
The file was modified vendor/github.com/Microsoft/go-winio/pipe.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/zsyscall_windows.go (diff)
The file was removedvendor/github.com/Microsoft/go-winio/tools.go
The file was modified vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go (diff)
The file was addedvendor/github.com/Microsoft/go-winio/pkg/etw/opcode_string.go
The file was modified vendor/github.com/Microsoft/go-winio/sd.go (diff)
The file was modified vendor.mod (diff)
The file was removedvendor/golang.org/x/tools/cmd/stringer/stringer.go
The file was modified vendor/github.com/Microsoft/go-winio/internal/socket/socket.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/backup.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/zsyscall_windows.go (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/Microsoft/go-winio/fileinfo.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/eventdata.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/internal/fs/fs.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/Microsoft/go-winio/file.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/.golangci.yml (diff)
The file was modified vendor/github.com/Microsoft/go-winio/privilege.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/bindfilter/bind_filter.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/bindfilter/zsyscall_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/fieldopt.go (diff)
The file was addedvendor/github.com/Microsoft/go-winio/pkg/etw/level_string.go
The file was modified vendor/github.com/Microsoft/go-winio/hvsock.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/fs/resolve.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/vhd/zvhd_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/backuptar/tar.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go (diff)
The file was modified vendor/github.com/Microsoft/go-winio/pkg/etw/eventdescriptor.go (diff)
Commit 87506142d88fa3c0e10963144bef0651b60cfafc by rob.murray
Do not forward DNS requests to self.

If a container is configured with the internal DNS resolver's own
address as an external server, try the next ext server rather than
recursing (return SERVFAIL if there are no other servers).

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/network/dns_test.go (diff)
The file was modified libnetwork/resolver.go (diff)
The file was modified integration/internal/container/ops.go (diff)
Commit 5ebe2c0d6bf30ad76550f0dc8cf35a71098ba5fc by nechtom
apparmor: Allow confined runc to kill containers

/usr/sbin/runc is confined with "runc" profile[1] introduced in AppArmor
v4.0.0. This change breaks stopping of containers, because the profile
assigned to containers doesn't accept signals from the "runc" peer.
AppArmor >= v4.0.0 is currently part of Ubuntu Mantic (23.10) and later.

In the case of Docker, this regression is hidden by the fact that
dockerd itself sends SIGKILL to the running container after runc fails
to stop it. It is still a regression, because graceful shutdowns of
containers via "docker stop" are no longer possible, as SIGTERM from
runc is not delivered to them. This can be seen in logs from dockerd
when run with debug logging enabled and also from tracing signals with
killsnoop utility from bcc[2] (in bpfcc-tools package in Debian/Ubuntu):

  Test commands:

    root@cloudimg:~# docker run -d --name test redis
    ba04c137827df8468358c274bc719bf7fc291b1ed9acf4aaa128ccc52816fe46
    root@cloudimg:~# docker stop test

  Relevant syslog messages (with wrapped long lines):

    Apr 23 20:45:26 cloudimg kernel: audit:
      type=1400 audit(1713905126.444:253): apparmor="DENIED"
      operation="signal" class="signal" profile="docker-default" pid=9289
      comm="runc" requested_mask="receive" denied_mask="receive"
      signal=kill peer="runc"
    Apr 23 20:45:36 cloudimg dockerd[9030]:
      time="2024-04-23T20:45:36.447016467Z"
      level=warning msg="Container failed to exit within 10s of kill - trying direct SIGKILL"
      container=ba04c137827df8468358c274bc719bf7fc291b1ed9acf4aaa128ccc52816fe46
      error="context deadline exceeded"

  Killsnoop output after "docker stop ...":

    root@cloudimg:~# killsnoop-bpfcc
    TIME      PID      COMM             SIG  TPID     RESULT
    20:51:00  9631     runc             3    9581     -13
    20:51:02  9637     runc             9    9581     -13
    20:51:12  9030     dockerd          9    9581     0

This change extends the docker-default profile with rules that allow
receiving signals from processes that run confined with either runc or
crun profile (crun[4] is an alternative OCI runtime that's also confined
in AppArmor >= v4.0.0, see [1]). It is backward compatible because the
peer value is a regular expression (AARE) so the referenced profile
doesn't have to exist for this profile to successfully compile and load.

Note that the runc profile has an attachment to /usr/sbin/runc. This is
the path where the runc package in Debian/Ubuntu puts the binary. When
the docker-ce package is installed from the upstream repository[3], runc
is installed as part of the containerd.io package at /usr/bin/runc.
Therefore it's still running unconfined and has no issues sending
signals to containers.

[1] https://gitlab.com/apparmor/apparmor/-/commit/2594d936
[2] https://github.com/iovisor/bcc/blob/master/tools/killsnoop.py
[3] https://download.docker.com/linux/ubuntu
[4] https://github.com/containers/crun

Signed-off-by: Tomáš Virtus <nechtom@gmail.com>
The file was modified profiles/apparmor/template.go (diff)
Commit ff8de5e15690ff88fd5bae59918915effb46faef by rob.murray
Add firewalld policy "docker-forwarding".

Allow forwarding from any firewalld zone to the 'docker' zone.

This makes it possible to use routable IPv6 addresses on a bridge
network, with masquerading disabled, and have the host forward packets
to it.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/iptables/firewalld.go (diff)
Commit eeec716e332e5c058dfe70ddc0006d8552f632b2 by derek
Update containerd to v1.7.16

Includes fix for HTTP fallback

Signed-off-by: Derek McGowan <derek@mcg.dev>
The file was modified vendor/github.com/containerd/containerd/services/server/config/config.go (diff)
The file was modified vendor.mod (diff)
The file was modified vendor.sum (diff)
The file was modified vendor/github.com/containerd/containerd/pkg/deprecation/deprecation.go (diff)
The file was modified vendor/modules.txt (diff)
The file was modified vendor/github.com/containerd/containerd/remotes/docker/resolver.go (diff)
The file was modified vendor/github.com/containerd/containerd/plugin/plugin.go (diff)
The file was modified vendor/github.com/containerd/containerd/remotes/docker/authorizer.go (diff)
The file was modified vendor/github.com/containerd/containerd/version/version.go (diff)
The file was modified vendor/github.com/containerd/containerd/Vagrantfile (diff)
The file was modified vendor/github.com/containerd/containerd/RELEASES.md (diff)
Commit a047d4b1df4664d9b4cb7ff9b320756d009f690b by Albin Kerouanton
libnet/ipam: un-embed mutex from `addrSpace`

Embedding `sync.Mutex` into a struct is considered a bad practice
as it makes the mutex methods part of the embedding struct's API.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/structures.go (diff)
The file was modified libnetwork/ipam/allocator.go (diff)
Commit df88857e6cd265e0b5ccd29c9e4db5f3db5c16fd by Albin Kerouanton
libnet/ipam: put `addrSpace` into a separate file

`addrSpace` methods are currently scattered in two different files.
As upcoming work will rewrite some of these methods, better put them
into a separate file.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipam/structures.go (diff)
The file was addedlibnetwork/ipam/address_space.go
Commit 199c72cb5d9bf87b230700e77080b3a88dc007d9 by Albin Kerouanton
libnet/ipam: remove dead DumpDatabase()

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/address_space.go (diff)
The file was modified libnetwork/ipam/allocator.go (diff)
Commit 37a81cd04dcdf60f40cce2fa09498cc23172625c by Albin Kerouanton
libnet/ipam: split v4/v6 address spaces

Address spaces are a continuum of addresses that can be used for a
specific purpose (ie. 'local' for unmanaged containers, 'global for
Swarm). v4 and v6 addresses aren't of the same size -- hence
combining them into a single address space doesn't form a continuum.
Better set them apart into two different address spaces.

Also, the upcoming rewrite of `addrSpace` will benefit from that
split.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipam/allocator_test.go (diff)
The file was modified libnetwork/ipam/address_space.go (diff)
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipam/structures.go (diff)
Commit 82aae0fe50e55d4f217c0c3b5934a0a9210a6775 by Albin Kerouanton
libnet/netutils: remove dead util NetworkRange

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/netutils/utils_linux_test.go (diff)
The file was modified libnetwork/netutils/utils.go (diff)
Commit 115de5ff3d16dbec510923e166950556071693ee by Albin Kerouanton
libnet/ipamapi: add in/out structs for RequestPool

The `RequestPool` method has many args and named returns. This
makes the code hard to follow at times. This commit adds one struct,
`PoolRequest`, to replace these args, and one struct, `AllocatedPool`,
to replace these named returns.

Both structs' fields are properly documented to better define their
semantics, and their relationship with address allocation.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipamapi/contract.go (diff)
The file was modified libnetwork/ipams/remote/remote_test.go (diff)
The file was modified libnetwork/ipam/allocator.go (diff)
The file was modified libnetwork/ipams/null/null.go (diff)
The file was modified libnetwork/ipams/windowsipam/windowsipam_test.go (diff)
The file was modified libnetwork/cnmallocator/networkallocator_test.go (diff)
The file was modified libnetwork/ipams/windowsipam/windowsipam.go (diff)
The file was modified libnetwork/network.go (diff)
The file was modified libnetwork/ipam/allocator_test.go (diff)
The file was modified libnetwork/ipam/parallel_test.go (diff)
The file was modified libnetwork/ipams/null/null_test.go (diff)
The file was modified libnetwork/ipams/remote/remote.go (diff)
The file was modified libnetwork/cnmallocator/networkallocator.go (diff)
Commit 1d5a12dfb1ecb28cbe8070de056595e37826319b by Albin Kerouanton
integration-cli: createNetwork: add t.Helper()

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified integration-cli/docker_api_network_test.go (diff)
Commit e8644c3e0e8aed98f11ef27f15b124c0ee5c6dea by Albin Kerouanton
libnet/ipam: default-address-pools as Register arg

Prior to this change, daemon's `default-address-pools` param would
be passed to `SetDefaultIPAddressPool()` to set a global var named
`defaultAddressPool`. This var would then be retrieved during the
`default` IPAM driver registration. Both steps were executed in
close succession during libnet's controller initialization.

This change removes the global var and just pass the user-defined
`default-address-pools` to the `default` driver's `Register` fn.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
The file was modified libnetwork/ipams/builtin/builtin_windows.go (diff)
The file was modified libnetwork/drivers_ipam.go (diff)
The file was modified libnetwork/ipams/builtin/builtin.go (diff)
The file was modified libnetwork/ipams/builtin/builtin_unix.go (diff)
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
Commit 29f2ca04e0695feb7d232bf3eb03c6dedac378f6 by Albin Kerouanton
libnet: move ipam pkg to ipam/defaultipam

All drivers except the default ipam driver are stored in ipams/.
Since `default` isn't a valid Go pkg name, this package is
renamed to `defaultipam`, following `windowsipam` example.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was addedlibnetwork/ipams/defaultipam/allocator_test.go
The file was removedlibnetwork/ipam/address_space.go
The file was addedlibnetwork/ipams/defaultipam/address_space.go
The file was removedlibnetwork/ipam/allocator_test.go
The file was addedlibnetwork/ipams/defaultipam/structures.go
The file was removedlibnetwork/ipam/parallel_test.go
The file was removedlibnetwork/ipam/allocator.go
The file was removedlibnetwork/ipam/structures.go
The file was modified libnetwork/ipams/builtin/builtin.go (diff)
The file was addedlibnetwork/ipams/defaultipam/allocator.go
The file was addedlibnetwork/ipams/defaultipam/parallel_test.go
Commit 218394cada882b7e73cb19dabb4df68cfbea3c9c by Albin Kerouanton
libnet/ipams/builtin: move to libnet/ipams

Packages in libnet/ipams are drivers, except builtin -- it's used
to register drivers. Move files one level up and delete this pkg.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/drivers_ipam.go (diff)
The file was removedlibnetwork/ipams/builtin/builtin_windows.go
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
The file was addedlibnetwork/ipams/drivers_unix.go
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
The file was removedlibnetwork/ipams/builtin/builtin.go
The file was addedlibnetwork/ipams/drivers.go
The file was addedlibnetwork/ipams/drivers_windows.go
The file was removedlibnetwork/ipams/builtin/builtin_unix.go
Commit 8cec9f0dcaa3e56972a61aa4634621c65cd1f7d1 by Albin Kerouanton
libnet/ipams/defaultipam: add a Register fn

All drivers except the default have a Register function. Before this
change, default's registration was handled by another package. Move
this logic into the driver pkg.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/drivers_unix.go (diff)
The file was removedlibnetwork/ipams/drivers.go
The file was modified libnetwork/ipams/defaultipam/allocator.go (diff)
The file was modified libnetwork/ipams/drivers_windows.go (diff)
Commit ae9e4319b07c35a18db58255962307ddec4502ec by Albin Kerouanton
libnet/ipams/windowsipam: that driver knows its name

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/drivers_windows.go (diff)
The file was modified libnetwork/ipams/windowsipam/windowsipam.go (diff)
Commit eda47500fc8a2a8de6b2f93dad4f4cea0726e8aa by Albin Kerouanton
libnet/ipams: Unconditionally call windowsipam.Register

This function is made a no-op on non-windows platform.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/windowsipam/windowsipam.go (diff)
The file was removedlibnetwork/ipams/drivers_unix.go
The file was addedlibnetwork/ipams/windowsipam/windowsipam_other.go
The file was modified libnetwork/ipams/windowsipam/windowsipam_test.go (diff)
The file was removedlibnetwork/ipams/drivers_windows.go
The file was addedlibnetwork/ipams/drivers.go
Commit 3c9718144f22557e7448c70d22129e4602d0984d by Albin Kerouanton
libnet/ipams: register all drivers

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
The file was removedlibnetwork/drivers_ipam.go
The file was modified libnetwork/controller.go (diff)
The file was modified libnetwork/ipams/drivers.go (diff)
Commit 0db56de78e2f7d156fe18ea85f0daa9e9e686f83 by Albin Kerouanton
libnet/ipamutils: no more global state

Prior to this change, cnmallocator would call
`ConfigGlobalScopeDefaultNetworks` right before initializing its
IPAM drivers. This function was mutating some global state used
during drivers init.

This change just remove the global state, and adds an arg to
ipams.Register and defaultipam.Register to pass the global pools
by arguments instead.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipams/drivers.go (diff)
The file was modified libnetwork/cnmallocator/drivers_ipam.go (diff)
The file was modified libnetwork/ipams/defaultipam/allocator.go (diff)
The file was modified libnetwork/controller.go (diff)
The file was modified libnetwork/ipamutils/utils_test.go (diff)
The file was modified libnetwork/ipamutils/utils.go (diff)
The file was modified libnetwork/drvregistry/ipams_test.go (diff)
Commit f2387f3632437af8fcdc0fc41f4b92e34eaae138 by Albin Kerouanton
libnet/ipams/defaultipam: move driver name to its pkg

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/cnmallocator/provider.go (diff)
The file was modified libnetwork/ipams/defaultipam/allocator.go (diff)
The file was modified libnetwork/ipamapi/contract.go (diff)
The file was modified libnetwork/libnetwork_linux_test.go (diff)
The file was modified libnetwork/network.go (diff)
The file was modified libnetwork/cnmallocator/networkallocator.go (diff)
The file was modified libnetwork/network_windows.go (diff)
The file was modified libnetwork/endpoint_unix_test.go (diff)
The file was modified libnetwork/libnetwork_internal_test.go (diff)
The file was modified libnetwork/network_unix.go (diff)
The file was modified libnetwork/sandbox_unix_test.go (diff)
Commit c5376e534c5f2c7e16f6480609232fff1f8f85b7 by Albin Kerouanton
libnet/ipams/null: move driver name to its pkg

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/ipamapi/contract.go (diff)
The file was modified libnetwork/libnetwork_linux_test.go (diff)
The file was modified libnetwork/ipams/null/null.go (diff)
Commit 57ada4b8481f8a5a138b9ed312135b148eaf6d09 by rob.murray
Option to avoid deleting the kernel_ll address from bridges.

If env var DOCKER_BRIDGE_PRESERVE_KERNEL_LL=1, don't assign fe80::1/64
to a bridge, and don't delete any link local address with prefix fe80::/64.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/interface_linux.go (diff)
The file was modified libnetwork/drivers/bridge/setup_ipv6_linux.go (diff)
The file was modified integration/networking/bridge_test.go (diff)
Commit 01ea18f1e3b0ce07f6c77f4e4741e0e0bdb8edd5 by rob.murray
Allow for a read-only "/proc/sys/net".

If dockerd runs on a host with a read-only /proc/sys/net filesystem,
it isn't able to enable or disable IPv6 on network interfaces when
attaching a container to a network (including initial networks during
container creation).

In release 26.0.2, a read-only /proc/sys/net meant container creation
failed in all cases.

So, don't attempt to enable/disable IPv6 on an interface if it's already
set appropriately.

If it's not possible to enable IPv6 when it's needed, just log (because
that's what libnetwork has always done if IPv6 is disabled in the
kernel).

If it's not possible to disable IPv6 when it needs to be disabled,
refuse to create the container and raise an error that suggests setting
environment variable "DOCKER_ALLOW_IPV6_ON_IPV4_INTERFACE=1", to tell
the daemon it's ok to ignore the problem.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration/networking/bridge_test.go (diff)
The file was modified libnetwork/osl/namespace_linux.go (diff)
Commit f46473b29c46675e683a76e37d6bdd4db5bcb4cf by rob.murray
Do not remove kernel-ll addresses from bridges

Make the behaviour enabled by env var DOCKER_BRIDGE_PRESERVE_KERNEL_LL
the default...
- don't remove kernel assigned link-local addresses
  - or any address in fe80::/64
- don't assign fe80::1 to a bridge

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/interface_linux.go (diff)
The file was modified libnetwork/drivers/bridge/interface_linux_test.go (diff)
The file was modified integration/networking/bridge_test.go (diff)
The file was modified libnetwork/drivers/bridge/setup_ipv6_linux_test.go (diff)
The file was modified libnetwork/drivers/bridge/network_linux_test.go (diff)
Commit aa3a86c038ab9823b9d1b0b59b3986d4f715ef92 by rob.murray
Refactor IPv6 subnet validation

- Remove package variable bridge.bridgeIPv6
- Use netip in more places
- Improve error messages from fixed-cidr-v6 checks

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/bridge_linux_test.go (diff)
The file was modified libnetwork/drivers/bridge/setup_ipv6_linux.go (diff)
The file was modified libnetwork/drivers/bridge/bridge_linux.go (diff)
Commit a5f82ba4bf9771c65b07d62e5a7a6adcf7fd4473 by rob.murray
Disallow IPv6 multicast as bridge n/w subnet

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/bridge_linux.go (diff)
The file was modified libnetwork/drivers/bridge/bridge_linux_test.go (diff)
Commit b11e95f5bc67b59ec4fe4230eee510d19a79dfe1 by rob.murray
Don't delete IPv6 multicast addresses from a bridge

Multicast addresses aren't added by the daemon so, if they're present,
it's because they were explicitly added - possibly to a user-managed
bridge. So, don't remove.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified libnetwork/drivers/bridge/interface_linux_test.go (diff)
The file was modified libnetwork/drivers/bridge/interface_linux.go (diff)
Commit 346a7c07a0425e04e732322ed468bae40aededb3 by rob.murray
Fix TestDockerSwarmSuite/TestSwarmInitIPv6

The test hadn't been running, because it used testRequires(c, IPv6)
and predicate "IPv6" returns the opposite of the expected result.

If the test had run, it'd have failed because:
- it used "--listen-add", but the option is "--listen-addr"
  - so, the daemon wouldn't have started
- it tried to use "--join ::1"
  - address "::1" was interpreted as host:port so the Dial() failed,
    it needed to be "[::1]".
  - it didn't supply a  join token

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration-cli/docker_cli_swarm_test.go (diff)
Commit 4aff2fbc9856498c592e182990f9a3211e846c04 by rob.murray
Remove integration-cli TestDaemonSuite/TestDaemonIPv6Enabled

The test hadn't been running, because it used testRequires(c, IPv6)
and predicate "IPv6" returns the opposite of the expected result.

TestDaemonIPv6Enabled tried to run with IPv6 on the default bridge,
but didn't set up a "fixed-cidr-v6" - so the daemon wouldn't start.

It then tried to check the bridge had address "fe80::1", which it
expected to work because it had just used setupV6() to add that
address.

Then it  checked that "LinkLocalIPv6Address" was set in container
inspect output, but it wouldn't be (the field is deprecated).

There are working IPv6 tests in the suite (TestDaemonIPv6FixedCIDR,
TestDaemonIPv6FixedCIDRAndMac, TestDaemonIPv6HostMode) - and there's
more coverage in the network integration tests.

So, deleted the test as it didn't seem worth salvaging.

Also deleted now-unused helper functions setupV6(), teardownV6().

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration-cli/docker_cli_daemon_test.go (diff)
Commit fda708f55dd87707268ac66e7c2e82ca16e896e8 by rob.murray
Delete broken/unused test requirement helper "IPv6"

It'd only return true on a host with no IPv6 in its kernel.

So, removed, having fixed the two tests that used it.

Signed-off-by: Rob Murray <rob.murray@docker.com>
The file was modified integration-cli/requirements_test.go (diff)
Commit 72eb615490966f8b4e12afd939aed0a688b08dc2 by Brian Goff
Makefile: bundles is not PHONY

This was changed recently so that the bundles target is always run, but
`mkdir bundles` fails when bundles exists...

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
The file was modified Makefile (diff)
Commit 6c97e0e0b5bdf173fb771eef4aa67441d53f546b by Paweł Gronowski
update to go1.21.10

- https://github.com/golang/go/issues?q=milestone%3AGo1.21.10+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.21.9...go1.21.10

These minor releases include 2 security fixes following the security policy:

- cmd/go: arbitrary code execution during build on darwin
On Darwin, building a Go module which contains CGO can trigger arbitrary code execution when using the Apple version of ld, due to usage of the -lto_library flag in a "#cgo LDFLAGS" directive.
Thanks to Juho Forsén of Mattermost for reporting this issue.
This is CVE-2024-24787 and Go issue https://go.dev/issue/67119.

- net: malformed DNS message can cause infinite loop
A malformed DNS message in response to a query can cause the Lookup functions to get stuck in an infinite loop.
Thanks to long-name-let-people-remember-you on GitHub for reporting this issue, and to Mateusz Poliwczak for bringing the issue to our attention.
This is CVE-2024-24788 and Go issue https://go.dev/issue/66754.

View the release notes for more information:
https://go.dev/doc/devel/release#go1.22.3

**- Description for the changelog**

```markdown changelog
Update Go runtime to 1.21.10
```

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The file was modified .github/workflows/.windows.yml (diff)
The file was modified Dockerfile.windows (diff)
The file was modified Dockerfile (diff)
The file was modified .github/workflows/buildkit.yml (diff)
The file was modified .github/workflows/test.yml (diff)
The file was modified Dockerfile.simple (diff)
The file was modified hack/dockerfiles/generate-files.Dockerfile (diff)
Commit 7216541b1743f957a17a3a08c4c4e018e57fa462 by Albin Kerouanton
libnet: don't check if ctrler store is nil

Since commit befff0e1, `(*Controller).getStore()` never returns nil
except if `c.store` isn't initialized yet. This can't happen unless
`New()` returned an error and it wasn't proper caught.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/store.go (diff)
The file was modified libnetwork/sandbox_store.go (diff)
The file was modified libnetwork/endpoint_cnt.go (diff)
Commit 5952920380debc0493f6890175ba9657ce0e9a17 by Albin Kerouanton
libnet/d/remote: replace errorWithRollback

Use defer funcs instead.

For no apparant reasons, a few error cases in the Join method were not
triggering a rollback. This is now fixed.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
The file was modified libnetwork/drivers/remote/driver.go (diff)