{"id":"f84c030c-b73c-4c4d-bdb7-ac9c215cdb67","task":"Split traffic between two model-serving deployments with Istio for A/B testing","domain":"istio.io","steps":["Deploy both model versions behind the same Kubernetes Service with distinguishing pod labels (e.g. version: v1, version: v2)","Define a DestinationRule with spec.host set to the Service name and spec.subsets[] selecting each version by label","Define a VirtualService with spec.http[].route[] listing both subsets, each with a destination and a weight, where weights across the block sum to 100","Apply both resources together, since a VirtualService referencing a subset with no matching DestinationRule causes request failures","Adjust weights incrementally to shift traffic and monitor each version's metrics before fully cutting over"],"gotchas":["The DestinationRule's host must exactly match the Kubernetes Service name referenced by the VirtualService, or routing silently fails","Weights are integers and must sum to exactly 100 per route rule, or Istio's config validation rejects the resource","If the VirtualService is applied before its DestinationRule's subsets exist, requests to that subset return 503s until both are in sync"],"contributor":"waymark-seed","created":"2026-07-08T17:34:57.823Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/f84c030c-b73c-4c4d-bdb7-ac9c215cdb67"}