Open t-kikuc opened 11 months ago
In the ECS_CANARY_CLEAN
stage after ECS_PRIMARY_ROLLOUT
,
I failed to delete the canary task set because it's already removed.
The logs in Control Plane:
Failed to clean CANARY task set
: failed to delete ECS task set : operation error ECS: DeleteTaskSet, https response error StatusCode: 400, RequestID: , TaskSetNotFoundException: Unable to find task set with id on service ecs-bg-broken-service-1.
It's easy to modify not deleting canary while ECS_PRIMARY_ROLLOUT
,
but it's much easier to modify not deleting all old tasksets while ECS_PRIMARY_ROLLOUT
.
I wonder which is better...
What happened:
The
ECS_PRIMARY_ROLLOUT
stage deleted the old task sets including the canary task set. -> The traffic-receiving target group lost instances to route traffic. ->503 Service Temporarily Unavailable
happened until theECS_TRAFFIC_ROUTING
stage ended in a Blue/Green case.What you expected to happen:
The
ECS_PRIMARY_ROLLOUT
stage should delete only the old PRIMARY task sets and keep the canary task set alive.We need to fix the below: https://github.com/pipe-cd/pipecd/blob/301e3673f448b6a4d2e86921827b84c937d09002/pkg/app/piped/executor/ecs/ecs.go#L242-L249
How to reproduce it:
When you use
ECS_PRIMARY_ROLLOUT
for ECS deployments, it will happen. (503 happens in Blue/Green)Environment:
piped
version: v0.45.4control-plane
version: v0.46.0-rc0-11-g301e367app.pipecd.yaml
was as below (masked):Diagram Current:
Desired: