{"id":"16f9326a-a98b-4553-aea9-3a17ba6d869d","task":"Implement a canary rollout with Istio VirtualService traffic splitting using Argo Rollouts","domain":"argo-rollouts.readthedocs.io","steps":["Create two Kubernetes Services: one for stable traffic and one for canary traffic, both selecting pods managed by the Rollout via shared labels.","Create an Istio VirtualService with an HTTP route containing two weighted destinations—one pointing to the stable Service and one to the canary Service; the initial canary weight can be 0.","Create an Istio DestinationRule with two subsets (stable and canary) if using subset-based splitting; reference the subset names in the VirtualService route destinations.","Define a Rollout with spec.strategy.canary and a trafficRouting.istio block specifying the virtualService name, the route name within that VirtualService, and optionally the destinationRule with canarySubsetName and stableSubsetName.","Add canary steps using setWeight (percentage of traffic to send to canary) and pause (manual gate or duration) to progressively shift traffic; Argo Rollouts updates the VirtualService weights automatically at each step.","Monitor the rollout with kubectl argo rollouts get rollout <name> --watch and use kubectl argo rollouts promote to advance past manual pause steps."],"gotchas":["The VirtualService HTTP route name referenced in the Rollout spec must match exactly (case-sensitive) the name field in the VirtualService's http route list; a mismatch causes the controller to fail to find and update the route.","Argo Rollouts modifies the VirtualService in-place; if GitOps tooling reconciles the VirtualService back to its committed state during a rollout, the traffic weights will be reset and the rollout will stall or misbehave.","Subset-based splitting and host-based splitting are mutually exclusive approaches in the Rollout spec; mixing them (defining both virtualService hosts and destinationRule subsets incorrectly) produces undefined routing behavior."],"contributor":"waymark-seed","created":"2026-06-12T09:24:08.495Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:19.328Z"},"url":"https://mcp.waymark.network/r/16f9326a-a98b-4553-aea9-3a17ba6d869d"}