When iterating over a map in Go, the order of elements is not guaranteed and may vary between iterations. In the context of the Gateway API provider, the four following maps:
are transformed into four slices, where the order becomes significant when comparing using go-cmp.
If sessionAffinity or Mirror is used, the comparison of these slices will be ignored. However, in other cases, any differences in the slices will lead the Flagger operator to believe that the HttpRoute has changed, triggering unnecessary canary analysis restarts."
To Reproduce
run canary analysis with gateway api without sessionAffinity or Mirror
Describe the bug
When iterating over a map in Go, the order of elements is not guaranteed and may vary between iterations. In the context of the Gateway API provider, the four following maps:
are transformed into four slices, where the order becomes significant when comparing using go-cmp.
If sessionAffinity or Mirror is used, the comparison of these slices will be ignored. However, in other cases, any differences in the slices will lead the Flagger operator to believe that the HttpRoute has changed, triggering unnecessary canary analysis restarts."
To Reproduce
run canary analysis with gateway api without sessionAffinity or Mirror
Expected behavior
canary analysis run only once
Additional context