Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-36694

on IBM Powervs cluster, SNAT for egressIP is not correct when egressIP uses podSelector with NotIn operator

XMLWordPrintable

    • -
    • Important
    • Yes
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      Version-Release number of selected component (if applicable):

      $ oc get clusterversion
      NAME      VERSION       AVAILABLE   PROGRESSING   SINCE   STATUS
      version   4.17.0-ec.1   True        False         7d6h    Cluster version is 4.17.0-ec.1

       

      How reproducible:

      Steps to Reproduce:

      1. On IBM powervs cluster, run automated OCP-70067, or label a node to be egress-assignable, create an egressIP object

      $ oc get egressip egressip-70667 -oyaml
      apiVersion: k8s.ovn.org/v1
      kind: EgressIP
      metadata:
        annotations:
          kubectl.kubernetes.io/last-applied-configuration: |
            {"apiVersion":"k8s.ovn.org/v1","kind":"EgressIP","metadata":{"annotations":{},"name":"egressip-70667"},"spec":{"egressIPs":["192.168.146.126"],"namespaceSelector":{"matchLabels":{"org":"qe"}},"podSelector":{"matchLabels":{"color":"purple"}}}}
        creationTimestamp: "2024-07-08T16:17:30Z"
        generation: 3
        name: egressip-70667
        resourceVersion: "4030133"
        uid: 7abbd322-ba9c-4f0e-80f9-2e7b97d99312
      spec:
        egressIPs:
        - 192.168.146.126
        namespaceSelector:
          matchLabels:
            org: qe
        podSelector:
          matchExpressions:
          - key: color
            operator: NotIn
            values:
            - pink
            - blue
            - yellow
            - green
            - orange
      status:
        items:
        - egressIP: 192.168.146.126
          node: rdr-aish-wdc06-9nbnj-worker-6rv62

       

      2. create a couple of test pod in the namespace, label two pods differently so only one pod matches podSelector with NotIn operator

      $ oc get pod --show-labels -n e2e-test-networking-3txkp6oo-ds582
      NAME         READY   STATUS    RESTARTS   AGE   LABELS
      hello-pod1   1/1     Running   0          69s   color=red,name=hello-pod
      hello-pod2   1/1     Running   0          51s   color=pink,name=hello-pod

       

      3. check SNAT list on egress node

       

      Actual results: both pods are showing up in SNAT list

      Expected results: only the pod that matches podSelector with NotIn operator should be in SNAT list

      Additional info: must-gather: https://drive.google.com/file/d/1RKLjBn-BFu33Mnddn1OfM6Oq7mVfUbl7/view?usp=drive_link

       

      Please fill in the following template while reporting a bug and provide as much relevant information as possible. Doing so will give us the best chance to find a prompt resolution.

      Affected Platforms:

      Is it an

      1. internal CI failure
      2. customer issue / SD
      3. internal RedHat testing failure

      If it is an internal RedHat testing failure:

      • Please share a kubeconfig or creds to a live cluster for the assignee to debug/troubleshoot along with reproducer steps (specially if it's a telco use case like ICNI, secondary bridges or BM+kubevirt).

      If it is a CI failure:

      • Did it happen in different CI lanes? If so please provide links to multiple failures with the same error instance
      • Did it happen in both sdn and ovn jobs? If so please provide links to multiple failures with the same error instance
      • Did it happen in other platforms (e.g. aws, azure, gcp, baremetal etc) ? If so please provide links to multiple failures with the same error instance
      • When did the failure start happening? Please provide the UTC timestamp of the networking outage window from a sample failure run
      • If it's a connectivity issue,
      • What is the srcNode, srcIP and srcNamespace and srcPodName?
      • What is the dstNode, dstIP and dstNamespace and dstPodName?
      • What is the traffic path? (examples: pod2pod? pod2external?, pod2svc? pod2Node? etc)

      If it is a customer / SD issue:

      • Provide enough information in the bug description that Engineering doesn’t need to read the entire case history.
      • Don’t presume that Engineering has access to Salesforce.
      • Do presume that Engineering will access attachments through supportshell.
      • Describe what each relevant attachment is intended to demonstrate (failed pods, log errors, OVS issues, etc).
      • Referring to the attached must-gather, sosreport or other attachment, please provide the following details:
        • If the issue is in a customer namespace then provide a namespace inspect.
        • If it is a connectivity issue:
          • What is the srcNode, srcNamespace, srcPodName and srcPodIP?
          • What is the dstNode, dstNamespace, dstPodName and dstPodIP?
          • What is the traffic path? (examples: pod2pod? pod2external?, pod2svc? pod2Node? etc)
          • Please provide the UTC timestamp networking outage window from must-gather
          • Please provide tcpdump pcaps taken during the outage filtered based on the above provided src/dst IPs
        • If it is not a connectivity issue:
          • Describe the steps taken so far to analyze the logs from networking components (cluster-network-operator, OVNK, SDN, openvswitch, ovs-configure etc) and the actual component where the issue was seen based on the attached must-gather. Please attach snippets of relevant logs around the window when problem has happened if any.
      • When showing the results from commands, include the entire command in the output.  
      • For OCPBUGS in which the issue has been identified, label with “sbr-triaged”
      • For OCPBUGS in which the issue has not been identified and needs Engineering help for root cause, label with “sbr-untriaged”
      • Do not set the priority, that is owned by Engineering and will be set when the bug is evaluated
      • Note: bugs that do not meet these minimum standards will be closed with label “SDN-Jira-template”
      • For guidance on using this template please see
        OCPBUGS Template Training for Networking  components

            mkennell@redhat.com Martin Kennelly
            jechen@redhat.com Jean Chen
            Jean Chen Jean Chen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: