-
Notifications
You must be signed in to change notification settings - Fork 913
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support multiple services to be managed by a rollout #451
Comments
My situation is that many apps support different protocols on different ports and they have different Services for this. When I do a rollout, I would like all of the relevant services to be part of the rollout. (Using Istio). |
Thanks for the second use-case, I'll expand the scope of this to include the canary strategy. |
@jessesuen : Greetings! Is the feature now available to have multiple services rollout in one deployment? We have a deployment where we have multiple services (external - node port) and internal (cluster-ip), mapped to one deployment. We are looking out at using the argo based rollouts (blue-green) to enable that. |
Hi, @jessesuen , I can take over this one as we march to v1.2. Implementation wise, we may update the rollout CRD with the following additional fields: activeServices:
- rollout-bluegreen-active-1
- rollout-bluegreen-active-2
previewServices:
- rollout-bluegreen-preview-1
- rollout-bluegreen-preview-2 We keep the |
While I think the spec you are proposing is ideal, I do want to call out some complications with the implementation. There is quite a bit of the blue-green code which is currently assuming a single activeService, and the controller is examining the Service as the source of truth to infer what stage it is in during blue-green update. But by switching to a list of services, the source of truth could become inconsistent (e.g. if we crash after updating only some of the services). I think it is worth trying this approach, but in terms of implementation, and in order to reduce risky changes to the controller, we may have to pick one of the services (e.g. the first one), to act as the primary source of truth, and the rest of the services should always follow that definition. |
To add another use case for this, we have to split our HTTP and gRPC traffic from Traefik to our applications so we can use the |
This issue is stale because it has been open 60 days with no activity. |
I have Service A and B pointing to a Deployment D. I want to convert Deployment D into an Argo Rollout but I cannot because Rollout right now supports only one
activeService
under blue green strategy.https://argoproj.github.io/argo-rollouts/features/bluegreen/
The text was updated successfully, but these errors were encountered: