Kong Ingress Controller v2.9+ supports Gateway Discovery, which allows the controller to dynamically discover Gateway instances via a Kubernetes Admin API service. This requires a split release installation where Gateways and the Ingress Controller are deployed separately.
Configuration Options
Enable or disable the feature using ingressController.gatewayDiscovery.enabled:
false (default): The controller manages a pre-determined set of Gateways using the CONTROLLER_KONG_ADMIN_URL environment variable.true: The controller dynamically locates Gateways by watching a specified Kubernetes service via the CONTROLLER_KONG_ADMIN_SVC environment variable.
Required Service Flags
If enabled is true, you must specify the Admin API Service details:
ingressController.gatewayDiscovery.adminApiService.name: The name of the service.ingressController.gatewayDiscovery.adminApiService.namespace: The namespace of the service.ingressController.gatewayDiscovery.generateAdminApiService: If set to true, the chart automatically generates the name and namespace based on the current Helm release name and namespace. This is recommended when using the kong chart as a subchart.
DNS Strategy for Gateway Addresses
You can control how Gateway addresses are generated using the CONTROLLER_GATEWAY_DISCOVERY_DNS_STRATEGY environment variable (or the --gateway-discovery-dns-strategy CLI flag).
Supported values:
service: Uses service-scoped pod DNS names (pod-ip-address.service-name.my-namespace.svc.cluster-domain.example).pod: Uses namespace-scoped pod DNS names (pod-ip-address.my-namespace.pod.cluster-domain.example).ip (default): Uses regular IP addresses.
ingressController:
gatewayDiscovery:
enabled: true
adminApiService:
name: my-admin-service
namespace: kong-namespace
generateAdminApiService: false