spec,libcni: add support for injecting runtimeConfig into plugin stdin data
authorDan Williams <dcbw@redhat.com>
Fri, 17 Feb 2017 04:57:12 +0000 (22:57 -0600)
committerDan Williams <dcbw@redhat.com>
Wed, 1 Mar 2017 16:49:40 +0000 (10:49 -0600)
Add a new CapabilityArgs member to the RuntimeConf struct which runtimes can
use to pass arbitrary capability-based keys to the plugin.  Elements of this
member will be filtered against the plugin's advertised capabilities (from
its config JSON) and then added to a new "runtimeConfig" top-level map added
to the config JSON sent to the plugin on stdin.

Also "runtime_config"->"runtimeConfig" in CONVENTIONS.md to make
capitalization consistent with other CNI config keys like "cniVersion".

types/types.go

index b7c27de..3263015 100644 (file)
@@ -60,9 +60,10 @@ func (n *IPNet) UnmarshalJSON(data []byte) error {
 type NetConf struct {
        CNIVersion string `json:"cniVersion,omitempty"`
 
-       Name string `json:"name,omitempty"`
-       Type string `json:"type,omitempty"`
-       IPAM struct {
+       Name         string          `json:"name,omitempty"`
+       Type         string          `json:"type,omitempty"`
+       Capabilities map[string]bool `json:"capabilities,omitempty"`
+       IPAM         struct {
                Type string `json:"type,omitempty"`
        } `json:"ipam,omitempty"`
        DNS DNS `json:"dns"`