-
Bug
-
Resolution: Won't Do
-
Normal
-
None
-
4.14
-
Quality / Stability / Reliability
-
False
-
-
1
-
Moderate
-
No
-
None
-
None
-
Rejected
-
Sprint 254, NE Sprint 255, NE Sprint 256, NE Sprint 257, NE Sprint 260
-
5
-
None
-
None
-
None
-
None
-
None
-
None
-
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: