-
Notifications
You must be signed in to change notification settings - Fork 337
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
proposal: Add IngressClass support for custom resources #592
Comments
@tao12345666333 That would be a good way to support the soft isolation, but shall we still use the name |
IngressClass is a general concept, I think it is more acceptable to take it. |
First: Ingress Class has a default value ("apisix"). If you continue to use ingressClass, then only ApisixRoute containing "apisix" will be listened by default. And if you want to listen to all ApisixRoute CRD by default, it seems impossible to achieve? Or put IngressClass To an empty string? |
A tricky way to support listen all ApisixRoute CRs is reserving a wildcard I think add |
The
Yes, we need to add a field |
+1 for add |
Consider this scenario: At present, some people have used ApisixRoute CRD, there is no ingressClass for isolation, so the default is to listen to all ApisixRoute CRDs. But when they upgraded to the new ingress-controller version, they found that by default Controller only listen to CRDs containing "apisix". Is this situation unreasonable? Or change the default value of ingressClass to "*"? But this will affect Ingress CRD. |
As we already have similar logic about |
This issue has been marked as stale due to 90 days of inactivity. It will be closed in 30 days if no further activity occurs. If this issue is still relevant, please simply write any comment. Even if closed, you can still revive the issue at any time or discuss it on the dev@apisix.apache.org list. Thank you for your contributions. |
Looking forward to supporting ingressClass, our scenario: |
got it. Once we complete this function, it is also very convenient for users to achieve multi-tenant isolation |
#593 Can it be merged ? Support ingressClass in ApisixRoute resource. |
@Donghui0 thanks for your contributions! Yes, I'd love to merge it! But there are some conflicts, and I want the feature to just be added to the v2 version of the ApisixRoute |
After discussing with @Donghui0 and @Gallardot , it has been decided that @Donghui0 will be responsible for implementing this feature in ApisixRoute. I will provide a more detailed technical proposal base on #1523 (comment) Firstly, we will use the Secondly, we need to avoid making breaking changes to users.
To handle these custom resources properly, we need to add a mechanism to detect whether the IngressClass field has been set in the custom resource or not. In this way, we can ensure that both the default configuration and custom configurations with a specified IngressClass value can be processed properly, without causing any destructive changes for the user. Based on the above description, I believe we can modify the default value to In addition, we also need to consider the scenario where there are multiple resources with the same IngressClass configuration. If two controllers have the same ingress-class configuration value, we need to distinguish them based on the controller name. However, I believe this feature can be implemented independently. |
This looks to be mostly done, except for watching (and adding to helm) the actual Adding the resource might also be desirable for discovery. |
https://github.com/apache/apisix-ingress-controller/releases/tag/v1.7.0 V1.7.0 has been published, I will close this one, thanks all!!! |
Currently, our custom resources are all namespace scoped.
If you want to use multiple apisix-ingress-controllers in the namespace at the same time, this is not allowed.
If we can add an ingress class to custom resources, we can let apisix-ingress-controller handle them separately.
Although this is a very low-frequency scene. It is currently being discussed #578
I think we may need to reach a consensus and add more complete information.
EDIT:
We will implement this function and will split it into the following tasks
The text was updated successfully, but these errors were encountered: