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

the "classicLoadBalancer" is still in ingresscontroller status after changing LB type from CLB to NLB

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • 4.13, 4.12, 4.14, 4.15, 4.16, 4.17.0
    • Networking / router
    • Moderate
    • No
    • 2
    • NE Sprint 258
    • 1
    • Rejected
    • False
    • Hide

      None

      Show
      None
    • Hide
      *Cause*: The Ingress Operator wasn't clearing the classicLoadBalancer or networkLoadBalancer parameters in the IngressController status when the load balancer changed type.
      *Consequence*: Both classicLoadBalancer and networkLoadBalancer parameters may appear in the status potentially causing confusion for users.
      *Fix*: The Ingress Operator now appropriately clears either classicLoadBalancer or networkLoadBalancer when switching to a different load balancer type.
      *Result*: The status of the IngressController is more accurate and less confusing.
      Show
      *Cause*: The Ingress Operator wasn't clearing the classicLoadBalancer or networkLoadBalancer parameters in the IngressController status when the load balancer changed type. *Consequence*: Both classicLoadBalancer and networkLoadBalancer parameters may appear in the status potentially causing confusion for users. *Fix*: The Ingress Operator now appropriately clears either classicLoadBalancer or networkLoadBalancer when switching to a different load balancer type. *Result*: The status of the IngressController is more accurate and less confusing.
    • Bug Fix
    • In Progress

      Description of problem:

          After changing LB type from CLB to NLB, the "status.endpointPublishingStrategy.loadBalancer.providerParameters.aws.classicLoadBalancer" is still there, but if create new NLB ingresscontroller the "classicLoadBalancer" will not appear.
      
      // after changing default ingresscontroller to NLB
      $ oc -n openshift-ingress-operator get ingresscontroller/default -oyaml | yq .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws
      classicLoadBalancer:                   <<<< 
        connectionIdleTimeout: 0s            <<<<
      networkLoadBalancer: {}
      type: NLB
      
      // create new ingresscontroller with NLB
      $ oc -n openshift-ingress-operator get ingresscontroller/nlb -oyaml | yq .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws
      networkLoadBalancer: {}
      type: NLB
      
      
      
      

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

          4.17.0-0.nightly-2024-08-08-013133

      How reproducible:

          100%

      Steps to Reproduce:

          1. changing default ingresscontroller to NLB
      $ oc -n openshift-ingress-operator patch ingresscontroller/default --type=merge --patch='{"spec":{"endpointPublishingStrategy":{"type":"LoadBalancerService","loadBalancer":{"providerParameters":{"type":"AWS","aws":{"type":"NLB"}},"scope":"External"}}}}'
      
          2. create new ingresscontroller with NLB
      kind: IngressController
      apiVersion: operator.openshift.io/v1
      metadata:
        name: nlb
        namespace: openshift-ingress-operator
      spec:
        domain: nlb.<base-domain>
        replicas: 1
        endpointPublishingStrategy:
          loadBalancer:
            providerParameters:
              aws:
                type: NLB
              type: AWS
            scope: External
          type: LoadBalancerService
      
          3. check both ingresscontrollers status
          

      Actual results:

      // after changing default ingresscontroller to NLB 
      $ oc -n openshift-ingress-operator get ingresscontroller/default -oyaml | yq .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws
      classicLoadBalancer:
        connectionIdleTimeout: 0s
      networkLoadBalancer: {}
      type: NLB
       
      // new ingresscontroller with NLB
      $ oc -n openshift-ingress-operator get ingresscontroller/nlb -oyaml | yq .status.endpointPublishingStrategy.loadBalancer.providerParameters.aws
      networkLoadBalancer: {}
      type: NLB
       

      Expected results:

          If type=NLB, then "classicLoadBalancer" should not appear in the status. and the status part should keep consistent whatever changing ingresscontroller to NLB or creating new one with NLB. 

      Additional info:

          

            gspence@redhat.com Grant Spence
            rhn-support-hongli Hongan Li
            Hongan Li Hongan Li
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: