Open skenderidis opened 2 years ago
Created [CONTCNTR-3566] for internal tracking.
@skenderidis - Is the RFE still valid ?
yes
@trinaths @skenderidis i believe we resolved this with adding Host to Ingresslink and transportserver CRD. Example https://github.com/mdditt2000/k8s-bigip-ctlr/tree/main/user_guides/per-application-failover#readme
I believe this issue can be closed.
Title
Make the parameter "Host" an Array
Description
When having a 2-tier architecture, CIS has the role of the publishing the Ingress Controller (IC) running inside Kubernetes (like NGINX) and the IC has the role of routing the traffic to the application pods based on the Ingress rules. Usually you would publish the IC with the use 1 TransportServer CRD (or Ingresslink, VS).
If you want to use CIS ExternalDNS to publish the applications (lets assume 20 apps) that are running behind NGINX then you would need to have 20 EDNS CRDs that match 20 TransportServer CRD. Each transportServer needs to have different IP and different Host. Which means the relationship is 1-1.
Please see Mark Dittmer's example. https://github.com/mdditt2000/k8s-bigip-ctlr/tree/main/user_guides/externaldns-nginx
Actual Problem
The problem is that for publishing 20 application we need not only 20 EDNS CRDS but also 20 TS CRDS and 20 different IPs. This makes it very difficult to scale.
Solution Proposed
Instead of having 1-1 relationship between EDNS and TS/IngressLink/VS we can implement 1->many relationship. The integration between EDNS and TS is based on the Host Parameter. EDNS's Host parameter needs to match the TS Host parameter. If we change the Host parameter on TS to be an Array, then we could put many (100s) entries on a single TS CRD and EDNS needs to match any of them.
So for 20 applications we will have 20 EDNS CRDs and only 1 TS with 1 IP address
See an example below for IngressLink