Running Speedscale in a cluster with Istio installed requires a few extra steps
The Istio Service Mesh modifies a cluster and manages traffic routing. Istio is supported by Speedscale but requires a few extra steps. When running alongside Istio, the Speedscale sidecar adds an additional component called an Envoy Filter. Running as an Envoy Filter has a number of advantages including lower overhead and configurability through Envoy.
Configuration Sidecar for Recording
1. Set sidecar captureMode=istio
On your Kubernetes workload, add the following annotations
along with any other sidecar annotations.
This will let the Speedscale operator know to patch the sidecar including a WebAssembly Envoy filter.
2. Add speedscale sidecar egress
If the istio sidecar has a custom configuration, ensure that the
speedscale namespace is on the egress list. This step is not necessary if you do not have a custom sidecar configuration. Here is an example from the Istio docs:
3. Ensure VirtualService contains host
If your service is accessible both outside and inside the cluster, make sure the Istio
VirtualService contains the same host. Take a look at the Istio documentation for more information.
Istio allows for numerous different networking configuration options. Please take a look at the Istio documentation or reach out to Speedscale directly for more information.