argo-rollouts icon indicating copy to clipboard operation
argo-rollouts copied to clipboard

Argo Rollouts doesn't support gracefully draining connections?

Open clayvan opened this issue 6 months ago • 0 comments

Describe the bug

I believe that Argo Rollouts does not play well with long lived connections like websockets. I don't believe it's Argo Rollouts fault, but just due to the nature of using label selectors with Kubernetes Services. I want to make sure I'm not missing something, but I believe that as soon as a Rollout promotes that canary to stable, and the Service endpoints change, existing connections are immediately terminated. If Rollouts does not have a way around this (even if it requires something like Istio), then I believe it should at least be documented that websockets will not be gracefully drained.

To Reproduce

  1. Establish a websocket to your pod
  2. Begin a rollout and promote full
  3. Once the promotion completes, the websocket will be killed PRIOR to the previous release pods being terminated.

Expected behavior

Expectation: Although any NEW connections should be sent to the new release, existing connections should persist and terminated gracefully as the pod enters a terminating state.

Outcome: my existing connection is terminated when the pod I'm connecting to is removed from the endpoint


Message from the maintainers:

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

clayvan avatar Aug 01 '24 16:08 clayvan