apisix-helm-chart icon indicating copy to clipboard operation
apisix-helm-chart copied to clipboard

managing multiple ingress-controller and route creation in eks cluster

Open Mungari opened this issue 1 year ago • 1 comments

Morning all, at my company we're trying a two ingress-controller setup: A private ingress controller for internal traffic and a public one for public facing/external traffic.

We've set up these two apisix-ingress-controllers on eks, so far so good. We're having some issues with the CRDs: it seems that the private controller picks up all the CRDs, even ones meant for the public one.

Is there a way to apply a filter to the CRDs or direct them to a specific ingress controller, besides namespace filtering? Looking at the documentation, chart and templates I couldn't find much.

Thanks in advance.

Kubernetes version: v1.28.6-eks-508b6b3 Chart version: 2.6.0 Application version: 3.8.0

ingress config if it helps.

apisix:
    admin:
      credentials:
        admin: XXXXXXXXXX
        viewer: XXXXXXXXXXX
  autoscaling:
    enabled: true
    maxReplicas: 3
    minReplicas: 2
    targetCPUUtilizationPercentage: 90
    targetMemoryUtilizationPercentage: 90
  dashboard:
    enabled: false
  ingress-controller:
    config:
      apisix:
        adminAPIVesion: 3
        adminKey: XXXXXXXXXX
        serviceName: ingress-apisix-public-admin
        serviceNamespace: apigateway
      certFile: XXXXXXXXXX
      ingressPublishService: apigateway/ingress-apisix-public-gateway
      kubernetes:
        ingressClass: apisix-public
    enabled: true
    gateway:
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: 300
        service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
        service.beta.kubernetes.io/aws-load-balancer-internal: false
        service.beta.kubernetes.io/aws-load-balancer-type: nlb
      type: LoadBalancer
  replicaCount: 2
  service:
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: 300
      service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
      service.beta.kubernetes.io/aws-load-balancer-internal: false
      service.beta.kubernetes.io/aws-load-balancer-type: nlb
    type: LoadBalancer
  serviceMonitor:
    enabled: true
    labels:
      release: prometheus-stack

NOTE: we have both service.type LoadBalancer and ingress-controller.gateway.type LoadBalancer otherwise externaldns doesn't work, apparently.

Mungari avatar Mar 19 '24 14:03 Mungari