1154 Commits

Author SHA1 Message Date
Dan Williams
121362601b vendor: bump cni to 0.5.2-git49d814c 2017-06-28 12:06:37 -05:00
Dan Williams
5a7a8b3069 Merge pull request #24 from squeed/flannel-return
flannel: set the cniVersion on the delegated config
2017-06-28 08:45:02 -05:00
Dan Williams
f01230d75f Merge pull request #10 from leblancd/v6_bridge_plugin
bridge: Add support for IPv6 to bridge plugin
2017-06-28 08:34:53 -05:00
Dane LeBlanc
ffdc748861 bridge: Add support for IPv6 to bridge plugin
This change adds support for IPv6 container/pod addresses to the CNI
bridge plugin, both for dual-stack (IPv4 + IPv6) and for IPv6-only
network configurations.

The proposed changes support multiple IPv6 addresses on a container
interface. If isGW is configured, the bridge will also be configured with
gateway addresses for each IPv6 subnet.

Please note that both the dual-stack functionality and support for multiple
IPv6 container/gateway addresses depends upon containernetworking/cni
PR 451 "ipam/host-local: support multiple IP ranges".
This change could potentially be committed independently from this host-local
plugin change, however the dual-stack and multiple IPv6 address
functionality that is enabled by this change can't be exercised/tested
until the host-local plugin change is committed.

There are some IPv6 unit test cases that are currently commented out
in the proposed changes because these test cases will fail without the
prior commits of the multiple IP range host-local change.

This pull request includes a temporary workaround for Kubernetes
Issue #32291 (Container IPv6 address is marked as duplicate, or dadfailed).
The problem is that kubelet enables hairpin mode on bridge veth
interfaces. Hairpin mode causes the container/pod to see echos of its
IPv6 neighbor solicitation packets, so that it declares duplicate address
detection (DAD) failure. The long-term fix is to use enhanced-DAD
when that feature is readily available in kernels. The short-term fix is
to disable IPv6 DAD in the container. Unfortunately, this has to be done
unconditionally (i.e. without a check for whether hairpin mode is enabled)
because hairpin mode is turned on by kubelet after the CNI bridge plugin
has completed cmdAdd processing. Disabling DAD should be okay if
IPv6 addresses are guaranteed to be unique (which is the case for
host-local IPAM plugin).
2017-06-21 12:47:38 -04:00
Casey Callendrello
8c5e754617 flannel: set the cniVersion on the delegated config
Fixes: #23
2017-06-16 19:04:07 +02:00
Casey Callendrello
5bbff37294 Merge pull request #16 from squeed/gratuitous-arp
ptp, macvlan: don't change mac address; send gratuitous arp
2017-06-16 18:34:37 +02:00
Casey Callendrello
485f151536 Merge pull request #22 from squeed/portmap-plugin
portmap: Don't accept a port number of 0
2017-06-16 18:33:40 +02:00
Gabe Rosenhouse
494053dd98 Merge pull request #11 from dcbw/dhcp-pidfile
dhcp: add --pidfile option to DHCP client daemon
2017-06-15 22:48:42 -07:00
Casey Callendrello
83ec9bb73f portmap: Don't accept a port number of 0
This also adds more testing around configuration parsing.
2017-06-15 14:00:04 +02:00
Dan Williams
e2558a03bb Merge pull request #12 from squeed/host-local-multi
ipam/host-local: support multiple IP ranges
2017-06-14 21:55:30 -05:00
Dan Williams
a38dd5f7a0 dhcp: add --pidfile option to DHCP client daemon 2017-06-14 21:41:43 -05:00
Bryan Boreham
45650feb32 Merge pull request #14 from rosenhouse/more-ns-warning-redux
pkg/ns readme: expand on danger of ns switching in long-lived programs
2017-06-14 16:18:26 +01:00
Casey Callendrello
2e9e87732f ipam/host-local: support multiple IP ranges
This change allows the host-local allocator to allocate multiple IPs.
This is intended to enable dual-stack, but is not limited to only two
subnets or separate address families.
2017-06-12 21:14:44 +02:00
Gabe Rosenhouse
7cda9af13f Merge pull request #17 from tklauser/x-sys-unix-setns
pkg/ns: use unix.Setns() instead of open coding it
2017-06-08 08:39:41 -07:00
Tobias Klauser
9c7aeff02c pkg/ns: use unix.Setns() instead of open coding it
Use unix.Setns() instead of manually re-implementing it using
unix.Syscall().
2017-06-08 14:48:58 +02:00
Gabe Rosenhouse
98cafb157c Merge pull request #15 from rosenhouse/contribute-vagrantfile
Add CONTRIBUTING and Vagrantfile
2017-06-07 07:26:01 -07:00
Casey Callendrello
e76165b44f ptp, macvlan: don't change mac address; send gratuitous arp 2017-06-07 16:08:41 +02:00
Casey Callendrello
94e6489466 vendor: add j-keck/arping 2017-06-07 15:40:26 +02:00
Gabe Rosenhouse
9a96aa2981 add Vagrantfile to support cross-platform development
Update CONTRIBUTING to reflect plugin split
2017-06-06 20:13:31 -07:00
Gabe Rosenhouse
a860d4d244 contributing doc: copy in from cni repo 2017-06-06 19:20:19 -07:00
Gabe Rosenhouse
6f45630cc1 pkg/ns readme: expand on danger of ns switching in long-lived programs
- redux of https://github.com/containernetworking/cni/pull/331 since the
plugin/lib split
- added link to new blog post about this from Weave folks (thanks!)
2017-06-06 19:05:00 -07:00
Casey Callendrello
e8bea554c5 Merge pull request #13 from squeed/build-fixes
build: some minor post-repo-split fixes; add fastbuild
2017-06-02 10:23:03 +02:00
Casey Callendrello
43a24515ee build: some minor post-repo-split fixes; add fastbuild 2017-06-01 18:51:46 +02:00
Bryan Boreham
0997c532a1 Merge pull request #1 from squeed/portmap-plugin
iptables-based portmapping plugin
2017-06-01 13:05:29 +01:00
Casey Callendrello
a7aaf0e377 plugins/meta/portmap: add an iptables-based host port mapping plugin 2017-06-01 10:06:28 +02:00
Casey Callendrello
22cda76afb vendor: add mattn/go-shellwords 2017-05-31 19:21:03 +02:00
Casey Callendrello
b47d5b7c0a vendor: add libcni 2017-05-31 18:32:38 +02:00
Casey Callendrello
539174f8c8 vendor: update coreos/go-iptables 2017-05-31 18:32:38 +02:00
Dan Williams
8816992fcb Merge pull request #9 from squeed/move-pkg
Move libraries from cni only used by plugins.
2017-05-31 10:11:59 -05:00
Casey Callendrello
4e2f467e21 vendor: remove moved cni/pkg/... libraries 2017-05-23 16:12:53 +02:00
Casey Callendrello
3c436520be move most of cni/pkg to plugins/pkg: delete code staying in cni/pkg
This moves the following packages to this repository:
* ip
* ipam
* ns
* testutils
* utils
2017-05-23 16:12:49 +02:00
Casey Callendrello
8b43e90949 Add 'pkg/' from commit 'a11be4d7596203874b742b6597caf255204c56c3'
git-subtree-dir: pkg
git-subtree-mainline: dcf7368eeab15e2affc6256f0bb1e84dd46a34de
git-subtree-split: a11be4d7596203874b742b6597caf255204c56c3
2017-05-19 19:43:02 +02:00
Casey Callendrello
dcf7368eea Merge pull request #6 from squeed/merge-docs
Documentation folder merge
2017-05-19 16:16:01 +02:00
Casey Callendrello
0c1c1b7d8c Merge pull request #8 from squeed/bump-cni
vendor: bump cni to v0.5.2
2017-05-19 15:54:54 +02:00
Casey Callendrello
f5e4c117d1 vendor: bump cni to v0.5.2 2017-05-19 14:38:26 +02:00
Casey Callendrello
c9e3fc4890 Add references to all plugins to the README 2017-05-16 16:46:24 +02:00
Casey Callendrello
9f52fc0374 Move documentation folder to individual READMEs 2017-05-16 16:46:15 +02:00
Casey Callendrello
3ac78df0b6 Add 'Documentation/' from commit '5bb59a12b80dc99552bebf0394a067807f72f947'
git-subtree-dir: Documentation
git-subtree-mainline: db8f94a5096c356107873455525f5fa3a02561d5
git-subtree-split: 5bb59a12b80dc99552bebf0394a067807f72f947
2017-05-15 17:13:31 +02:00
Casey Callendrello
db8f94a509 Rename build & test, take two 2017-05-15 16:50:24 +02:00
Casey Callendrello
1430c43243 Rename build script to avoid conflict with bazel 2017-05-15 16:45:58 +02:00
Casey Callendrello
f130db5b61 Merge pull request #5 from dcbw/add-cni-plugins
plugins: add plugins from containernetworking/cni
2017-05-15 12:27:40 +02:00
Dan Williams
d2792f264e plugins: add plugins from containernetworking/cni
Plugins prepared from the containernetworking/cni repo as follows:

1) git reset --hard 1a9288c3c09cea4e580fdb1a636f1c5e185a391f
2) git remove everything not in plugins/
3) git remove plugins/test
4) git merge into containernetworking/plugins repo
5) adjust import paths for containernetworking/cni -> containernetworking/plugins
2017-05-14 23:12:45 -05:00
Dan Williams
4e0349a7e7 Remove everything except for plugins in preparation for import to plugins repo 2017-05-14 23:04:53 -05:00
Dan Williams
4af68521cd plugins: move vlan to plugins/main/ 2017-05-09 22:47:26 -05:00
Dan Williams
7cab2fd317 vendor: add github.com/d2g 2017-05-09 22:45:44 -05:00
Dan Williams
be5f1f723e vendor: add coreos/go-systemd 2017-05-09 22:45:44 -05:00
Dan Williams
8c27b64f13 vendor: add gomega/gbytes and gomega/gexec 2017-05-09 22:45:44 -05:00
Dan Williams
af9127b7ea vendor: bump CNI to 1a9288c3c09cea4e580fdb1a636f1c5e185a391f 2017-05-09 22:45:44 -05:00
Casey Callendrello
1a9288c3c0 Merge pull request #450 from gunjan5/spec-version-mismatch
cniVersion and config structure mismatch
2017-05-08 11:12:25 +02:00
Dan Williams
e03c76b852 Merge pull request #445 from feiskyer/cniversion
Add cniVersion to Result
2017-05-05 17:47:26 -05:00