You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am running a service in a Kubernetes cluster and implementing Canary deployment using Argo CD and Argo Rollouts.As per the documentation, there are two ways to migrate to a Canary deployment from a Kubernetes Deployment:
Convert an existing Deployment resource to a Rollout resource.
Reference an existing Deployment from a Rollout using the workloadRef field.
I chose the second option (workloadRef) for its reliability. Below are the specifications for my Rollout, VirtualService, and DestinationRule:
As a result, all traffic is immediately routed to the new pods, which require at least 120 seconds to become healthy. This leads to service unavailability during the rollout.
Expected Behavior
The stable subset in the DestinationRule should point to the old ReplicaSet (existing Deployment).
The canary subset in the DestinationRule should point to the new ReplicaSet created by the Rollout.
Traffic should only be routed to canary once the pods are healthy.
I am running a service in a Kubernetes cluster and implementing Canary deployment using Argo CD and Argo Rollouts.As per the documentation, there are two ways to migrate to a Canary deployment from a Kubernetes Deployment:
I chose the second option (workloadRef) for its reliability. Below are the specifications for my Rollout, VirtualService, and DestinationRule:
Rollout Specification:
VirtualService Specification:
DestinationRule Specification:
The Problem
When I apply the above specifications:
DestinationRule
subsets are immediately updated to include the labelrollouts-pod-template-hash
for both stable and canary.stable
andcanary
) end up with the same rollouts-pod-template-hash value, which corresponds to the newly created ReplicaSet.As a result, all traffic is immediately routed to the new pods, which require at least 120 seconds to become healthy. This leads to service unavailability during the rollout.
Expected Behavior
stable
subset in theDestinationRule
should point to the old ReplicaSet (existing Deployment).canary
subset in theDestinationRule
should point to the new ReplicaSet created by the Rollout.canary
once the pods are healthy.Environment
Argo Rollouts version: 1.7.2
Istio version: 1.19
Kubernetes version: 1.30
Steps to Reproduce
workloadRef
field, VirtualService, and DestinationRule as shown above.DestinationRule
subsets immediately after the Rollout creates a new ReplicaSet.Request for Assistance
How can I ensure that:
The text was updated successfully, but these errors were encountered: