rollouts-plugin-trafficrouter-gatewayapi
rollouts-plugin-trafficrouter-gatewayapi copied to clipboard
Issue Integrating Kong with Argo Rollout
Hi Team
Faced one issue when integrating KIC with Argo Rollouts. This seems to be an issue with KIC, I did raise a ticket there too but wanted to check if this issue was come across when trying the demo with Kong
2024-03-06T17:09:44Z error Failed parsing resource errors {"url": "https://localhost:8444", "update_strategy": "InMemory", "error": "could not unmarshal config error: json: cannot unmarshal object into Go struct field ConfigError.flattened_errors of type []sendconfig.FlatEntityError"}
Got this error when httproute and rollout was configured.
KIC Issue for reference -> https://github.com/Kong/kubernetes-ingress-controller/issues/5676
Where is this log coming from? The Argo Rollouts controller? Or Kong?
If it happens when you just create an HTTProute, I don't think Argo Rollouts is involved.
I'm also seeing this same issue. Here's the versions I've been using for reference:
- Kong Ingress Controller image - 3.1.1
- Kong Gateway image - 3.6.1.1
- Kong Helm Chart - 2.38.0
- Argo Rollouts image - v1.6.6
- Argo Rollouts Gateway API plugin - v0.2.0
- Argo Rollouts chart - 2.34.3
Where is this log coming from? The Argo Rollouts controller? Or Kong?
This is a log from Kong Ingress Controller. KIC looks to be unable to reconcile the HTTPRoute when there are multiple backendRefs that resolve to the same Pods. Given the example for kong in this repo where the argo-rollouts-canary-service and argo-rollouts-stable-service Services have identical specs, it seems like this conflict will exist when there's not an active deployment and the Pods that exist don't yet have the labels injected by the Rollout controller.
I've gotten around this limitation for a BlueGreen deployment by:
- Configuring
spec.strategy.blueGreen.previewMetadata.labelswith labels that I only want to be on the preview Pods. - Explicitly configuring the preview service with the selectors to match those labels.
- Omitting
spec.strategy.blueGreen.previewServicein my Rollout manifest. I had to do this or Argo Rollouts complains that it can't match the preview service.
For canary however, It looks like I can't do the equivalent by omitting spec.strategy.canary.canaryService as that's called out as required for traffic routing in the docs.
As far as I can tell it seems like the kong examples in this repo may be out of date? Step 0 starts with Gateway API from before the v1 release, and it's not called out which version of Kong this was working with. Maybe the KIC functionality has changed since this was written?
@congiv Yes I created the example 10 months ago (as can be seen from the Git history)
But I am in no way a Kong expert, just a simple user. I just followed the Gateway API instructions that Kong had at that time.
The version I used seems to be 2.9.x https://docs.konghq.com/kubernetes-ingress-controller/2.9.x/deployment/install-gateway-apis/
This should be improved (or fixed entirely) with next KIC release with this https://github.com/Kong/kubernetes-ingress-controller/pull/5817.
There's also been some improvements with regards to errors handling so you should be able to see more verbose and meaningful errors when that happens in newer versions.
Also the nightlies already include https://github.com/Kong/kubernetes-ingress-controller/pull/5773 which gives you access to raw Kong errors returned when KIC applies the configuration which fails and then error parsing fails.
Hi @ksgnextuple as I understood the problem was solved right ? May we close this issue ?