Skip to content

Downtime On initial deployment using Istio destination rule #2507

@dearboll23

Description

@dearboll23

Checklist:

  • I've included steps to reproduce the bug.
  • I've included the version of argo rollouts.

Describe the bug
When we initialized rollout for a deployment with Istio traffic routing, we found rollout controller created a new RS from the current RS template with a new label key named 'rollouts-pod-template-hash', and the controller update Istio DR with the label immediately without considering whether the new RS is available or not. This leads 503 http error, no healthy upstreams.

To Reproduce

  1. create virtualservice & destinationrule resources as this.
  2. create rollout resource following the migration doc
  3. While creating the rollout resource, the rollout controller will create a RS for it ,and immediately update the Istio Destination Rule and Virtual Service resource, which leading no healthy upstream error because the the RS is not ready for traffic.

Expected behavior
The rollout controller shift the traffic to rollout's RS while the RS is available.

Version
argo-rollouts: v1.2.2

Could we add some determine statements to ensure the new RS is available before updating the Istio DR, which is the same like ensureSVCTarget does?


Message from the maintainers:

Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions