Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue Integrating Kong with Argo Rollout #51

Open
ksgnextuple opened this issue Mar 6, 2024 · 5 comments
Open

Issue Integrating Kong with Argo Rollout #51

ksgnextuple opened this issue Mar 6, 2024 · 5 comments

Comments

@ksgnextuple
Copy link

ksgnextuple commented Mar 6, 2024

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 -> Kong/kubernetes-ingress-controller#5676

@kostis-codefresh
Copy link
Collaborator

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.

@congiv
Copy link

congiv commented Mar 19, 2024

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.labels with 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.previewService in 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?

@kostis-codefresh
Copy link
Collaborator

kostis-codefresh commented Mar 20, 2024

@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/

@pmalek
Copy link

pmalek commented Apr 24, 2024

This should be improved (or fixed entirely) with next KIC release with this Kong/kubernetes-ingress-controller#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 Kong/kubernetes-ingress-controller#5773 which gives you access to raw Kong errors returned when KIC applies the configuration which fails and then error parsing fails.

@Philipp-Plotnikov
Copy link
Collaborator

Hi @ksgnextuple as I understood the problem was solved right ? May we close this issue ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants