Closed ericvn closed 6 years ago
It turns out that this case sensitivity was due to improper parsing of the spec json/yaml -- where lower-case values of protocol got converted into string by the default unmarshaller in Go. Adding proper MarshalJSON
/UnmarshalJSON
methods on the Protocol
struct should fix it - by doing the toUpper case conversion during parsing of the input.
Today, the controller will cycle a route if the protocol is returned with a different case than what was specified during the 'route add'.
An easy recreate of this is to use the example1.yml which creates routes using lower case protocols. If you change the simulator LB to upper case the return in the route ls, the controller will repeatedly remove and add the route: