Releases: containernetworking/cni
CNI v1.1.2
This is a minor update to the CNI libraries and tooling. This does not bump the protocol / spec version, which remains at v1.0.0.
What's Changed
- spec: fix format by @drivebyer in #902
- Fix successfully unmarshalled nil raw result by @brandond in #904
New Contributors
- @drivebyer made their first contribution in #902
- @brandond made their first contribution in #904
Full Changelog: v1.1.1...v1.1.2
CNI v1.1.1
This is a minor update to the CNI libraries and tooling. This does not bump the protocol / spec version, which remains at v1.0.0.
Changes include:
- cnitool: address golint error by @fujitatomoya in #894
- invoke: if Result CNIVersion is empty use netconf CNIVersion by @dcbw in #896
New Contributors:
- @fujitatomoya made their first contribution in #894
Full Changelog: v1.1.0...v1.1.1
CNI v1.1.0
This is a minor update to the CNI libraries and tooling. This does not bump the protocol / spec version, which remains at v1.0.0.
Changes include:
- libcni: handle empty version when parsing version (#893). Without this, Delete failed for empty-version configs, which was a regression from v0.8.0.
- Fix incorrect pointer inputs to
json.Unmarshal
(#880). - [exec-plugins]: support plugin lists (#865).
- skel: remove superfluous err nil check in (*dispatcher).pluginMain (#864).
- skel: print out CNI versions supported in help text (#860).
🎉 CNI v1.0.1 🎉
Hot off the presses, it's CNI v1.0!
CNI v1.0 doesn't change much about how CNI works, but it declares API stability.
This release includes
- a rewritten spec (for clarity)
- libcni improvements
- way more tests.
You can see the full spec changelog here: https://github.com/containernetworking/cni/blob/v1.0.1/Documentation/spec-upgrades.md
CNI v0.8.1
libcni v0.8.1
This is a security release that fixes a single bug:
- tighten up plugin-finding logic (#811).
Users of libcni are strongly encouraged to update.
v0.8.0
This release includes a number of small improvements and bug fixes.
There are no material changes to the specification or interfaces, but we increased the version from 0.7 to 0.8 in recognition of a breaking change (if you used the method): Result.String()
has been removed.
We do not release binaries here: this repo holds the Specification and Go Library for CNI; the plugins have moved to https://github.com/containernetworking/plugins.
Specification and Conventions changes
- #691 docs: add ips and mac to well-known capabilities
- #712 add interface name validation
- #742 Add GUID to well known Capabilities
- #761 Add DeviceID attribute to RuntimeConfig
- #764 Typo fixes for infiniband GUID
- #768 Fix linting issues in docs, add headers to json example, update errors into table
Documentation changes
libcni changes
- #583 Remove Result.String method
- #678 libcni: add config caching [v2]
- #681 clean up : fix staticcheck warnings
- #682 libcni: add InitCNIConfigWithCacheDir() and deprecate RuntimeConfig.CacheDir
- #686 skel: clean up errors in skel and add some well-known error codes
- #692 libcni: find plugin in exec
- #698 validate containerID and networkName
- #699 skel: remove needless functions and types
- #704 libcni: also cache IfName
- #705 libcni: fix cache file 'result' key name
- #713 Bump Go version to 1.13
- #721 When CNI version isn't supplied in config, use default.
- #735 intercept netplugin std error
- #760 invoke: capture and return stderr if plugin exits unexpectedly
- #763 Retry exec commands on text file busy
v0.7.1
The 0.7.1 CNI release includes minor bug fixes to v0.7.0.
We do not release binaries here: this repo holds the Specification and Go Library for CNI, and the plugins moved to https://github.com/containernetworking/plugins.
libcni changes
Library changes:
#662 invoke : ensure custom envs of CNIArgs are prepended to process envs
#669 add GetNetworkListCachedResult to CNI interface
#663 delegate : allow delegation funcs override CNI_COMMAND env automatically in heritance
Documentation & Convention changes:
#659 Update cnitool documentation for spec v0.4.0
#666 Add cni-route-override to CNI plugin list
Build and test changes:
#672 Release: bump go to v1.12
Full list of changes here. Many thanks to the 7 contributors who helped make this release possible.
v0.7.0
The 0.7.0 CNI release includes spec version 0.4.0, plus some minor bugfixes and improvements to the Go implementation.
CNI Spec v0.4.0
The big change in the spec is a new method CHECK
, which runtimes can call to find out whether one network interface is still set up as they expect (#579).
libcni changes
The libcni API has changed with the addition of a Context to enable timeouts and cancellation (#568)
Spec changes:
#500 Use more RFC2119 style language in specification (must, should...)
#505 add notes about ADD/DEL ordering
#510 Make the container ID required and unique.
#543 remove the version parameter from ADD and DEL commands.
#557 Network interface name matters
#565 be explicit about optional and required structure members
#579 add CHECK
method
#591 Add a well-known error for "try again"
#641 SPEC.md: clarify meaning of 'routes'
Library changes:
#96 pkg/types: Makes IPAM concrete type
#494 libcni: return error if Type is empty
#502 skel: VERSION shouldn't block on stdin
#521 non-pointer instances of types.Route now correctly marshal to JSON
#524 libcni: add ValidateNetwork and ValidateNetworkList functions
#536 pkg/skel: return error if JSON config has no network name
#554 skel: add support for plugin version string
#558 libcni: make exec handling an interface for better downstream testing
#568 libcni: api now takes a Context to allow operations to be timed out or cancelled
#570 types/version: add helper to parse PrevResult
#572 skel: only print about message, not errors
#584 skel,invoke,libcni: implementation of CHECK method
#587 cnitool: Honor interface name supplied via CNI_IFNAME environment variable.
#600 cnitool: validate correct number of args
#617 Don't copy gw from IP4.Gateway to Route.GW When converting from 0.2.0
#636 add PrintTo method to Result interface
#655 Return a better error when the plugin returns none
Documentation & Convention changes:
#492 roadmap: add 1.0 items and clean things up
#493 docs: add Governance procedure documentation
#495 Spec lists git tags pointing to old spec versions
#497 add the "ips" arg
#504 governance: add notes about public voting
#525 add new ipRanges
capability.
#556 Conventions: add bandwidth limits
#639 Update conventions.md to include dns capability
#597 CONVENTIONS: add support for IP prefixes
Build and test changes:
#489 Release: clean the builddir when building.
#499,#538,#592 Golang versions: add 1.10, 1.11, drop 1.7 and 1.8
#501 Test all non-vendored packages
#508 cnitool: generate container id from the netns path
#514 Remove vendor directory
#515 Add CI for Windows
#535 tests: remove netns handling
Plus many more changes to fix typos, add 3rd-party plugins, etc. Full list of changes here.
Many thanks to the 50 contributors who helped make this release possible.
Release 0.7.0 Release Candidate 2
This is a Release Candidate for the 0.7.0 CNI release, which includes spec version 0.4.0, plus some minor bugfixes and improvements to the Go implementation.
CNI Spec v0.4.0
The big change in the spec is a new method CHECK
, which runtimes can call to find out whether one network interface is still set up as they expect (#579).
libcni changes
The libcni API has changed with the addition of a Context to enable timeouts and cancellation (#568)
Spec changes:
#500 Use more RFC2119 style language in specification (must, should...)
#505 add notes about ADD/DEL ordering
#510 Make the container ID required and unique.
#543 remove the version parameter from ADD and DEL commands.
#557 Network interface name matters
#565 be explicit about optional and required structure members
#579 add CHECK
method
#591 Add a well-known error for "try again"
#641 SPEC.md: clarify meaning of 'routes'
Library changes:
#96 pkg/types: Makes IPAM concrete type
#494 libcni: return error if Type is empty
#502 skel: VERSION shouldn't block on stdin
#521 non-pointer instances of types.Route now correctly marshal to JSON
#524 libcni: add ValidateNetwork and ValidateNetworkList functions
#536 pkg/skel: return error if JSON config has no network name
#554 skel: add support for plugin version string
#558 libcni: make exec handling an interface for better downstream testing
#568 libcni: api now takes a Context to allow operations to be timed out or cancelled
#570 types/version: add helper to parse PrevResult
#572 skel: only print about message, not errors
#584 skel,invoke,libcni: implementation of CHECK method
#587 cnitool: Honor interface name supplied via CNI_IFNAME environment variable.
#600 cnitool: validate correct number of args
#617 Don't copy gw from IP4.Gateway to Route.GW When converting from 0.2.0
#636 add PrintTo method to Result interface
Documentation & Convention changes:
#492 roadmap: add 1.0 items and clean things up
#493 docs: add Governance procedure documentation
#495 Spec lists git tags pointing to old spec versions
#497 add the "ips" arg
#504 governance: add notes about public voting
#525 add new ipRanges
capability.
#556 Conventions: add bandwidth limits
#639 Update conventions.md to include dns capability
#597 CONVENTIONS: add support for IP prefixes
Build and test changes:
#489 Release: clean the builddir when building.
#499,#538,#592 Golang versions: add 1.10, 1.11, drop 1.7 and 1.8
#501 Test all non-vendored packages
#508 cnitool: generate container id from the netns path
#514 Remove vendor directory
#515 Add CI for Windows
#535 tests: remove netns handling
Plus many more changes to fix typos, add 3rd-party plugins, etc. Full list of changes here.
Many thanks to the 50 contributors who helped make this release possible.
v0.6.0
The 0.6.0 CNI release is a major packaging release, with some minor bugfixes and improvements to the Go implementation.
Important: the plugins have been separated to a separate repository. You should update any build scripts accordingly. This repository contains only the golang implementation of the spec, for use in plugins and runtimes.
This release does not change the spec, which remains at v0.3.1.
Many thanks to the 20 contributors who helped make this release possible.
Documentation & Convention changes:
#427 Conventions: add convention around chaining interfaces
#487 README plugins list: add Linen CNI plugin
#473 Update and document release process
#472 Add CNCF reference in README
#465 Add Code of Conduct
#430 Update main title from "Proposal" to "Specification"
Other changes of note:
#482 cnitool: add support for CNI_ARGS
#481 scripts/release.sh: Add in s390x architecture
#460 pkg/types: return error instead of crashing when code supplies an incompatible type to types.LoadArgs()
#477 types: fix marshalling of omitted "interfaces" key in IPConfig JSON
#475 pkg/invoke: backfill tests of delegate add & del
#406 Return cni.type.Error instead of plain error
#470 Vagrantfile updates
#464 pkg: move packages from cni to plugins
#461 pkg/invoke: ensure that custom env vars are prepended to the env
#465 Add Code of Conduct
#457 plugins: moved to containernetworking/plugins
#450 cniVersion and config structure mismatch
#445 Add cniVersion to Result
#433 scripts: cleanup() should rm net container in docker-run.sh
#440 cnitool: support capablity args