Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-29293

[Backport-4.10.z] [2087172] NNCP deployment flakiness when having multiple SriovNetworkNodePolicy

XMLWordPrintable

      Description of problem:
      When having multiple SriovNetworkNodePolicy for the same iface (Which hold different config), NNCP deployment sometimes fails with the following message:
      libnmstate.error.NmstateVerificationError
      Found VF ports count does not match desired 32, current is:
      NNCE cnv-qe-infra-17.cnvqe2.lab.eng.rdu2.redhat.com.static-ip-cnv-qe-infra-17.cnvqe2.lab.eng.rdu2.redhat.com: libnmstate.error.NmstateVerificationError"

      To clarify - applied VF ports count is 0, because one SriovNetworkNodePolicy sets desired to 0. The other policy sets desired to 32.
      Both policies attached.

      NNS info about said interface -
      [adi@fedora cnv-tests]$ oc get nns cnv-qe-infra-17.cnvqe2.lab.eng.rdu2.redhat.com -o yaml
      apiVersion: nmstate.io/v1beta1
      kind: NodeNetworkState
      ...

      • ethernet:
        auto-negotiation: false
        duplex: full
        speed: 10000
        sr-iov:
        total-vfs: 0
        vfs: []
        ipv4:
        address:
      • ip: 10.1.156.17
        prefix-length: 24
        auto-dns: true
        auto-gateway: true
        auto-route-table-id: 0
        auto-routes: true
        dhcp: true
        enabled: true
        ipv6:
        address:
      • ip: fe80::e643:4bff:feec:8400
        prefix-length: 64
        auto-dns: true
        auto-gateway: true
        auto-route-table-id: 0
        auto-routes: true
        autoconf: true
        dhcp: true
        enabled: true
        lldp:
        enabled: false
        mac-address: E4:43:4B:EC:84:00
        mtu: 1500
        name: eno1
        state: up
        type: ethernet
        ...

      Version-Release number of selected component (if applicable):
      kubernetes-nmstate-handler v4.10.1-12

      How reproducible:
      On any Openshift cluster with CNV and SRIOV operator.

      Steps to Reproduce:
      1. Deploy attached SriovNetworkNodePolicys (Default my be applied when installing SRIOV-operator, so no need to apply it).
      2. Deploy following NNCP (Adjust values) -
      apiVersion: nmstate.io/v1
      kind: NodeNetworkConfigurationPolicy
      metadata:
      name: static-ip-cnv-qe-infra-18.cnvqe2.lab.eng.rdu2.redhat.com
      spec:
      desiredState:
      interfaces:

      • ipv4:
        address:
      • ip: 10.1.156.18
        prefix-length: 24
        auto-dns: true
        dhcp: false
        enabled: true
        ipv6:
        address:
      • ip: fe80::e643:4bff:feec:76d0
        prefix-length: 64
        auto-dns: true
        autoconf: false
        dhcp: false
        enabled: true
        name: eno1
        state: up
        type: ethernet
        nodeSelector:
        kubernetes.io/hostname: cnv-qe-infra-18.cnvqe2.lab.eng.rdu2.redhat.com

      Actual results:
      NNCP deployment fails with the following message:
      libnmstate.error.NmstateVerificationError
      Found VF ports count does not match desired 32, current is:
      NNCE cnv-qe-infra-17.cnvqe2.lab.eng.rdu2.redhat.com.static-ip-cnv-qe-infra-17.cnvqe2.lab.eng.rdu2.redhat.com: libnmstate.error.NmstateVerificationError"

      Expected results:
      NNCP deployment should be applied succesfully

      Additional info:
      Two points that this bug should address -
      1. Why should nmstate be concerned with SRIOV config, when it's not required to make changes.
      2. Why isn't nmstate able to determine which of the two sriov policies represents actual desired state? If SRIOV operator was able to deploy both policies, nmstate shouldn't bother with this.

            phoracek@redhat.com Petr Horacek
            rhn-support-azavalko Adi Zavalkovsky (Inactive)
            Yossi Segev Yossi Segev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: