DPDeviceFile is used by Device Plugins to pass device data to CNIs, as defined
in the device-info-spec. The name of the DPDeviceFile is defined by the
device-info-spec as:
<ResourceName>-<DeviceID>-device.json
If the DPDeviceFile exists, the NPWG implementation makes a copy of the file
and passes the name of the file to the delegate CNI via capabilityArgs as
CNIDeviceFile. If the DPDeviceFile does not exist, the filename is still
passed to the CNI. The CNI can create the file and popluate it if a device
is created within the CNI.
The name of the CNIDeviceFile is not defined by device-info-spec, but to
ensure the name does not clash it is formed by the following unique triplet:
[networkName, PodUUID, ifName]
k8snetworkplumbingwg/network-attachment-definition-client repo has utility
functions to abstract some of this functionality so it can be reused across
Device Plugins, NPWG implementations and CNIs.
Signed-off-by: Billy McFall <22157057+Billy99@users.noreply.github.com>
RuntimeConfig depends on the delegate configuration. The Netconf runtime
information should be merged with the delegate config and the result
added to each command that is sent to the delegates. That was being done
for all commands except for delPlugins.
Do not export MergeCNIRuntimeConfig and call it from
CreateCNIRuntimeConf that now accepts a delegate ptr.
Call it from delPlugins for each delegate
Signed-off-by: Billy McFall <22157057+Billy99@users.noreply.github.com>
Move Multus to use latest network-attachment-definition-client repo which
contains the device-info-spec changes.
Signed-off-by: Billy McFall <22157057+Billy99@users.noreply.github.com>
it can happen that a CNI Add operation is canceled because the
runtime sends a CNI Del too fast, so the pod was already deleted
when multus try to set the network status annotations.
Since multus is an executable and can not persist state, it can't
track the CNI requests that are done in parallel, but it can
assume that, if it was able to get the pod from the API, and in a
subsequent request the pod no longer exists, it is because it was
deleted.
Signed-off-by: Antonio Ojea <aojea@redhat.com>
This PR takes the existing ARM64v8 build
and creates Daemonsets in the install images
to deploy it for ARM based K8s clusters.
Fixes#554
Signed-off-by: Shane Utt <shaneutt@linux.com>
In
https://docs.google.com/document/d/1Ny03h6IDVy_e_vmElOqR7UdTPAG_RNydhVE1Kx54kFQ,
section 4.1.2.1.9,
"
4.1.2.1.9 “default-route” Default route selection for a particular attachment
This optional key with value of type string-array is used to explicitly select
which attachment will receive the default route. The value of items in the
“default-route” array are intended to be gateways, e.g. an IP address to which
packets that do not match any other routes are sent. This key must only be set
on one item in the Network Attachment Selection Annotation. This list may be empty.
"
However en empty list will fail currently; this change accommodates an
empty "default-route" by retaining the default route added by the
delegate.
Signed-off-by: venugopal iyer <venugopali@nvidia.com>
This fix supplies domain for container image repo because
in some runtime configuration, 'docker.io' is not specified as
default container repository url.
Using Python, we analyze the content of the master plugin configuration,
and we integrate any capabilities from the underlying chained plugins
declaration. We only pull enabled capabilties from the underlying
(chained) plugin definitions.
Fixes intel#544
Signed-off-by: <Clement.Nussbaumer@Swisscom.com>
This commit extend the various network conf methods
to translate `infiniband-guid` network attachment configuration
to `infinibandGUID` CNI runtime config.
- Update relevant methods in types package
- Update unit tests
This change will enable builds to be performed with the option of
passing the -mod flag to 'go build'. This can be done by optionally
setting the MODMODE environment variable prior to building.
For example, toggling the -mod setting for the build can be
accomplished as follows:
```
$ MODMODE=vendor ./build
```
Signed-off-by: Ryan Tidwell <rtidwell@suse.com>
When using debug level the log files tends to fill up quickly.
Add support for log rotation using lumberjack, simple and easy to use
log rotation module.
Signed-off-by: Shahar Klein <sklein@nvidia.com>
This change introduces gopkg.in to allow everyone to use multus
code as library. Currently multus-cni uses version 'v3', hence
it hits go modules limitation, as #504 describes.
This change fix#504 with gopkg.in.