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

EgressIP does not work in UDN when egressIP object has both namespaceSelector and podSelector

XMLWordPrintable

    • Important
    • None
    • Proposed
    • False
    • Hide

      None

      Show
      None

      Description of problem: EgressIP does not work in UDN when egressIP object has both namespaceSelector a

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

      How reproducible:

      Steps to Reproduce:

      1. label a node to be  k8s.ovn.org/egress-assignable=true

      $ oc get node
      oNAME                                  STATUS   ROLES                  AGE     VERSION
      jechen-udn-eip-x6wtx-master-0         Ready    control-plane,master   5h25m   v1.31.2
      jechen-udn-eip-x6wtx-master-1         Ready    control-plane,master   5h25m   v1.31.2
      jechen-udn-eip-x6wtx-master-2         Ready    control-plane,master   5h25m   v1.31.2
      jechen-udn-eip-x6wtx-worker-a-7pp7l   Ready    worker                 5h15m   v1.31.2
      jechen-udn-eip-x6wtx-worker-b-zwqnz   Ready    worker                 5h16m   v1.31.2
      jechen-udn-eip-x6wtx-worker-c-sv4nn   Ready    worker                 5h15m   v1.31.2

      $ oc label node jechen-udn-eip-x6wtx-worker-a-7pp7l k8s.ovn.org/egress-assignable=true

      2. Create an egressIP object with namespaceSelector and podSelector

      $ cat config_egressip_ovn_namespaceSelector_podSelector_gcp.yaml
      kind: List
      apiVersion: v1
      metadata: {}
      items:

      • apiVersion: k8s.ovn.org/v1
          kind: EgressIP
          metadata:
            name: egressip-77654
          spec:
            egressIPs:
            - 10.0.177.99
            namespaceSelector:
              matchLabels:
                org: qe
            podSelector:
              matchLabels:
                color: pink
      1. Create a namespace, and a UDN in it.

      $ cat udn-ns-test1.yaml

      kind: List
      apiVersion: v1
      metadata: {}
      items:

      • apiVersion: k8s.ovn.org/v1
          kind: UserDefinedNetwork
          metadata:
            name: l3-network-test1
            namespace: test1 
          spec:
            layer3:
              mtu: 1300
              role: Primary
              subnets:
              - cidr: 10.150.0.0/16
                hostSubnet: 24
            topology: Layer3

      2.  create a testpod in the namespace 

      3.  label the namespace and test pod with labels that match namespaceSelector and podSelector of egressIP oject.

      Actual results:  egressIP does not work, sourceIP of egressing packets has node IP as sourceIP

      Expected results:egressIP should work, sourceIP of egressing packets uses egressIP as sourceIP

      Additional info:

      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

              bbennett@redhat.com Ben Bennett
              jechen@redhat.com Jean Chen
              Jean Chen Jean Chen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: