I am trying to set up kong gateway and the ingress controller in an EKS cluster. Both the controller, and the gateway create classic LBs in the cluster.
The problem is that the ingress resources are destroyed and recreated continuously. It will create the resource and point it to the LB of the gateway, then destroy it and create the ingress resource pointing to the controller LB.
I am new to trying to use kong. Please why does the gateway need an LB if the ingress controller has an LB, or how do I disable the gateway LB so that they all use the ingress controller.
I have tried going through docs, but I am not getting any clarity.
My ingress resource
apiVersion: v1
items:
- apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/app-root: /
ingress.kubernetes.io/ssl-redirect: "false"
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.k8s.io/v1","kind":"Ingress","metadata":{"annotations":{"ingress.kubernetes.io/app-root":"/","ingress.kubernetes.io/ssl-redirect":"false","kubernetes.io/ingress.class":"kong"},"labels":{"app.kubernetes.io/component":"server","app.kubernetes.io/instance":"argocd","app.kubernetes.io/managed-by":"Helm","app.kubernetes.io/name":"argocd-server","app.kubernetes.io/part-of":"argocd","app.kubernetes.io/version":"v2.9.5","argocd.argoproj.io/instance":"argocd","helm.sh/chart":"argo-cd-5.53.8"},"name":"argocd-server","namespace":"argocd"},"spec":{"ingressClassName":"kong","rules":[{"host":"aws-argocd-stage.tersu.com","http":{"paths":[{"backend":{"service":{"name":"argocd-server","port":{"number":443}}},"path":"/","pathType":"Prefix"}]}}]}}
kubernetes.io/ingress.class: kong
creationTimestamp: "2024-05-03T15:50:49Z"
generation: 1
labels:
app.kubernetes.io/component: server
app.kubernetes.io/instance: argocd
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: argocd-server
app.kubernetes.io/part-of: argocd
app.kubernetes.io/version: v2.9.5
argocd.argoproj.io/instance: argocd
helm.sh/chart: argo-cd-5.53.8
name: argocd-server
namespace: argocd
resourceVersion: "39457334"
uid: 836cb08b-b84e-4fc8-9e1b-176698da9bbd
spec:
ingressClassName: kong
rules:
- host: aws-argocd-stage.tersu.com
http:
paths:
- backend:
service:
name: argocd-server
port:
number: 443
path: /
pathType: Prefix
status:
loadBalancer:
ingress:
- hostname: XXXXXXXX-XXXXXXXXXXX.eu-north-1.elb.amazonaws.com
kind: List
metadata:
resourceVersion: ""
The kong values
deployment:
test:
enabled: false
controller:
proxy:
nameOverride: "{{ .Release.Name }}-gateway-proxy"
enabled: true
deployment:
kong:
enabled: false
ingressController:
enabled: true
gatewayDiscovery:
enabled: true
generateAdminApiService: true
podAnnotations:
kuma.io/gateway: enabled
# This port must match your Kong admin API port. 8444 is the default.
# If you set gateway.admin.tls.containerPort, change these annotations
# to use that value.
traffic.kuma.io/exclude-outbound-ports: "8444"
traffic.sidecar.istio.io/excludeOutboundPorts: "8444"
gateway:
enabled: true
deployment:
kong:
enabled: true
admin:
enabled: true
type: ClusterIP
clusterIP: None
ingressController:
enabled: false
env:
role: traditional
database: "off"
The chart: https://github.com/Kong/charts/blob/main/charts/ingress/README.md