-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Add Customization Option for Controller Name #3946
Comments
I have successfully deployed separate public and private ingress controllers in different Kubernetes clusters, and they worked as expected. However, when attempting to deploy both controllers within the same Kubernetes instance, I encountered conflicts due to the hardcoded controller name. These conflicts make it impossible to run both controllers simultaneously, which is a requirement for my centralized ingress setup. Allowing customization of the controller name would resolve this issue and enable seamless operation of multiple ingress controllers within the same Kubernetes cluster, supporting both public and private ingress scenarios. |
In addition, I propose updates to the Helm chart to make this feature easily configurable for users:
This would allow users to easily set distinct controller names for different deployments directly via the Helm chart, simplifying multi-controller setups without requiring additional manual configuration. |
Is your feature request related to a problem?
Yes, the lack of customization for the controller name makes it impossible to deploy multiple instances of the AWS Load Balancer Controller within the same Kubernetes cluster. This limitation is problematic for setups requiring separate public and private ingress controllers, especially in compliance-driven architectures such as those mandated by SOC2 and ISO27001.
Describe the solution you'd like
I'm using the AWS Load Balancer Controller in a setup where I need to register two instances of the controller: one for public ingress and one for private ingress. This setup aligns with the requirements outlined in the AWS whitepaper for building scalable and secure multi-VPC network infrastructure (link), particularly for SOC2 and ISO27001 compliance.
Currently, the controller name is hardcoded in the pkg/ingress/class_loader.go file (link to line).
I propose adding an extra configuration option to the pkg/config/ingress_config.go file (link) that allows users to customize the controller name.
This change would enable users to:
Benefits
Suggested Implementation
Add a new field (e.g., controllerName) to the IngressConfig struct in pkg/config/ingress_config.go.
Modify the hardcoded controller name in pkg/ingress/class_loader.go to use the configurable value from IngressConfig.
Update the default behavior to maintain backward compatibility (e.g., default to the existing hardcoded name if the new option is not specified).
Architecture Diagram
Below is an architectural diagram that illustrates the proposed setup with two Load Balancer Controllers, one managing public ingress and another managing private ingress. This setup ensures compliance with centralized ingress requirements for secure multi-VPC environments:
Describe alternatives you've considered
A description of any alternative solutions or features you've considered.
The text was updated successfully, but these errors were encountered: