versioning: plugins report a list of supported versions

Further progress on versioning support (Issue #266).
Bump CNI spec version to 0.3.0
This commit is contained in:
Gabe Rosenhouse
2016-08-21 23:48:04 -07:00
parent c5e39a87f7
commit 536cb5b99b
20 changed files with 262 additions and 64 deletions

20
SPEC.md
View File

@ -64,8 +64,14 @@ The operations that the CNI plugin needs to support are:
- Report version
- Parameters: NONE.
- Result:
- The version of the CNI spec implemented by the plugin: `{ "cniVersion": "0.2.0" }`
- Result: information about the CNI spec versions supported by the plugin
```
{
"cniVersion": "0.3.0", // the version of the CNI spec in use for this output
"supportedVersions": [ "0.1.0", "0.2.0", "0.3.0" ] // the list of CNI spec versions that this plugin supports
}
```
The executable command-line API uses the type of network (see [Network Configuration](#network-configuration) below) as the name of the executable to invoke.
It will then look for this executable in a list of predefined directories. Once found, it will invoke the executable using the following environment variables for argument passing:
@ -85,7 +91,7 @@ Success is indicated by a return code of zero and the following JSON printed to
```
{
"cniVersion": "0.2.0",
"cniVersion": "0.3.0",
"ip4": {
"ip": <ipv4-and-subnet-in-CIDR>,
"gateway": <ipv4-of-the-gateway>, (optional)
@ -114,7 +120,7 @@ Examples include generating an `/etc/resolv.conf` file to be injected into the c
Errors are indicated by a non-zero return code and the following JSON being printed to stdout:
```
{
"cniVersion": "0.2.0",
"cniVersion": "0.3.0",
"code": <numeric-error-code>,
"msg": <short-error-message>,
"details": <long-error-message> (optional)
@ -151,7 +157,7 @@ Plugins may define additional fields that they accept and may generate an error
```json
{
"cniVersion": "0.2.0",
"cniVersion": "0.3.0",
"name": "dbnet",
"type": "bridge",
// type (plugin) specific
@ -170,7 +176,7 @@ Plugins may define additional fields that they accept and may generate an error
```json
{
"cniVersion": "0.2.0",
"cniVersion": "0.3.0",
"name": "pci",
"type": "ovs",
// type (plugin) specific
@ -220,7 +226,7 @@ Success is indicated by a zero return code and the following JSON being printed
```
{
"cniVersion": "0.2.0",
"cniVersion": "0.3.0",
"ip4": {
"ip": <ipv4-and-subnet-in-CIDR>,
"gateway": <ipv4-of-the-gateway>, (optional)