Description of problem: When we call mergeRuntimeConfig, the global RuntimeConfig gets overwritten with the result of the merging, thus affecting the subsequent delegates. How reproducible: Always. Steps to Reproduce: (could someone provide these so we can have QE take a look, thanks!) Upstream PR @ https://github.com/intel/multus-cni/pull/607
Steps to Reproduce: Used the yaml files from https://github.com/openshift/app-netutil, specifically from https://github.com/openshift/app-netutil/tree/master/samples/dpdk_app/sriov In an OCP or Kubernetes cluster with Multus as default CNI, deploy a pod with two SR-IOV VFs, each VF from it's own network. Replace kubectl with oc below if on OCP. 1) Download yaml files: git clone https://github.com/openshift/app-netutil.git cd app-netutil/samples/dpdk_app/sriov -- or -- go get github.com/openshift/app-netutil cd $GOPATH/src/github.com/openshift/app-netutil/samples/dpdk_app/sriov 2) If SR-IOV Device Plugin in not deployed, modify config map to match system and then create configMap, then deploy SR-IOV DP: vi configMap.yaml kubectl create -f configMap.yaml kubectl create -f sriovdp-daemonset.yaml 3) Create the Network Attachment Definition for each VF (if configMap already existed, update Network Attachment Definition to resourceName from existing configMap): kubectl create -f netAttach-sriov-dpdk-a.yaml kubectl create -f netAttach-sriov-dpdk-b.yaml 4) Create pod that uses the SR-IOV VFs. I was using the dpdk-app-centos image from the app-netutil repo, however, any container will work. Once the Pod comes up, view the annotations associated with the pod. kubectl create -f sriov-pod-1.yaml kubectl describe pod sriov-pod-1 : Annotations: k8s.v1.cni.cncf.io/network-status: [{ "name": "", "interface": "eth0", "ips": [ "10.244.0.5" ], "mac": "4e:cd:27:8a:38:e5", "default": true, "dns": {} },{ "name": "default/sriov-net-a", "interface": "net1", "dns": {}, "device-info": { "type": "pci", "version": "1.0.0", "pci": { "pci-address": "0000:01:02.4" } } },{ "name": "default/sriov-net-b", "interface": "net2", "dns": {}, "device-info": { "type": "pci", "version": "1.0.0", "pci": { "pci-address": "0000:01:02.4" } } }] k8s.v1.cni.cncf.io/networks: sriov-net-a, sriov-net-b From this output, "device-info" for "net1" and "net2" are the same. They should be different.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Moderate: OpenShift Container Platform 4.8.2 bug fix and security update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2021:2438