Skip to content

Releases: containernetworking/cni

v0.7.1

11 Jun 19:17
4cfb7b5
Compare
Choose a tag to compare

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

26 Apr 16:04
7d76556
Compare
Choose a tag to compare

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

17 Apr 15:20
fbb95ff
Compare
Choose a tag to compare
Pre-release

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

17 Aug 17:01
Compare
Choose a tag to compare

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

v0.6.0-rc2

12 Aug 02:45
Compare
Choose a tag to compare
v0.6.0-rc2 Pre-release
Pre-release

We're pleased to make available the v0.6.0-rc2 release of the CNI libraries and tools.

This release does not update the spec, it remains at version 0.3.1.

The main change in this release is the removal of the plugins. They are now hosted in (and released from) https://github.com/containernetworking/plugins

If you hit any problems please raise issues on Github or use the following channels for support.

PRs merged since last release (v0.5.2...v0.6.0-rc2)

New with v0.6.0-rc2
#487 README plugins list: add Linen CNI plugin
#482 cnitool: add support for CNI_ARGS
#481 scripts/release.sh: Add in s390x architecture

New with v0.6.0-rc1
#427 Conventions: add convention around chaining interfaces
#460 pkg/types: return error instead of crashing when code supplies an incompatible type to types.LoadArgs()
#473 Update and document release process
#477 types: fix marshalling of omitted "interfaces" key in IPConfig JSON
#478 Update note about next Community Sync, 2017-06-21
#474 readme updates
#475 pkg/invoke: backfill tests of delegate add & del
#406 Return cni.type.Error instead of plain error
#472 Add CNCF reference in README
#471 Clean up vendor
#470 Vagrantfile updates
#467 Clarify first released spec with 'args' was 0.2.0
#464 pkg: move packages from cni to plugins
#469 Documentation: Update README.md to reflect plugin split
#461 pkg/invoke: ensure that custom env vars are prepended to the env
#465 Add Code of Conduct
#463 readme plugins list: add Silk CNI plugin
#462 Readme: add link to nuage plugin.
#457 plugins: moved to containernetworking/plugins
#455 Add OpenShift to the list of container runtimes that support CNI
#452 Add CNI Logo to README
#425 scripts/release-with-rkt.sh Minor improvements
#450 cniVersion and config structure mismatch
#445 Add cniVersion to Result
#447 Fix invalid json
#433 scripts: cleanup() should rm net container in docker-run.sh
#440 cnitool: support capablity args
#439 vendor: Update vishvanana/netlink dependency.
#391 Validate rangeStart and rangeEnd specified in conf
#435 Fixed table formatting
#432 README: build the plugins using ./build.sh, not ./build
#430 Wondering if this is still a proposal?

v0.6.0-rc1

05 Jul 18:35
Compare
Choose a tag to compare
v0.6.0-rc1 Pre-release
Pre-release

We're pleased to make available the v0.6.0-rc1 release of the CNI libraries and tools.

This release does not update the spec, it remains at version 0.3.1.

The main change in this release is the removal of the plugins. They are now hosted in (and released from) https://github.com/containernetworking/plugins

If you hit any problems please raise issues on Github or use the following channels for support.

PRs merged since last release (v0.5.2...v0.6.0-rc1)
#427 Conventions: add convention around chaining interfaces
#460 pkg/types: return error instead of crashing when code supplies an incompatible type to types.LoadArgs()
#473 Update and document release process
#477 types: fix marshalling of omitted "interfaces" key in IPConfig JSON
#478 Update note about next Community Sync, 2017-06-21
#474 readme updates
#475 pkg/invoke: backfill tests of delegate add & del
#406 Return cni.type.Error instead of plain error
#472 Add CNCF reference in README
#471 Clean up vendor
#470 Vagrantfile updates
#467 Clarify first released spec with 'args' was 0.2.0
#464 pkg: move packages from cni to plugins
#469 Documentation: Update README.md to reflect plugin split
#461 pkg/invoke: ensure that custom env vars are prepended to the env
#465 Add Code of Conduct
#463 readme plugins list: add Silk CNI plugin
#462 Readme: add link to nuage plugin.
#457 plugins: moved to containernetworking/plugins
#455 Add OpenShift to the list of container runtimes that support CNI
#452 Add CNI Logo to README
#425 scripts/release-with-rkt.sh Minor improvements
#450 cniVersion and config structure mismatch
#445 Add cniVersion to Result
#447 Fix invalid json
#433 scripts: cleanup() should rm net container in docker-run.sh
#440 cnitool: support capablity args
#439 vendor: Update vishvanana/netlink dependency.
#391 Validate rangeStart and rangeEnd specified in conf
#435 Fixed table formatting
#432 README: build the plugins using ./build.sh, not ./build
#430 Wondering if this is still a proposal?

v0.5.2

07 Apr 20:45
Compare
Choose a tag to compare

We're pleased to make available the v0.5.2 release of the CNI libraries, plugins and tools. This release updates the spec to CNI Specification version 0.3.1.

The 0.3.1 specification corrects the Result structure to use the ips field name as originally intended. This is the only change between 0.3.0 and 0.3.1.

More details and upgrade instructions

If you hit any problems please raise issues on Github or use the following channels for support.

Key changes since 0.5.1
#419 Added documentation for cnitool
#413 spec/plugins: fix 'ip'->'ips' in the spec, bump to 0.3.1
#423 travis: shift forward to Go 1.8 and 1.7
#421 Added entry for CNI-Genie
#400 Rename build script to avoid conflict with bazel
#414 Enable s390x build

v0.5.1

22 Mar 17:36
Compare
Choose a tag to compare

We're pleased to make available the v0.5.1 release of the CNI libraries, plugins and tools. This release does not change the spec, just updates the plugins and libcni. It still corresponds to CNI Specification version 0.3.0.

If you hit any problems please raise issues on Github or use the following channels for support.

Key changes since 0.5.0
#412 plugins/*: Don't error if the device doesn't exist
#407 plugins/meta/flannel: If net config is missing do not return err on DEL
#396 pkg/ip: do not leak types from vendored netlink package
#401 Added Romana to list of CNI providers...

v0.5.0

08 Mar 19:16
Compare
Choose a tag to compare

We're pleased to make available the v0.5.0 release of the CNI libraries, plugins and tools. This release corresponds to CNI Specification version 0.3.0, a significant change since the last GitHub release. An upgrade guide for the spec revision is in the Documentation directory.

If you hit any problems please raise issues on Github or use the following channels for support.

Key changes since v0.4.0
#366 Do not error if last reserved not found after initial creation
#387 Check n.IPAM before use it in LoadIPAMConfig function
#373 spec,libcni: add support for injecting runtimeConfig into plugin stdin data
#382 Documentation: guidance for upgrading to CNI Spec v0.3.0
#383 tests: misc test fixes
#374 libcni: up-convert a Config to a ConfigList when no other configs are found.
#377 plugins/main/ptp: set the Sandbox property on the response
#380 Add Bryan Boreham as maintainer
#375 pkg/ns: refactored so that builds succeed on non-linux platforms
#379 README: List multus as 3rd party plugin
#371 spec: Remove routes from Network Configuration
#376 Fix grammar
#372 docs: consolidate host-local documentation
#369 CONVENTIONS.md: Update details on port-mappings
#361 invoke: Enable plugin file names with extensions
#364 pkg/utils/sysctl/sysctl_linux.go: couple fixes
#359 libcni, pkg\invoke: Use OS-specific list separator when parsing CNI_PATH
#145 Pass interface name and MAC back to runtime
#355 skel: adds PluginMainWithError which returns a *types.Error
#352 Documentation: Add conventions doc
#346 api/plugins: implement ordered plugin chaining

v0.5.0-rc1

02 Mar 18:47
Compare
Choose a tag to compare
v0.5.0-rc1 Pre-release
Pre-release

This is a early preview of the upcoming v0.5.0 release. We're releasing this to give the community a chance to make a head start on integrating it and to provide feedback before the final release.

For help with upgrading, see this guide

Key changes since v0.4.0
#387 Check n.IPAM before use it in LoadIPAMConfig function
#373 spec,libcni: add support for injecting runtimeConfig into plugin stdin data
#382 Documentation: guidance for upgrading to CNI Spec v0.3.0
#383 tests: misc test fixes
#374 libcni: up-convert a Config to a ConfigList when no other configs are found.
#377 plugins/main/ptp: set the Sandbox property on the response
#380 Add Bryan Boreham as maintainer
#375 pkg/ns: refactored so that builds succeed on non-linux platforms
#379 README: List multus as 3rd party plugin
#371 spec: Remove routes from Network Configuration
#376 Fix grammar
#372 docs: consolidate host-local documentation
#369 CONVENTIONS.md: Update details on port-mappings
#361 invoke: Enable plugin file names with extensions
#364 pkg/utils/sysctl/sysctl_linux.go: couple fixes
#359 libcni, pkg\invoke: Use OS-specific list separator when parsing CNI_PATH
#145 Pass interface name and MAC back to runtime
#355 skel: adds PluginMainWithError which returns a *types.Error
#352 Documentation: Add conventions doc
#346 api/plugins: implement ordered plugin chaining