Dan Williams [Tue, 22 Nov 2016 16:02:39 +0000 (10:02 -0600)]
testutils: pass netConf in for version operations; pass raw result out for tests
Gabe Rosenhouse [Mon, 23 Jan 2017 15:42:57 +0000 (07:42 -0800)]
Merge pull request #355 from rosenhouse/skel-main-errors
skel: adds PluginMainWithError which returns a *types.Error
Gabe Rosenhouse [Mon, 23 Jan 2017 00:39:15 +0000 (16:39 -0800)]
skel: adds PluginMainWithError which returns a *types.Error
Enables plugins to do their own error-handling and cleanup logic
Gabe Rosenhouse [Fri, 20 Jan 2017 21:50:24 +0000 (13:50 -0800)]
Merge pull request #352 from containernetworking/conventions
Documentation: Add conventions doc
Tom Denham [Fri, 20 Jan 2017 20:49:00 +0000 (12:49 -0800)]
Update CONVENTIONS.md
Gabe Rosenhouse [Fri, 20 Jan 2017 16:35:37 +0000 (08:35 -0800)]
Merge pull request #346 from dcbw/ordered-chaining
api/plugins: implement ordered plugin chaining
Dan Williams [Sat, 17 Dec 2016 00:56:39 +0000 (18:56 -0600)]
api,libcni: add network config list-based plugin chaining
Using a new ".configlist" file format that allows specifying
a list of CNI network configurations to run, add new libcni
helper functions to call each plugin in the list, injecting
the overall name, CNI version, and previous plugin's Result
structure into the configuration of the next plugin.
Dan Williams [Sat, 17 Dec 2016 01:35:26 +0000 (19:35 -0600)]
spec: add network configuration list specification
Tom Denham [Fri, 20 Jan 2017 02:05:28 +0000 (18:05 -0800)]
Spec/Conventions: Update to include plugin config
Dan Williams [Fri, 16 Dec 2016 19:53:51 +0000 (13:53 -0600)]
noop: allow specifying debug file in config JSON
Chaining sends different config JSON to each plugin, but the same
environment, and if we want to test multiple noop plugin runs in
the same chain we need a way of telling each run to use a different
debug file.
Tom Denham [Tue, 17 Jan 2017 23:53:24 +0000 (15:53 -0800)]
Documentation: Add conventions doc
Tom Denham [Fri, 13 Jan 2017 01:06:04 +0000 (17:06 -0800)]
Merge pull request #334 from squeed/host-local-dns
ipam/host-local: add ResolvConf argument for DNS configuration
Tom Denham [Thu, 12 Jan 2017 21:42:25 +0000 (13:42 -0800)]
Merge pull request #350 from rosenhouse/spec-version
spec: notice of version
Gabe Rosenhouse [Wed, 11 Jan 2017 16:35:42 +0000 (08:35 -0800)]
spec: notice of version
Casey Callendrello [Mon, 21 Nov 2016 18:05:41 +0000 (19:05 +0100)]
ipam/host-local: add ResolvConf argument for DNS configuration
This adds the option `resolvConf` to the host-local IPAM configuration.
If specified, the plugin will try to parse the file as a resolv.conf(5)
type file and return it in the DNS response.
Tom Denham [Tue, 10 Jan 2017 21:06:46 +0000 (13:06 -0800)]
Merge pull request #115 from aanm/implementing-ipam-as-lib
ipam/host-local: Move allocator and config to backend
André Martins [Sat, 6 Feb 2016 21:52:27 +0000 (21:52 +0000)]
ipam/host-local: Move allocator and config to backend
Signed-off-by: André Martins <aanm90@gmail.com>
Gabe Rosenhouse [Mon, 19 Dec 2016 19:02:20 +0000 (11:02 -0800)]
Merge pull request #325 from squeed/update-maintainer
MAINTAINERS: hi CaseyC!
Casey Callendrello [Tue, 8 Nov 2016 17:38:04 +0000 (18:38 +0100)]
MAINTAINERS: hi CaseyC!
Gabe Rosenhouse [Fri, 16 Dec 2016 16:06:17 +0000 (08:06 -0800)]
Merge pull request #345 from rosenhouse/travis-go-versions
travis: roll forward the versions of Go that we test
Gabe Rosenhouse [Fri, 16 Dec 2016 02:41:07 +0000 (18:41 -0800)]
travis: roll forward the versions of Go that we test
Gabe Rosenhouse [Fri, 16 Dec 2016 02:35:43 +0000 (18:35 -0800)]
Merge pull request #314 from rosenhouse/noop-helpful-message
plugins/noop: return a helpful message for test authors
Gabe Rosenhouse [Fri, 16 Dec 2016 02:34:57 +0000 (18:34 -0800)]
Merge pull request #344 from dcbw/interface-checks
all: assert internal objects implement interfaces
Gabe Rosenhouse [Fri, 16 Dec 2016 02:20:34 +0000 (18:20 -0800)]
Merge branch 'master' into interface-checks
Gabe Rosenhouse [Fri, 16 Dec 2016 02:18:25 +0000 (18:18 -0800)]
Merge pull request #341 from dcbw/host-local-trim
host-local: trim whitespace from container IDs and disk file contents
Dan Williams [Wed, 14 Dec 2016 23:09:01 +0000 (17:09 -0600)]
all: assert internal objects implement interfaces
Dan Williams [Sat, 10 Dec 2016 00:22:08 +0000 (18:22 -0600)]
Merge pull request #340 from vzcambria/master
Fix README.md host-local IPAM range start/end typo
Dan Williams [Sat, 10 Dec 2016 00:16:38 +0000 (18:16 -0600)]
host-local: trim whitespace from container IDs and disk file contents
It doesn't seem like container IDs should really have whitespace or
newlines in them. As a complete edge-case, manipulating the host-local
store's IP reservations with 'echo' puts a newline at the end, which
caused matching to fail in ReleaseByID(). Don't ask...
VZ Cambria [Tue, 6 Dec 2016 15:40:55 +0000 (10:40 -0500)]
Fix README.md host-local IPAM range start/end typo
Konstantinos Karampogias [Thu, 27 Oct 2016 17:47:04 +0000 (10:47 -0700)]
plugins/noop: return a helpful message for test authors
Signed-off-by: Gabe Rosenhouse <grosenhouse@pivotal.io>
Dan Williams [Fri, 2 Dec 2016 19:33:36 +0000 (13:33 -0600)]
Merge pull request #335 from JulienBalestra/json_ext
libcni conf: support .json file extension
Julien Balestra [Wed, 23 Nov 2016 09:46:17 +0000 (10:46 +0100)]
libcni conf: support .json file extension
Content of the files are json, the configuration load should support .json
Dan Williams [Fri, 18 Nov 2016 21:27:35 +0000 (15:27 -0600)]
Merge pull request #322 from cf-container-networking/flannel-cni-stateDir
Allow flannel CNI plugin stateDir to be configurable
Mark St.Godard [Thu, 17 Nov 2016 21:54:29 +0000 (15:54 -0600)]
flannel: rename stateDir to dataDir
Rename StateDir to DataDir for flannel CNI plugin
Gabe Rosenhouse [Thu, 17 Nov 2016 16:00:31 +0000 (08:00 -0800)]
Merge pull request #330 from bboreham/ns-warning
Expand description of goroutine+netns problems
Bryan Boreham [Thu, 17 Nov 2016 15:45:38 +0000 (15:45 +0000)]
Expand description of goroutine+netns problems
Gabe Rosenhouse [Mon, 14 Nov 2016 16:17:40 +0000 (08:17 -0800)]
Merge pull request #327 from dcbw/host-local-tests
host-local: add DataDir IPAM conf option and use it for testcases
Mark St.Godard [Sun, 13 Nov 2016 18:16:32 +0000 (12:16 -0600)]
flannel: updated flannel test to use pkg/testutils
reworked the flannel test to use testutils CmdAddWithResult and
CmdDelWithResult
Gabe Rosenhouse [Fri, 11 Nov 2016 06:24:58 +0000 (22:24 -0800)]
Merge pull request #328 from markstgodard/noop-cni-args
noop plugin: support multiple CNI_ARGS
Mark St.Godard [Thu, 10 Nov 2016 21:30:24 +0000 (15:30 -0600)]
noop plugin: support multiple CNI_ARGS
Updated noop plugin to parse the CNI_ARGS pairs, to allow more than just
the DEBUG arg.
Dan Williams [Thu, 10 Nov 2016 18:53:59 +0000 (12:53 -0600)]
Merge pull request #324 from lstoll/lstoll-ipvlan-l3s
ipvlan: Support L3-Symmetric mode
Dan Williams [Thu, 10 Nov 2016 16:50:58 +0000 (10:50 -0600)]
host-local: add DataDir IPAM conf option and use it for testcases
Add an e2e host-local plugin testcase, which requires being able
to pass the datadir into the plugin so we can erase it later.
We're not always guaranteed to have access to the default data
dir location, plus it should probably be configurable anyway.
Mark St.Godard [Wed, 9 Nov 2016 15:34:35 +0000 (09:34 -0600)]
flannel: update flannel documentation
add optional 'stateDir' to flannel docs
Gabe Rosenhouse [Mon, 7 Nov 2016 22:25:09 +0000 (14:25 -0800)]
Merge pull request #307 from squeed/backwards-compatability-tests
testing: test invocation of newer plugins with an older libcni
Mark St.Godard [Sun, 6 Nov 2016 04:27:14 +0000 (23:27 -0500)]
flannel: add unit tests for config loading
backfill unit tests to add coverage for loadFlannelNetConf and
loadFlannelSubnetEnv
Lincoln Stoll [Sat, 5 Nov 2016 20:22:51 +0000 (13:22 -0700)]
ipvlan: Support ipvlan l3s mode.
This landed in kernel in 4fbae7d
Lincoln Stoll [Sat, 5 Nov 2016 20:40:34 +0000 (13:40 -0700)]
vendor: github.com/vishvananda/netlink@a1f8555
Update to current master, to get IPVLAN L3s def.
Mark St.Godard [Sat, 5 Nov 2016 15:47:07 +0000 (10:47 -0500)]
flannel: add integration test suite
add new test for flannel plugin that delegates to the noop plugin and
validates that 'storeDir' can be configurable
Mark St.Godard [Thu, 3 Nov 2016 22:10:13 +0000 (17:10 -0500)]
Allow flannel CNI plugin stateDir to be configurable
- Add optional 'stateDir' to flannel NetConf, if not present default to
/var/lib/cni/flannel
Signed-off-by: Jay Dunkelberger <ldunkelberger@pivotal.io>
Casey Callendrello [Fri, 14 Oct 2016 14:38:32 +0000 (16:38 +0200)]
testing: test invocation of newer plugins with an older libcni
Gabe Rosenhouse [Mon, 24 Oct 2016 23:25:48 +0000 (16:25 -0700)]
Merge pull request #312 from tomdee/slack
Add slack badge and link
Tom Denham [Mon, 24 Oct 2016 23:23:04 +0000 (16:23 -0700)]
Add slack badge and link
Gabe Rosenhouse [Sun, 23 Oct 2016 23:23:55 +0000 (16:23 -0700)]
Merge pull request #311 from rkamudhan/patch-2
Update ipvlan.md
Kuralamudhan Ramakrishnan [Sun, 23 Oct 2016 22:18:44 +0000 (23:18 +0100)]
Update ipvlan.md
invalid json format
Gabe Rosenhouse [Mon, 17 Oct 2016 22:02:27 +0000 (15:02 -0700)]
Merge pull request #308 from rosenhouse/fix-skel-tests-containerid
skel tests: correct name of CNI_CONTAINERID in tests of env vars
Gabe Rosenhouse [Mon, 17 Oct 2016 00:18:57 +0000 (17:18 -0700)]
skel tests: correct name of CNI_CONTAINERID in tests of env vars
Gabe Rosenhouse [Mon, 17 Oct 2016 00:08:52 +0000 (17:08 -0700)]
Merge pull request #305 from yuewko/add_infoblox_link
Add link to Infoblox IPAM plugin
Yue Ko [Tue, 11 Oct 2016 18:07:30 +0000 (11:07 -0700)]
Add link to Infoblox IPAM plugin
Added link to Infoblox IPAM plugin in README.
Gabe Rosenhouse [Mon, 10 Oct 2016 05:39:31 +0000 (22:39 -0700)]
Merge pull request #304 from danp/patch-1
docs/ptp: fix markdown formatting
Dan Peterson [Mon, 10 Oct 2016 00:22:27 +0000 (21:22 -0300)]
docs/ptp: fix markdown formatting
Dan Williams [Thu, 6 Oct 2016 15:10:02 +0000 (10:10 -0500)]
Merge pull request #301 from rosenhouse/backwards-compatibility-tests
A test verifies that libcni is backwards compatible with legacy plugins
Gabe Rosenhouse [Thu, 6 Oct 2016 03:48:53 +0000 (20:48 -0700)]
travis: git clone at great depth
ensures that git commits referenced by backwards compatibility tests are
always available in CI.
Gabe Rosenhouse [Mon, 3 Oct 2016 15:39:23 +0000 (08:39 -0700)]
Merge pull request #302 from rosenhouse/readme-3rd-party-plugins
3rd party plugins belong in their own repos
Gabe Rosenhouse [Mon, 3 Oct 2016 06:41:39 +0000 (23:41 -0700)]
docs: on contributing plugins to this repo
Gabe Rosenhouse [Mon, 3 Oct 2016 04:43:51 +0000 (21:43 -0700)]
testing: adds basic test of backwards compatibility
Dan Williams [Thu, 22 Sep 2016 22:11:34 +0000 (17:11 -0500)]
Merge pull request #296 from rosenhouse/plugins-require-versioned-config
Plugins validate cniVersion of NetConf
Dan Williams [Thu, 22 Sep 2016 14:13:32 +0000 (09:13 -0500)]
Merge pull request #298 from freehan/fix-host-local-30
host-local: fix allocation of last address in a /30
Minhan Xia [Fri, 16 Sep 2016 17:38:44 +0000 (10:38 -0700)]
host-local: fix allocation of last address in a /30
Brandon Philips [Mon, 19 Sep 2016 21:31:54 +0000 (14:31 -0700)]
Merge pull request #299 from tgraf/cilium-link
List cilium as 3rd party plugin
Gabe Rosenhouse [Mon, 19 Sep 2016 20:14:02 +0000 (13:14 -0700)]
skel: use named constant for Incompatible CNI Version error code
Gabe Rosenhouse [Mon, 19 Sep 2016 20:10:27 +0000 (13:10 -0700)]
versioning: ipam config is not versioned
Gabe Rosenhouse [Mon, 19 Sep 2016 20:00:49 +0000 (13:00 -0700)]
versioning: plugins require version match with config
infer version 0.1.0 when config is missing an explicit "cniVersion" field
Gabe Rosenhouse [Mon, 19 Sep 2016 04:56:17 +0000 (21:56 -0700)]
versioning: add basic version decode for network config
Thomas Graf [Mon, 19 Sep 2016 11:44:25 +0000 (13:44 +0200)]
README: List cilium as 3rd party plugin
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Gabe Rosenhouse [Wed, 7 Sep 2016 00:19:26 +0000 (20:19 -0400)]
skel: Plugins require a cniVersion in the NetConf
Gabe Rosenhouse [Mon, 12 Sep 2016 20:44:14 +0000 (13:44 -0700)]
Merge pull request #287 from rosenhouse/multi-version
Plugins report a list of supported versions
Gabe Rosenhouse [Thu, 8 Sep 2016 04:47:04 +0000 (00:47 -0400)]
Merge pull request #295 from rosenhouse/update-readme-cloudfoundry-link
readme: update link to CloudFoundry usage of CNI
Gabe Rosenhouse [Tue, 6 Sep 2016 22:18:24 +0000 (18:18 -0400)]
readme: update link to CloudFoundry usage of CNI
Gabe Rosenhouse [Tue, 6 Sep 2016 19:24:12 +0000 (15:24 -0400)]
versioning: revert spec version to 0.2.0
Gabe Rosenhouse [Tue, 6 Sep 2016 15:22:27 +0000 (11:22 -0400)]
versioning: misc cleanups
highlights:
- NetConf struct finally includes cniVersion field
- improve test coverage of current version report behavior
- godoc a few key functions
- allow tests to control version list reported by no-op plugin
Gabe Rosenhouse [Tue, 6 Sep 2016 03:24:42 +0000 (23:24 -0400)]
Merge pull request #294 from dcbw/host-local-ranges
Fix handling of host-local IP address ranges
Dan Williams [Fri, 2 Sep 2016 22:20:09 +0000 (17:20 -0500)]
host-local: don't allocate the broadcast address or allow invalid networks
There aren't any IPs to allocate in /32 or /31 networks, so don't allow them.
Dan Williams [Fri, 2 Sep 2016 21:52:29 +0000 (16:52 -0500)]
host-local: ensure requested IPs are within the given range
And also make sure that RangeStart and RangeEnd are sane.
Dan Williams [Fri, 2 Sep 2016 20:55:53 +0000 (15:55 -0500)]
host-local: don't allocate past RangeEnd
When RangeEnd is given, a.end = RangeEnd+1.
If when getSearchRange() is called and lastReservedIP equals
RangeEnd, a.nextIP() only compares lastReservedIP (which in this
example is RangeEnd) against a.end (which in this example is
RangeEnd+1) and they clearly don't match, so a.nextIP() returns
start=RangeEnd+1 and end=RangeEnd.
Get() happily allocates RangeEnd+1 because it only compares 'cur'
to the end returned by getSearchRange(), not to a.end, and thus
allocates past RangeEnd.
Since a.end is inclusive (eg, host-local will allocate a.end) the
fix is to simply set a.end equal to RangeEnd.
Gabe Rosenhouse [Fri, 2 Sep 2016 20:39:01 +0000 (16:39 -0400)]
invoke: better name and unit test coverage for GetVersionInfo
Gabe Rosenhouse [Fri, 2 Sep 2016 20:01:22 +0000 (16:01 -0400)]
invoke: correctly infer version for 0.1.0-vintage plugins
Older plugins return a known error when issued the VERSION command.
Capture this error and report it as a 0.1.0 version plugin.
Gabe Rosenhouse [Wed, 24 Aug 2016 05:57:00 +0000 (22:57 -0700)]
versioning: adds tooling to compile a program against a given old CNI version
Allows us to write tests that cover interactions between components of
differing versions
Gabe Rosenhouse [Fri, 2 Sep 2016 17:12:14 +0000 (13:12 -0400)]
pkg/invoke: refactor plugin exec and backfill unit tests
Gabe Rosenhouse [Mon, 29 Aug 2016 23:20:18 +0000 (19:20 -0400)]
versioning: document meaning of 'Legacy' version support
Gabe Rosenhouse [Mon, 22 Aug 2016 06:48:04 +0000 (23:48 -0700)]
versioning: plugins report a list of supported versions
Further progress on versioning support (Issue #266).
Bump CNI spec version to 0.3.0
Gabe Rosenhouse [Thu, 1 Sep 2016 00:49:08 +0000 (20:49 -0400)]
Merge pull request #293 from rosenhouse/backfill-invoke-exec-tests
Backfill tests for plugin execution
Dan Williams [Wed, 31 Aug 2016 23:19:02 +0000 (18:19 -0500)]
Merge pull request #290 from asridharan/dcos
Fixed the check for network namespace path.
Avinash Sridharan [Wed, 24 Aug 2016 23:49:50 +0000 (23:49 +0000)]
pkg/ns: fixed the check for network namespace path.
The expectation on older kernels (< 3.19) was to have the network
namespace always be a directory. This is not true if the network
namespace is bind mounted to a file, and will make the plugin fail
erroneously in such cases. The fix is to remove this assumption
completely and just do a basic check on the file system types being
returned.
Fixes #288
Dan Williams [Wed, 31 Aug 2016 21:32:09 +0000 (16:32 -0500)]
Merge pull request #291 from tomdee/SetupVeth
pkg/ip: Ensure that SetupVeth returns correct hostVeth
Tom Denham [Mon, 29 Aug 2016 21:10:36 +0000 (14:10 -0700)]
pkg/ip: Ensure that SetupVeth returns correct hostVeth
The veth is moved from the container NS to the host NS.
This is handled by the code that sets the link to UP but the wrong
hostVeth is returned to the calling code.
Gabe Rosenhouse [Wed, 31 Aug 2016 03:52:47 +0000 (23:52 -0400)]
invoke: backfill tests for plugin execution
Gabe Rosenhouse [Sat, 13 Aug 2016 22:11:28 +0000 (15:11 -0700)]
Merge pull request #241 from luxas/add_platforms
Add arm64 and ppc64le as new platforms
Lucas Käldström [Sat, 13 Aug 2016 09:45:04 +0000 (12:45 +0300)]
release: Release binaries for arm, arm64 and ppc64le too
Modify the releasing script to cross-compile for the new architectures, but also keep backwards-compability
ref #209
Lucas Käldström [Sat, 13 Aug 2016 09:44:45 +0000 (12:44 +0300)]
travis: Cross-compile for arm, arm64 and ppc64le on every build
Cross-compile cni for arm, arm64 and ppc64le with go1.6 only
Allow go tip to fail
Set fast_finish to true, which means travis will instantly return build failure when any of the required builds fail
ref #209
Lucas Käldström [Sat, 13 Aug 2016 09:44:28 +0000 (12:44 +0300)]
build: Update the build script to make it possible to build for other architectures
This makes it possible to cross-compile cni like so:
$ GOARCH=arm ./build
$ GOARCH=arm64 ./build
$ GOARCH=ppc64le ./build
ref #209