Until today, it was hardcoded that DeviceID will only be
injected for the first CNI in the chain.
This commit modifies multus to pass DeviceID to each network
configuration element in a network configuration list.
This will allow multiple CNI's to act on DeviceID when CNI
plugins are being chained for a specific network.
The change is required to allow CNI's to ensure network
isolation (introduced in kernel >= 5.2.0 see [1]) for RDMA devices
when exist.
e.g for SR-IOV network:
sriov-cni moves network device associated with the provided DeviceID
to to the container's network namespace.
An "RDMA cni" would do the same for the corresponding RDMA device when
RDMA traffic is desired on the network.
[1] https://patchwork.kernel.org/cover/10810451/
The CRD is now defined in the NetworkPlumbingWG org, along with
generated libs for client, listers, informers, and deep copy functions.
Therefore remove the duplicate definition here, and use the standard
definition.
Signed-off-by: Tim Rozet <trozet@redhat.com>
This changes introduce CNI RuntimeConfig for portmap, bandwidth,
ip and mac for latest specification. IP and Mac is previously
applied through CNI_ARGS, but it is changed to RuntimeConfig
for now.
* Added a test for GetLoggingLevel
* Added up to 96% coverage for checkpoint.go
* Improved coverage of checkpoint.go to 96.4%
* Improved coverage of checkpoint.go to 96.4%
* Adding changes so i will have them saved for my remote fork thingy
* Fixed unit tests in checkpoint_test.go and conf_test.go
* Removed unnecessary comments
* improved conf code coverage by an amount that is greater than 0!
* improved coverage, but line 144 of conf.go needs a look
* Added unit tests to multus and types, also fixed a bug in conf.go
* added label to import types/020 in types.go
* hopefully resolved merge conflicts
* increased code coverage in multus.go and conf.go, also added bug fixes and formatting
* addressed all comments in review
* Updated testing.go with better comments
* changed 'thejohn' to '_not_type' for readability
* added additional unit tests
* added tests to kubeletclient.go
* added more unit tests to k8sclient.go and kubeletclient.go
* Added network status annotations section to quickstart and added more unit tests
* made changes to tests based on code review
This allows host-device plugin to recognize
Device PCI address passed from Multus.
It is related to the change in host-device which
enables use of device pci address as a config option:
https://github.com/containernetworking/plugins/pull/300
This patch fixes the issue described in #289 where deviceID for
delegate plugin was not adding properly if the plugin conf inside
NetConfList.
Change-Id: I1d221f6b0e60a5b888b8e823611dfe12635e6897
Signed-off-by: Abdul Halim <abdul.halim@intel.com>
This change introduces kubelet client to get allocated device
information of a Pod from newly added Kubelet grpc service.
For more information please see:
[kubernetes/kubernetes#70508](https://github.com/kubernetes/kubernetes/pull/70508)
Change-Id: I11e58ccdd52662601f445fa24c7d55c225441efc
Signed-off-by: Abdul Halim <abdul.halim@intel.com>
This change provides new configuration parameters, multusNamespace
and systemNamespaces for flexible namespace management.
The change addresses issue #252 and issue #253.
This fixes the issue described in #211 where LoadNetworkStatus is
throwing in errors if a delegate plugin returns empty Result that
contains in IPAM information.
This change will allow ignoreing the errors propagated from parsing
an empty Result and continue with next one.
Change-Id: Ife4b6103de044256233d581fa74759423ed94ff5
Change the Network Attachment Selection Annotation long-form
interface name request JSON key from 'interfaceRequest' to
'interface' to conform with the V1 NPWG spec.
Enabling kubelete checkpoint file parsing to get Pod device info
so that these device information can be passed into CNI plugins
that need specific device information to work on.
Change-Id: I6630f56adc0a8307f575fc09ce9090c1ffca0337
This changes adds logging message:debug and error. fmt.Errorf() is
wrapped by logging.Errorf() hence all error message is also put to
log file. logging.Debugf() is called at almost function call, so
we could track the code by logging message.
Plugin went away, replaced by a minimal Spec.Config field so that the CNI
version the thick plugin supports could be indicated. This means we need
to also inject the network name into the minimal CNI JSON config when
loading the Spec.Config if the network name isn't there already.