Skip to content

request help: Configuring APISIX Ingress Controller to Manage Multiple Independent Gateways (Control Planes) in Different Namespaces #2390

@Piyushgautamsingh

Description

@Piyushgautamsingh

Issue description

Question:
I'm setting up a decoupled APISIX deployment with the following architecture:

  • APISIX Ingress Controller in the apisix-ingress namespace
  • Separate APISIX Gateway instances in namespace-A and namespace-B

Goal:
When applying CRDs from namespace-C, routes should only be created on the gateway in namespace-A, not namespace-B.

Current Configuration:
The ingress controller's Helm chart connects to one control plane via:

apisix:
  serviceName: apisix-admin
  serviceNamespace: ingress-apisix
  servicePort: 9180
  adminKey: "edd1c9f034335f136f87ad84b625c8f1"
  clusterName: "default"
  adminAPIVersion: "v2"

Questions:

  1. How can I configure the ingress controller to selectively manage multiple gateway deployments across different namespaces?
  2. Is there native support for namespace-scoped route propagation (e.g., via annotations, labels, or clusterName differentiation)?
  3. Would deploying separate ingress controller instances per gateway namespace be recommended, or does APISIX support multi-namespace management natively?
  4. How should the clusterName field be utilized in this scenario?
  5. Are there best practices for implementing this multiple decoupled architecture with ingress controller?

Environment

  • your apisix-ingress-controller version (output of apisix-ingress-controller version --long): 1.8.0
  • your Kubernetes cluster version (output of kubectl version): v1.30.0
  • if you run apisix-ingress-controller in Bare-metal environment, also show your OS version (uname -a):

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions