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

Traffic management for kong ingress controller and kuma #782

Closed
vivekanandg opened this issue Oct 15, 2020 · 10 comments · Fixed by #2820
Closed

Traffic management for kong ingress controller and kuma #782

vivekanandg opened this issue Oct 15, 2020 · 10 comments · Fixed by #2820
Labels
enhancement New feature or request help wanted Extra attention is needed traffic-routing

Comments

@vivekanandg
Copy link

Summary

Currently I see that only the below are supported

  • Istio
  • Nginx Ingress Controller
  • AWS ALB Ingress Controller
  • Service Mesh Interface (SMI)

Message from the maintainers:

Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

@vivekanandg vivekanandg added the enhancement New feature or request label Oct 15, 2020
@jessesuen jessesuen added the help wanted Extra attention is needed label Oct 15, 2020
@kostis-codefresh
Copy link
Member

It seems that Kong will have an implementation for the Kubernetes Gateway API https://gateway-api.sigs.k8s.io/implementations/#kong

So Kong support might be available after implementing #1438

@borkke
Copy link

borkke commented Feb 24, 2022

I found out about this open issue only after we did the implementation where we have Kong as ingress controller (without Kuma) and our services are deployed with:

  • service
  • service-preview
  • ingress
  • ingress-preview
  • rollout (tested canary and blue-green)
  • and hpa

I was very surprised when I saw that Kong is not on the supported list but my setup works perfectly fine. So, I'm wondering am I missing something here?

I was even able to run canary and blue-green example first with Nginx being my ingress then I just switched to Kong ingress and it worked fine.

  • kong -> 2.7.0
  • rollouts -> 1.1.0

@mykyta-batalov
Copy link

I found out about this open issue only after we did the implementation where we have Kong as ingress controller (without Kuma) and our services are deployed with:

  • service
  • service-preview
  • ingress
  • ingress-preview
  • rollout (tested canary and blue-green)
  • and hpa

I was very surprised when I saw that Kong is not on the supported list but my setup works perfectly fine. So, I'm wondering am I missing something here?

I was even able to run canary and blue-green example first with Nginx being my ingress then I just switched to Kong ingress and it worked fine.

  • kong -> 2.7.0
  • rollouts -> 1.1.0

@borkke Do you mind sharing an example of how you got it all set up, please? I'm making research if this is a viable option as of today and it would help a lot to have something to look at. Thanks

@borkke
Copy link

borkke commented Mar 17, 2022

Here are few notes what I did:

  • Used minikube
  • Enabled nginx ingress using minikube minikube addons enable ingress
  • Checked out rollouts-demo
  • Added all URLs to my host file (canary.dev.argoproj.io, canary-preview.dev.argoproj.io, blue-green-preview.dev.argoproj.io, blue-green.dev.argoproj.io) to point to my minikube instance
  • tried these two examples blue/green and canary

The examples worked fine. Then I uninstalled nginx ingress and installed Kong ingress and everything worked fine as before. This should be enough I think:

minikube addons disable ingress
helm install kong kong/kong --set proxy.type=NodePort

I tried canary example and it worked just fine. This is the only diff that I have locally:

diff --git a/examples/canary/canary-ingress.yaml b/examples/canary/canary-ingress.yaml
index 6a642e9..e1cad9d 100644
--- a/examples/canary/canary-ingress.yaml
+++ b/examples/canary/canary-ingress.yaml
@@ -4,8 +4,8 @@ metadata:
   name: canary-demo
   annotations:
     ingress.kubernetes.io/proxy-body-size: 100M
-    kubernetes.io/ingress.class: nginx
-    ingress.kubernetes.io/app-root: /
+    kubernetes.io/ingress.class: kong
+    konghq.com/strip-path: "true"
 spec:
   rules:
   - host: canary.dev.argoproj.io
diff --git a/examples/canary/canary-preview-ingress.yaml b/examples/canary/canary-preview-ingress.yaml
index 683e775..8ae25b5 100644
--- a/examples/canary/canary-preview-ingress.yaml
+++ b/examples/canary/canary-preview-ingress.yaml
@@ -4,8 +4,8 @@ metadata:
   name: canary-demo-preview
   annotations:
     ingress.kubernetes.io/proxy-body-size: 100M
-    kubernetes.io/ingress.class: nginx
-    ingress.kubernetes.io/app-root: /
+    kubernetes.io/ingress.class: kong
+    konghq.com/strip-path: "true"
 spec:
   rules:
   - host: canary-preview.dev.argoproj.i

I did have small issue and I think it's probably my local Kong configuration. The Location HTTP header was not picked up and I worked around this by using Header Editor and with that the example worked as expected.

Also, we currently have ArgoCD/Rollout/Kong on EKS with working canary and blue/green deployments.

@borkke
Copy link

borkke commented Apr 13, 2022

@mykyta-batalov Just checking in... Did you have any progress regarding this?

@PhilippPlotnikov
Copy link
Contributor

PhilippPlotnikov commented May 26, 2022

Hi, I have implemented Gateway API support. Can someone review it ?
#2004
It should solve the problem with Kong and Kuma

@github-actions
Copy link
Contributor

github-actions bot commented Dec 7, 2022

This issue is stale because it has been open 60 days with no activity.

@lucasoarruda
Copy link

any news?

@kostis-codefresh
Copy link
Member

The first version of the Gateway API plugin is out

https://github.com/argoproj-labs/rollouts-gatewayapi-trafficrouter-plugin

@kostis-codefresh
Copy link
Member

@lucasoarruda , @vivekanandg , @borkke , @mykyta-batalov

Full example with Kong via the Gateway API can be found here https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-gatewayapi/tree/main/examples/kong

Any feedback welcome

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed traffic-routing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants