You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I run apisix canary release example smoothly, then I add "api-breaker" plugin to my ApisixRoute and trigger a canary release, it fails.
These logs are from flagger pod:
"Starting canary analysis for podinfo.test"
"Advance podinfo.test canary weight 10"
"Apisix route podinfo-podinfo-canary updated"
"Starting canary analysis for podinfo.test"
"apisix route podinfo.test update error: Operation cannot be fulfilled on apisixroutes.apisix.apache.org \"podinfo-podinfo-canary\": the object has been modified; please apply your changes to the latest version and try again"
"Apisix route podinfo-podinfo-canary updated"
"Starting canary analysis for podinfo.test"
"Advance podinfo.test canary weight 10"
"Apisix route podinfo-podinfo-canary updated"
from this we know that flagger updates podinfo-podinfo-canary every loop, and this behavior finally results into a canary failure.
Dive into the codes, we found this method in file pkg/apis/apisix/v2/types.go implements DeepCopy using json.
Describe the bug
I run apisix canary release example smoothly, then I add "api-breaker" plugin to my ApisixRoute and trigger a canary release, it fails.
These logs are from flagger pod:
from this we know that flagger updates podinfo-podinfo-canary every loop, and this behavior finally results into a canary failure.
Dive into the codes, we found this method in file pkg/apis/apisix/v2/types.go implements DeepCopy using json.
Since json regards all numbers as float64, int values(such as 502 in api-breaker) get trouble during the diff calculating section in every loop.
To Reproduce
Expected behavior
Canary release process successfully when using ApisixPlugins with integer values.
Additional context
The text was updated successfully, but these errors were encountered: