cni

Container Network Interface - networking for Linux containers

APACHE-2.0 License

Stars
5.5K
Committers
170

Bot releases are hidden (Show)

cni - libcni v1.2.3 Latest Release

Published by squeed 3 months ago

This is a minor release to correct a divergence between the specification and libcni. In this case, the specification was updated, as it concerns a new feature, GC, that is not yet deployed.

What's Changed

cni - libcni v1.2.2

Published by squeed 4 months ago

What's Changed

Full Changelog: https://github.com/containernetworking/cni/compare/v1.2.1...v1.2.2

cni - CNI Spec v1.1 / libcni v1.2.1

Published by squeed 4 months ago

This is a minor release that fixes some small bugs:

Improvements

  • (#1098). SPEC: add warning about preserving shared resources for GC
  • (#1090). Spec, libcni: add disableGC flag This allows administrators to disable garbage collection in exceptional circumstances, such as multiple runtimes sharing a network configuration.

Bug fixes:

  • (#1097). Fix faulty json.Marshal behavior for embeds types.NetConf Fix #1096
  • (#1095). libcni: always delete the cache on conflist for CNI DEL This aligns the call with DelNetwork, and allows CRIO tests to bump
cni -

Published by squeed 6 months ago

This is libcni v1.2.0, which releases the new CNI spec version v1.1.0.

Major changes:

GC verb

The GC verb allows runtimes to specify the set of known-good attachments, allowing plugins to clean up stale and leaked resources such as IPAM reservations. Libcni will also synthesize a CNI DEL for any stale cached attachments, so all users will have a form of GC, even if their plugins do not support CNI v1.1

STATUS verb

The STATUS verb allows a plugin to report its readiness to accept ADD requests. Runtimes such as containerd and cri-o will no longer have to rely merely on the presence of a CNI configuration file to determine network readiness.

Version negotiation

CNI configurations may now contain multiple versions, so that an administrator can opportunistically update the protocol version without breaking older runtimes:

{
  "cniVersion": "1.0.0",
  "cniVersions": ["1.0.0", "1.1.0"]
}

New fields

A number of new fields have been added to the result type:

  • (#1060). Add MTU to CNI result
  • (#1068). Add Scope property for routes Fixes: #598
  • (#1069). Add SocketPath/PciID to Interface struct This is to resolve: #1050
  • (#1062). Add table ID property for routes Fixes #1061
  • (#1041). Add route attributes - MTU, AdvMSS, Priority

Other improvements

  • (#911). libcni: add specific type for CHECK not supported
  • (#1072). tolerate invalid cni caches for deletion
  • (#1054). Add Version() to CNI interface
cni - CNI v1.1.2

Published by dcbw about 2 years ago

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

New Contributors

Full Changelog: https://github.com/containernetworking/cni/compare/v1.1.1...v1.1.2

cni - CNI v1.1.1

Published by MikeZappa87 over 2 years ago

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:

New Contributors:

Full Changelog: https://github.com/containernetworking/cni/compare/v1.1.0...v1.1.1

cni - CNI v1.1.0

Published by squeed over 2 years ago

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 - 🎉 CNI v1.0.1 🎉

Published by squeed about 3 years ago

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 - CNI v0.8.1

Published by squeed over 3 years ago

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.

cni - v0.8.0

Published by bboreham over 4 years ago

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

  • #711 Update cnitool docs
  • #755 Remove extra ',' chars which makes conflist examples invalid.

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
cni - v0.7.1

Published by dcbw over 5 years ago

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.

cni - v0.7.0

Published by bboreham over 5 years ago

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.

cni - Release 0.7.0 Release Candidate 2

Published by bboreham over 5 years ago

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.

cni - v0.6.0

Published by squeed about 7 years ago

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

cni - v0.6.0-rc2

Published by rosenhouse about 7 years ago

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 (https://github.com/containernetworking/cni/compare/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?

cni - v0.6.0-rc1

Published by tomdee over 7 years ago

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 (https://github.com/containernetworking/cni/compare/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?

cni - v0.5.2

Published by tomdee over 7 years ago

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

cni - v0.5.1

Published by tomdee over 7 years ago

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...

cni - v0.5.0

Published by tomdee over 7 years ago

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

cni - v0.5.0-rc1

Published by tomdee over 7 years ago

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