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

Incorrect route shard host after 4.11->4.12->4.13->4.14 upgrade

XMLWordPrintable

    • Moderate
    • No
    • 1
    • Sprint 254, NE Sprint 255, NE Sprint 256, NE Sprint 257, NE Sprint 260
    • 5
    • Rejected
    • False
    • Hide

      None

      Show
      None

      Description of problem:

          After a 4.11 -> 4.12 -> 4.13 -> 4.14 upgrade, when creating a LB type ingress controller that matches with the canary route, it's expected to get a host in the canary route with the domain defined in the ingress controller but it gets the canary host instead.
      
      The test "[sig-installer][Suite:openshift/openstack][lb][Serial] The Openstack platform should create a TCP Amphora LoadBalancer when LoadBalancerService ingressController is created on Openshift" [1] fails consistently. It doesn't fail on fresh 4.14 clusters.
      
      (See steps to reproduce for more info)

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

      4.14.28    

      How reproducible:

          Always after 4.11 -> 4.12 -> 4.13 -> 4.14 upgrade (haven't checked after a fresh 4.13 -> 4.14 upgrade)

      Steps to Reproduce:

          1. Create a LB type ingress controller with:
      
      apiVersion: operator.openshift.io/v1
      kind: IngressController      
      metadata:                                     
        name: canary-sharding       
        namespace: openshift-ingress-operator       
      spec:
      {...}
        domain: sharding-test.apps.shiftstack.com
        endpointPublishingStrategy:
          type: LoadBalancerService
        [...]
        routeSelector:
          matchLabels:
            ingress.openshift.io/canary: canary_controller
      {...}
      
          2. Obtain the host for the new ingress controller from the canary route:
      
      apiVersion: route.openshift.io/v1
      kind: Route
      metadata:
        annotations:
          haproxy.router.openshift.io/balance: roundrobin
          openshift.io/host.generated: "true"
        creationTimestamp: "2024-05-30T15:13:52Z"
        labels:
          ingress.openshift.io/canary: canary_controller
        name: canary
        namespace: openshift-ingress-canary
        ownerReferences:
        - apiVersion: apps/v1
          controller: true
          kind: daemonset
          name: ingress-canary
          uid: 52d20bab-4c78-46ce-8709-68a2e36e9a41
        resourceVersion: "2076792"
        uid: aa18b66d-219d-4f81-8a03-24e8d667e956
      spec:
        host: canary-openshift-ingress-canary.apps.ostest.shiftstack.com
        port:
          targetPort: 8080
        tls:
          insecureEdgeTerminationPolicy: Redirect
          termination: edge
        to:
          kind: Service
          name: ingress-canary
          weight: 100
        wildcardPolicy: None
      status:
        ingress:
        - conditions:
          - lastTransitionTime: "2024-05-30T15:19:58Z"
            status: "True"
            type: Admitted
          host: canary-openshift-ingress-canary.apps.ostest.shiftstack.com
          routerCanonicalHostname: router-default.apps.ostest.shiftstack.com
          routerName: default
          wildcardPolicy: None
        - conditions:
          - lastTransitionTime: "2024-06-03T19:13:44Z"
            status: "True"
            type: Admitted
          host: canary-openshift-ingress-canary.apps.ostest.shiftstack.com
          routerCanonicalHostname: router-canary-sharding.sharding-test.apps.shiftstack.com
          routerName: canary-sharding
          wildcardPolicy: None  

      Actual results:

      Getting
          host: canary-openshift-ingress-canary.apps.ostest.shiftstack.com
      
      instead of the expected:
         host: canary-openshift-ingress-canary.sharding-test.apps.shiftstack.com

       

      Expected results:

      The test expects [2] to find a host containing "sharding-test.apps.shiftstack.com" in the status.ingress field, but it doesn't find it:
      
      status:
        ingress:
        - conditions:
          - lastTransitionTime: "2024-05-30T15:19:58Z"
            status: "True"
            type: Admitted
          host: canary-openshift-ingress-canary.apps.ostest.shiftstack.com
          routerCanonicalHostname: router-default.apps.ostest.shiftstack.com
          routerName: default
          wildcardPolicy: None
        - conditions:
          - lastTransitionTime: "2024-06-03T19:13:44Z"
            status: "True"
            type: Admitted
          host: canary-openshift-ingress-canary.apps.ostest.shiftstack.com  <----
          routerCanonicalHostname: router-canary-sharding.sharding-test.apps.shiftstack.com
          routerName: canary-sharding
          wildcardPolicy: None

       

      Additional info:

      [1] https://github.com/openshift/openstack-test/blob/16e2dcb19d1c1903a9c2db43fa8173aa1ff8b57f/test/extended/openstack/loadbalancers.go#L507

      [2] https://github.com/openshift/openstack-test/blob/16e2dcb19d1c1903a9c2db43fa8173aa1ff8b57f/test/extended/openstack/loadbalancers.go#L550-L555

              mmasters1@redhat.com Miciah Masters
              juriarte@redhat.com Jon Uriarte
              Hongan Li Hongan Li
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: