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

[GCP] When EIPs failover to another egress node, some EIPs were NOT removed from original node NIC in Cloud by CNCC

XMLWordPrintable

    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • None
    • Important
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:
      The issue was found during pre-merge testing cncc pr, then it is reproduced in 4.18 nightly build, so file this ticket to track.

      Version-Release number of selected component (if applicable)

      % oc get clusterversion
      NAME VERSION AVAILABLE PROGRESSING SINCE STATUS
      version 4.18.0-0.nightly-2025-10-22-102301 True False 7m41s Cluster version is 4.18.0-0.nightly-2025-10-22-102301

      How reproducible:
      With below steps, a few EIPs always have the issues.

      Steps to Reproduce:
      1. Labe one node as egressIP
      2. Configure 101 EIPs on this node

      % oc get egressip 
      NAME            EGRESSIPS      ASSIGNED NODE                        ASSIGNED EGRESSIPS
      egressip2-1     10.0.129.2     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.2
      egressip2-10    10.0.129.11    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.11
      egressip2-100   10.0.129.101   huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.101
      egressip2-101   10.0.129.102                                        
      egressip2-11    10.0.129.12    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.12
      egressip2-12    10.0.129.13    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.13
      egressip2-13    10.0.129.14    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.14
      egressip2-14    10.0.129.15    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.15
      egressip2-15    10.0.129.16    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.16
      egressip2-16    10.0.129.17    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.17
      egressip2-17    10.0.129.18    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.18
      egressip2-18    10.0.129.19    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.19
      egressip2-19    10.0.129.20    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.20
      egressip2-2     10.0.129.3     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.3
      egressip2-20    10.0.129.21    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.21
      egressip2-21    10.0.129.22    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.22
      egressip2-22    10.0.129.23    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.23
      egressip2-23    10.0.129.24    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.24
      egressip2-24    10.0.129.25    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.25
      egressip2-25    10.0.129.26    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.26
      egressip2-26    10.0.129.27    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.27
      egressip2-27    10.0.129.28    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.28
      egressip2-28    10.0.129.29    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.29
      egressip2-29    10.0.129.30    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.30
      egressip2-3     10.0.129.4     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.4
      egressip2-30    10.0.129.31    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.31
      egressip2-31    10.0.129.32    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.32
      egressip2-32    10.0.129.33    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.33
      egressip2-33    10.0.129.34    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.34
      egressip2-34    10.0.129.35    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.35
      egressip2-35    10.0.129.36    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.36
      egressip2-36    10.0.129.37    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.37
      egressip2-37    10.0.129.38    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.38
      egressip2-38    10.0.129.39    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.39
      egressip2-39    10.0.129.40    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.40
      egressip2-4     10.0.129.5     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.5
      egressip2-40    10.0.129.41    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.41
      egressip2-41    10.0.129.42    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.42
      egressip2-42    10.0.129.43    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.43
      egressip2-43    10.0.129.44    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.44
      egressip2-44    10.0.129.45    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.45
      egressip2-45    10.0.129.46    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.46
      egressip2-46    10.0.129.47    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.47
      egressip2-47    10.0.129.48    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.48
      egressip2-48    10.0.129.49    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.49
      egressip2-49    10.0.129.50    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.50
      egressip2-5     10.0.129.6     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.6
      egressip2-50    10.0.129.51    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.51
      egressip2-51    10.0.129.52    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.52
      egressip2-52    10.0.129.53    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.53
      egressip2-53    10.0.129.54    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.54
      egressip2-54    10.0.129.55    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.55
      egressip2-55    10.0.129.56    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.56
      egressip2-56    10.0.129.57    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.57
      egressip2-57    10.0.129.58    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.58
      egressip2-58    10.0.129.59    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.59
      egressip2-59    10.0.129.60    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.60
      egressip2-6     10.0.129.7     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.7
      egressip2-60    10.0.129.61    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.61
      egressip2-61    10.0.129.62    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.62
      egressip2-62    10.0.129.63    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.63
      egressip2-63    10.0.129.64    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.64
      egressip2-64    10.0.129.65    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.65
      egressip2-65    10.0.129.66    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.66
      egressip2-66    10.0.129.67    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.67
      egressip2-67    10.0.129.68    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.68
      egressip2-68    10.0.129.69    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.69
      egressip2-69    10.0.129.70    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.70
      egressip2-7     10.0.129.8     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.8
      egressip2-70    10.0.129.71    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.71
      egressip2-71    10.0.129.72    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.72
      egressip2-72    10.0.129.73    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.73
      egressip2-73    10.0.129.74    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.74
      egressip2-74    10.0.129.75    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.75
      egressip2-75    10.0.129.76    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.76
      egressip2-76    10.0.129.77    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.77
      egressip2-77    10.0.129.78    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.78
      egressip2-78    10.0.129.79    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.79
      egressip2-79    10.0.129.80    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.80
      egressip2-8     10.0.129.9     huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.9
      egressip2-80    10.0.129.81    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.81
      egressip2-81    10.0.129.82    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.82
      egressip2-82    10.0.129.83    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.83
      egressip2-83    10.0.129.84    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.84
      egressip2-84    10.0.129.85    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.85
      egressip2-85    10.0.129.86    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.86
      egressip2-86    10.0.129.87    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.87
      egressip2-87    10.0.129.88    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.88
      egressip2-88    10.0.129.89    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.89
      egressip2-89    10.0.129.90    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.90
      egressip2-9     10.0.129.10    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.10
      egressip2-90    10.0.129.91    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.91
      egressip2-91    10.0.129.92    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.92
      egressip2-92    10.0.129.93    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.93
      egressip2-93    10.0.129.94    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.94
      egressip2-94    10.0.129.95    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.95
      egressip2-95    10.0.129.96    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.96
      egressip2-96    10.0.129.97    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.97
      egressip2-97    10.0.129.98    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.98
      egressip2-98    10.0.129.99    huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.99
      egressip2-99    10.0.129.100   huirwang-gcp3-h7rfm-worker-a-6x6dw   10.0.129.100
      
      
      bash-3.2$ oc get cloudprivateipconfigs -ocustom-columns=NAME:.metadata.name,NODE:.spec.node,STATE:.status.conditions[].reason | grep CloudResponseSuccess | wc -l
           100
      bash-3.2$  oc get cloudprivateipconfigs -ocustom-columns=NAME:.metadata.name,NODE:.spec.node,STATE:.status.conditions[].reason | grep CloudResponseError | wc -l
           0
      
      The node ipv4 capcity is 100
      Annotations:        cloud.network.openshift.io/egress-ipconfig: [{"interface":"nic0","ifaddr":{"ipv4":"10.0.128.0/17"},"capacity":{"ip":100}}]
                       
      

      3. Label another node as egress node and remove egress label from original node to make EIPs failover

      4. Check the result, 8 EIPs failover failed

       bash-3.2$  oc get cloudprivateipconfigs -ocustom-columns=NAME:.metadata.name,NODE:.spec.node,STATE:.status.conditions[].reason | grep CloudResponseError | wc -l
                  8
           bash-3.2$ oc get cloudprivateipconfigs -ocustom-columns=NAME:.metadata.name,NODE:.spec.node,STATE:.status.conditions[].reason | grep CloudResponseSuccess | wc -l
                 92
           bash-3.2$ 
           bash-3.2$ 
           bash-3.2$ oc get cloudprivateipconfigs -ocustom-columns=NAME:.metadata.name,NODE:.spec.node,STATE:.status.conditions[].reason | grep CloudResponseError
           10.0.129.101   huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.15    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.17    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.19    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.21    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.22    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.23    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
           10.0.129.24    huirwang-gcp3-h7rfm-worker-b-ktfqt   CloudResponseError
      
       bash-3.2$ oc get cloudprivateipconfigs  10.0.129.15 -o yaml
      apiVersion: cloud.network.openshift.io/v1
      kind: CloudPrivateIPConfig
      metadata:
        annotations:
          k8s.ovn.org/egressip-owner-ref: egressip2-14
        creationTimestamp: "2025-10-23T02:51:38Z"
        finalizers:
        - cloudprivateipconfig.cloud.network.openshift.io/finalizer
        generation: 2
        name: 10.0.129.15
        resourceVersion: "47508"
        uid: 81b1f9d1-593a-49af-af65-00bf9088c924
      spec:
        node: huirwang-gcp3-h7rfm-worker-b-ktfqt
      status:
        conditions:
        - lastTransitionTime: "2025-10-23T03:12:13Z"
          message: 'Error processing cloud assignment request, err: {"errors":[{"code":"IP_IN_USE_BY_ANOTHER_RESOURCE","message":"IP
            ''10.0.129.15/32'' is already being used by another resource. "}]}'
          observedGeneration: 2
          reason: CloudResponseError
          status: "False"
          type: Assigned
        node: huirwang-gcp3-h7rfm-worker-b-ktfqt
      
      

      Checked the Alias IP ranges for original node huirwang-gcp3-h7rfm-worker-a-6x6dw from GCP cloud console, the 8 IPs are still in original node, not removed.

         10.0.129.15/32
          10.0.129.17/32
          10.0.129.19/32
          10.0.129.21/32
          10.0.129.23/32
          10.0.129.24/32
          10.0.129.22/32
          10.0.129.101/32 
      

      3.

          Actual results:{code:none}
          Some EIPs failover failed
      
          

      Expected results:

         All EIPs failover succeeded.
          

      Additional info:

      
          

              bbennett@redhat.com Ben Bennett
              huirwang Huiran Wang
              None
              None
              Huiran Wang Huiran Wang
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: