M:N Routing with thousands of domains



I have an ingress/routing question, I’m not sure if Istio has an answer for me, or if I need to build my own service (possibly on top of envoy) to get the features I need.

I have a deployment setup currently (non Kube, non mesh) where users select a subdomain, and while all the subdomains generally point to the same backend service, it’s possible to do canary-ish deployments where we roll forward some subset of subdomains (which I choose, not at random) to a new version of the service.

Sometimes I can have 3 or more versions of the service in operation with different distinct subsets of the subdomains pointing to different versions of the service.

At some point, I will roll all subdomains to the latest-greatest version and start again in an M-to-1 routing world.

New subdomains are added very frequently, and generally would be routed by default to a “default” (baseline) version of the service.

I imagine I could achieve this with frequent updates to Istio routing rules, but I have the feeling this might not be an expected use case.

I’d also like to be able to query the current state of the routing table.

Does this sound like something I should solve at the Istio layer, or is this a service on its own?