spec/plugins: return interface details and multiple IP addresses to runtime
authorDan Williams <dcbw@redhat.com>
Tue, 22 Nov 2016 17:32:35 +0000 (11:32 -0600)
committerDan Williams <dcbw@redhat.com>
Wed, 25 Jan 2017 17:31:18 +0000 (11:31 -0600)
commitd5acb127b8c137e62a657541ce37ec8a345315e6
treebefffc1a6a2f13d85c675095b49ab79ea799f3a2
parentbefad17174b3a796ccd7ea8ec5b06fec6962fb14
spec/plugins: return interface details and multiple IP addresses to runtime

Updates the spec and plugins to return an array of interfaces and IP details
to the runtime including:

- interface names and MAC addresses configured by the plugin
- whether the interfaces are sandboxed (container/VM) or host (bridge, veth, etc)
- multiple IP addresses configured by IPAM and which interface they
have been assigned to

Returning interface details is useful for runtimes, as well as allowing
more flexible chaining of CNI plugins themselves.  For example, some
meta plugins may need to know the host-side interface to be able to
apply firewall or traffic shaping rules to the container.
40 files changed:
SPEC.md
libcni/api_test.go
pkg/invoke/exec_test.go
pkg/invoke/raw_exec_test.go
pkg/ipam/ipam.go
pkg/ipam/ipam_test.go
pkg/skel/skel_test.go
pkg/types/020/types.go [new file with mode: 0644]
pkg/types/020/types_suite_test.go [new file with mode: 0644]
pkg/types/020/types_test.go [new file with mode: 0644]
pkg/types/current/types.go
pkg/types/current/types_suite_test.go
pkg/types/current/types_test.go
pkg/types/types.go
pkg/version/legacy_examples/examples.go
pkg/version/version.go
plugins/ipam/dhcp/daemon.go
plugins/ipam/dhcp/lease.go
plugins/ipam/dhcp/main.go
plugins/ipam/dhcp/options.go
plugins/ipam/dhcp/options_test.go
plugins/ipam/host-local/backend/allocator/allocator.go
plugins/ipam/host-local/backend/allocator/allocator_test.go
plugins/ipam/host-local/backend/allocator/config.go
plugins/ipam/host-local/host_local_test.go
plugins/ipam/host-local/main.go
plugins/main/bridge/bridge.go
plugins/main/bridge/bridge_test.go
plugins/main/ipvlan/ipvlan.go
plugins/main/ipvlan/ipvlan_test.go
plugins/main/loopback/loopback.go
plugins/main/macvlan/macvlan.go
plugins/main/macvlan/macvlan_test.go
plugins/main/ptp/ptp.go
plugins/main/ptp/ptp_test.go
plugins/meta/flannel/flannel.go
plugins/meta/tuning/tuning.go
plugins/test/noop/main.go
plugins/test/noop/noop_test.go
test