Istio operator with custom gateways


I’m already using istio installed using helm and I am looking to move forward to using the operator.

At the moment, the operator installs different components (pilot, citadel, mixer, etc.) based on a CR IstioControlPlane and manages the reconciliation. But I think it needs more flexibility when it comes to gateways - now it only supports an ingress and an egress gateway-controller deployment.
I feel like for this part there should be a different CR (maybe IstioGatewayController) to manage a deployment for a specific istio-gateway-controller.

kind: IstioGatewayController
   name: my-demo-project-ingress
   namespace: demo
  resources: ...
  ports: ...

In my use case, each namespace is used by a project (or a team) and I would like to be able to create one or more instances of ingress-controller in each one. I think this way we have a better separation of concerns for every project and it comes with many more advantages.

Is there a way to use the current operator implementation in my scenario? Or are there any plans to improve in this direction?

Thank you!

PS: I’m not sure if I should have posted it here instead

Hi, we are planning to change the operator API a bit in 1.5 to fully support user gateways - unfortunately this didn’t make in time to go into 1.4. But we’ve also realized that there’s not any especially convenient workaround till then (you have to copy and paste a bunch of YAML and basically create your own gateway that way). To address that, we’re going to put in a small workaround which should make it fairly easy to generate and add your own gateways. This should be out in a couple of days in 1.4.1 along with the docs.

Thank you for your answer. Are these future changes to the operator API documented anywhere? I would like to know how they would in fit my use case.

They’ll show up in istio/api shortly - I’ll make a note to update this thread when they are merged.

1 Like