Bug 2108632

Summary: NNCP deployment flakiness when having multiple SriovNetworkNodePolicy [rhel-8.6.0.z]
Product: Red Hat Enterprise Linux 8 Reporter: RHEL Program Management Team <pgm-rhel-tools>
Component: nmstateAssignee: Gris Ge <fge>
Status: CLOSED ERRATA QA Contact: Mingyu Shi <mshi>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.4CC: cnv-qe-bugs, ellorent, ferferna, fge, jiji, jishi, network-qe, phoracek, rnetser, sfaye, till, ysegev
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: nmstate-1.2.1-4.el8_6 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 2094025 Environment:
Last Closed: 2022-09-13 09:41:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2094025    
Bug Blocks:    

Comment 5 Yossi Segev 2022-08-11 11:27:27 UTC
Verified on a bare-metal cluster with the following attributes:
OCP: 4.11.0-rc.6
NetworkManager on host: 1.36.0-7.el8_6
NetworkManager on nmstate-handler pod: 1.30.0-8.el8_4
nmstate: 1.2.1-3.el8_6.x86_64
sriov-network-operator.4.11.0-202208031703
Red Hat Enterprise Linux CoreOS 411.86.202207260413-0
RHEL 8.6


Reproduced the following way:
1. On an bare-metal cluster which has nmstate and SR-IOV installed - apply the following SRIOV policy, which defines 10 VFs on a PF interface:
$ cat << EOF | oc apply -f -
apiVersion: sriovnetwork.openshift.io/v1
kind: SriovNetworkNodePolicy
metadata:
  name: test-sriov-policy
  namespace: openshift-sriov-network-operator
spec:
  deviceType: vfio-pci
  mtu: 9000
  nicSelector:
    pfNames:
    - enp161s0f0
    rootDevices:
    - 0000:a1:00.0
  nodeSelector:
    feature.node.kubernetes.io/network-sriov.capable: "true"
  numVfs: 10
  priority: 99
  resourceName: sriov_net
EOF

2. Apply the following policy, which sets a static IPv4 address on the same PF interface:
$ cat << EOF | oc apply -f -
apiVersion: nmstate.io/v1
kind: NodeNetworkConfigurationPolicy
metadata:
  name: ip-on-pf
spec:
  desiredState:
    interfaces:
    - ipv4:
        address:
        - ip: 10.1.156.18
          prefix-length: 24
        auto-dns: true
        dhcp: false
        enabled: true
      ipv6:
        dhcp: false
        enabled: false
      name: enp161s0f0
      state: up
      type: ethernet
  nodeSelector:
    kubernetes.io/hostname: cnv-qe-infra-25.cnvqe2.lab.eng.rdu2.redhat.com
EOF

* Make sure to:
 - change the value of nodeSelector to a name of a node in your cluster
 - change the interface name to the name of the PF interface in your cluster node

3. Wait to see that policy was configured successfully:
$ oc get nncp -w
NAME       STATUS      REASON
ip-on-pf   Available   SuccessfullyConfigured

4. Verify the IP address configured in the NNCP in step 2 was successfully applied on the interface:
$ oc get nns cnv-qe-infra-25.cnvqe2.lab.eng.rdu2.redhat.com -ojsonpath={.status.currentState.interfaces[?(@.name==\"enp161s0f0\")].ipv4.address} | jq
[
  {
    "ip": "10.1.156.18",
    "prefix-length": 24
  },
]

Comment 10 errata-xmlrpc 2022-09-13 09:41:24 UTC
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 (nmstate bug fix and enhancement 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/RHBA-2022:6442