moby/libnetwork
Rob Murray fde80fe2e7 Restore the SetKey prestart hook.
Partially reverts 0046b16 "daemon: set libnetwork sandbox key w/o OCI hook"

Running SetKey to store the OCI Sandbox key after task creation, rather
than from the OCI prestart hook, meant it happened after sysctl settings
were applied by the runtime - which was the intention, we wanted to
complete Sandbox configuration after IPv6 had been disabled by a sysctl
if that was going to happen.

But, it meant '--sysctl' options for a specfic network interface caused
container task creation to fail, because the interface is only moved into
the network namespace during SetKey.

This change restores the SetKey prestart hook, and regenerates config
files that depend on the container's support for IPv6 after the task has
been created. It also adds a regression test that makes sure it's possible
to set an interface-specfic sysctl.

Signed-off-by: Rob Murray <rob.murray@docker.com>
2024-03-25 19:35:55 +00:00
..
bitmap libnetwork/bitmap: improve documentation 2023-07-05 16:10:32 -04:00
cluster Switch from x/net/context -> context 2018-04-24 14:57:04 -07:00
cmd fix duplicate words (dupwords) 2024-03-07 10:57:03 +01:00
cnmallocator libn/cnmallocator: migrate tests to gotest.tools/v3 2024-02-29 16:14:02 -05:00
config add //go:build directives to prevent downgrading to go1.16 language 2023-12-15 15:24:15 +01:00
datastore libnet/ds: remove extra space in error msg 2024-02-22 18:49:28 +01:00
diagnostic libnetwork/diagnostic: lock mutex in help handler 2023-12-06 11:20:47 -05:00
discoverapi libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
docs libnetwork: fix tiny grammar mistake on design.md 2024-01-23 18:26:45 -05:00
driverapi libnet: Replace BadRequest with InvalidParameter 2023-08-17 16:45:04 +02:00
drivers chore: fix mismatched function names in godoc 2024-03-22 16:24:31 +08:00
drvregistry libnetwork: notify another driver registerer 2023-08-29 10:32:18 -04:00
etchosts Remove unused params from etchosts.Build() 2024-01-29 15:37:08 +00:00
internal resolvconf: add //go:build directives to prevent downgrading to go1.16 language 2024-03-18 12:28:21 +01:00
ipam Move 'netip' utils from 'ipam' to 'internal'. 2023-12-06 17:13:40 +00:00
ipamapi libnet: Fix error capitalization 2023-08-17 16:48:09 +02:00
ipams fix duplicate words (dupwords) 2024-03-07 10:57:03 +01:00
ipamutils libnetwork/ipamutils: format code with gofumpt 2023-06-29 00:31:49 +02:00
ipbits libnet/ipam: use netip types internally 2023-02-23 18:10:01 -05:00
iptables libnetwork: fix typo in iptables.go 2024-01-23 18:25:08 -05:00
netlabel New host_ipv6 bridge option to SNAT IPv6 connections 2023-10-25 20:11:49 -04:00
netutils Detect IPv6 support in containers. 2024-01-19 20:24:07 +00:00
networkdb libnetwork/diagnostic: use standard http.Handler 2023-12-06 11:19:59 -05:00
ns migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
options add //go:build directives to prevent downgrading to go1.16 language 2023-12-15 15:24:15 +01:00
osl Restore the SetKey prestart hook. 2024-03-25 19:35:55 +00:00
portallocator libnetwork/portallocator: PortAllocator.ReleasePort: remove unused err-return 2024-01-02 11:00:22 +01:00
portmapper libnetwork/portallocator: PortAllocator.ReleasePort: remove unused err-return 2024-01-02 11:00:22 +01:00
resolvconf Accumulate resolv.conf options 2024-03-01 16:59:28 +00:00
scope libnetwork: move datastore Scope consts to libnetwork/scope 2023-07-28 21:56:48 +02:00
support Fixup libnetwork lint errors 2021-06-01 23:48:32 +00:00
types libnet: Replace NoServiceError with UnavailableError 2023-08-17 16:46:53 +02:00
.dockerignore Added back dockerignore 2018-06-22 16:10:22 -07:00
.gitignore Added back dockerignore 2018-06-22 16:10:22 -07:00
agent.go daemon: rename: don't reload endpoint from datastore 2024-01-23 22:53:21 +01:00
agent.pb.go update generated files 2023-05-29 03:28:35 +02:00
agent.proto fix protos and "go generate" commands 2023-05-29 03:28:35 +02:00
controller.go libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
controller_linux.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
controller_others.go libnetwork: implement Controller.setupOSLSandbox 2023-08-23 20:13:15 +02:00
default_gateway.go libnet: remove Endpoint.anonymous 2023-12-20 19:04:37 +01:00
default_gateway_freebsd.go libnetwork: remove Network interface 2023-07-22 11:56:41 +02:00
default_gateway_linux.go libnetwork: remove Network interface 2023-07-22 11:56:41 +02:00
default_gateway_windows.go libnetwork: remove Network interface 2023-07-22 11:56:41 +02:00
drivers_freebsd.go libnetwork: fix some missing imports on macOS and FreeBSD 2023-08-29 16:55:44 +02:00
drivers_ipam.go libnet: un-plumb datastores from IPAM inits 2023-01-27 11:47:42 -05:00
drivers_linux.go libnet/drivers: stop passing config to drivers... 2023-07-06 12:57:00 -04:00
drivers_unsupported.go libnetwork: fix some missing imports on macOS and FreeBSD 2023-08-29 16:55:44 +02:00
drivers_windows.go libnet/drivers: stop passing config to drivers... 2023-07-06 12:57:00 -04:00
endpoint.go libnet: Don't forward to upstream resolvers on internal nw 2024-03-14 17:46:48 +00:00
endpoint_cnt.go libnet/ds: remove unused param key from GetObject 2024-01-24 22:42:18 +01:00
endpoint_info.go daemon: rename: don't reload endpoint from datastore 2024-01-23 22:53:21 +01:00
endpoint_info_unix.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
endpoint_info_windows.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
endpoint_test.go libnetwork: Sandbox.ResolveName: refactor ordering of endpoints 2024-01-20 12:41:33 +01:00
endpoint_unix_test.go libnetwork: rename unix-only testfiles 2023-08-12 01:27:38 +02:00
error.go libnet: Replace BadRequest with InvalidParameter 2023-08-17 16:45:04 +02:00
errors_test.go libnet: Replace BadRequest with InvalidParameter 2023-08-17 16:45:04 +02:00
firewall_linux.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
firewall_linux_test.go libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
firewall_others.go libnetwork: arrangeUserFilterRule: don't return early 2023-07-21 20:08:58 +02:00
libnetwork_internal_test.go libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
libnetwork_linux_test.go Add IPv6 nameserver to the internal DNS's upstreams. 2024-03-06 10:47:18 +00:00
libnetwork_unix_test.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
libnetwork_windows_test.go libnetwork: format code with gofumpt 2023-06-29 00:31:49 +02:00
network.go daemon: rename: don't reload endpoint from datastore 2024-01-23 22:53:21 +01:00
network_unix.go libnetwork: remove Network interface 2023-07-22 11:56:41 +02:00
network_windows.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
README.md libnet: Remove unused cmd/readme_test 2023-12-16 13:06:15 +01:00
resolver.go libnet: Don't forward to upstream resolvers on internal nw 2024-03-14 17:46:48 +00:00
resolver_test.go libnetwork: write ServFail if DNS reply msg is bad 2023-12-19 11:24:33 -05:00
resolver_unix.go libn: fix resolver restore w/ chatty 'iptables -C' 2023-05-30 14:32:27 -04:00
resolver_unix_test.go libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
resolver_windows.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
sandbox.go daemon: rename: don't reload endpoint from datastore 2024-01-23 22:53:21 +01:00
sandbox_dns_unix.go libnet: Don't forward to upstream resolvers on internal nw 2024-03-14 17:46:48 +00:00
sandbox_dns_unix_test.go Ignore bad ndots in host resolv.conf 2024-03-07 09:27:34 +00:00
sandbox_dns_windows.go Refactor 'resolv.conf' generation. 2024-02-06 22:26:12 +00:00
sandbox_externalkey_unix.go libnet: Improve the debug log written when the extKeyListener is stopped 2023-12-21 12:38:08 +01:00
sandbox_externalkey_unsupported.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
sandbox_linux.go Restore the SetKey prestart hook. 2024-03-25 19:35:55 +00:00
sandbox_options.go libnetwork: move all SandboxOptions to a separate file 2023-08-18 13:12:25 +02:00
sandbox_store.go Merge pull request #47041 from robmry/46968_refactor_resolvconf 2024-02-29 09:33:55 +01:00
sandbox_unix_test.go libnetwork: implement Controller.GetSandbox(containerID) 2023-08-21 15:06:26 +02:00
sandbox_unsupported.go libnetwork/osl: remove Sandbox and Info interfaces 2023-08-23 23:29:09 +02:00
service.go add //go:build directives to prevent downgrading to go1.16 language 2023-12-15 15:24:15 +01:00
service_common.go fix typo in error message 2024-02-29 23:27:00 +00:00
service_common_unix_test.go libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
service_linux.go daemon: rename: don't reload endpoint from datastore 2024-01-23 22:53:21 +01:00
service_unsupported.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
service_windows.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
store.go libnet/ds: remove unused param key from List 2024-01-24 22:42:18 +01:00
store_linux_test.go libnetwork: share a single datastore with drivers 2024-01-31 21:08:34 -05:00
store_test.go libnet: drop TestMultipleControllersWithSameStore 2024-02-02 09:19:07 +01:00

libnetwork - networking for containers

Libnetwork provides a native Go implementation for connecting containers

The goal of libnetwork is to deliver a robust Container Network Model that provides a consistent programming interface and the required network abstractions for applications.

Design

Please refer to the design for more information.

Using libnetwork

There are many networking solutions available to suit a broad range of use-cases. libnetwork uses a driver / plugin model to support all of these solutions while abstracting the complexity of the driver implementations by exposing a simple and consistent Network Model to users.

Contributing

Want to hack on libnetwork? Docker's contributions guidelines apply.

Code and documentation copyright 2015 Docker, inc. Code released under the Apache 2.0 license. Docs released under Creative commons.