Integrations
Cofide Connect integrates with other software and services in the Cloud Native ecosystem.
Istio is a popular and mature service mesh technology which supports integrating with SPIRE. In this mode SPIRE acts as the Certificate Authority (CA) for Istio, providing SVIDs to the Envoy proxies within the mesh. These proxies can then use the SVIDs for mutual TLS (mTLS) communication with other proxies or workloads. This allows workloads to reap the benefits of zero-trust security without needing to be SPIFFE-aware. Istio must currently be used in sidecar mode rather than Ambient mode until istio/istio#42339 is complete.
Istio Configuration
Section titled “Istio Configuration”When installing Istio for use with SPIRE, care must be taken to ensure that it is configured correctly.
Here is an example IstioOperator custom resource.
apiVersion: install.istio.io/v1alpha1kind: IstioOperatormetadata: namespace: istio-systemspec: profile: default meshConfig: trustDomain: local.domain caCertificates: - trustDomains: - other1.domain - other2.domain values: global: network: local.domain multiCluster: clusterName: local.cluster gateways: istio-ingressgateway: injectionTemplate: gateway sidecarInjectorWebhook: templates: spire: | spec: containers: - name: istio-proxy volumeMounts: - name: workload-socket mountPath: /run/secrets/workload-spiffe-uds readOnly: true volumes: - name: workload-socket csi: driver: "csi.spiffe.io" readOnly: true components: ingressGateways: - name: istio-eastwestgateway label: istio: eastwestgateway app: istio-eastwestgateway topology.istio.io/network: local.domain enabled: true k8s: env: - name: ISTIO_META_REQUESTED_NETWORK_VIEW value: local.domain service: ports: - name: status-port port: 15021 targetPort: 15021 - name: tls port: 15443 targetPort: 15443 - name: tls-istiod port: 15012 targetPort: 15012 - name: tls-webhook port: 15017 targetPort: 15017 - name: istio-ingressgateway enabled: true label: istio: ingressgateway topology.istio.io/network: local.domainIstio must be configured with the name of the local trust domain and Kubernetes cluster, in this example local.domain and local.cluster respectively.
Note that the local trust domain is referenced in several places.
Istio must also be configured with the names of any federated trust domains. Here we have other1.domain and other2.domain.
See the Istio documentation for further details.
This configuration provides a spire sidecar injector webhook template that can be used to provide the Istio sidecar access to the SPIRE workload API.
Pods make use of the template using an annotation:
metadata: labels: sidecar.istio.io/inject: "true" annotations: inject.istio.io/templates: "sidecar,spire" proxy.istio.io/config: | proxyMetadata: ISTIO_META_DNS_CAPTURE: "true" ISTIO_META_DNS_AUTO_ALLOCATE: "true"Alternatively, use the following in the IstioOperator custom resource to inject the SPIRE workload API to all pods by default:
spec: values: sidecarInjectorWebhook: defaultTemplates: - sidecar - spireGateways
Section titled “Gateways”The istio-eastwestgateway is used for federated services when the server and client are both running in Istio meshes.
The istio-ingressgateway is used for federated services when the server runs in an Istio mesh and the client runs in a non-Istio Kubernetes cluster.
Connect Configuration
Section titled “Connect Configuration”When creating a cluster resource in the Connect API in which Istio will be installed, set the cluster’s profile to istio. This will cause cofidectl to generate Helm values for SPIRE Agent that allow federation in an Istio environment.
Federated Services
Section titled “Federated Services”See Federated Services.
© 2026 Cofide Limited. All rights reserved.