Gyro executes workflow step incorrectly
See original GitHub issueWe have a multi-step deployment workflow configured in Gyro. The result of which is the replacement of an AWS Launch Configuration and AWS autoscale group through a blue-green deployment. One a specific step, our configuration states to update the old autoscale group. Gyro interprets this step as a replace
instead of an update
, but skips it.
The workflow stages are as follows (existing
resources are defined outside workflow, and new
resources are created within workflow):
verify
- Create new ELB for new autoscale group
- Create new Route53 record that points to new ELB
- Create new Launch Configuration
- Create new autoscale group and associate with new ELB
- Wait for all instances in new ELB to pass ELB health checks
push
- Update new autoscale group to be associated with existing ELB’s
- Wait for all instances in existing ELB to pass ELB health checks
push-finish
- Update existing autoscale group to be associated with no ELB’s
finished
- Replace existing Launch Configuration with new Launch Configuration
- Replace existing Autoscale Group with new Autoscale Group
- Delete new Route53 Entry
- Delete new ELB
The problem occurs at the push-finish
step where our configs state that the existing autoscale group should be associated with no ELBs.
@workflow::update $(aws::autoscaling-group frontend)
classic-load-balancers: [ ]
@end
Instead, Gyro tries to execute a replace
⇅ Replacing aws::autoscaling-group frontend (ops-test-gyro frontend prod v1 ami-016734320d897e0ea builds/deploy/master 2 fecf06351572fbc59fc869e15f43700d)
· classic-load-balancers: - aws::load-balancer cms, - aws::load-balancer frontend
· name: 'ops-test-gyro frontend prod v1 ami-016734320d897e0ea builds/deploy/master 2 fecf06351572fbc59fc869e15f43700d' → 'ops-test-gyro frontend prod v1 ami-016734320d897e0ea builds/deploy/master 1 7090a1cdf6a0dfc32b447185bff20dbe'
· tags: ⟳ { Name: 'ops-test-gyro frontend prod v1 ami-016734320d897e0ea builds/deploy/master 2 fecf06351572fbc59fc869e15f43700d' → 'ops-test-gyro frontend prod v1 ami-016734320d897e0ea builds/deploy/master 1 7090a1cdf6a0dfc32b447185bff20dbe' }
SKIPPED
This leaves both the existing and new autoscale groups associated with the existing ELB. We expect only the new autoscale group to be associated with the existing ELB.
Gyro should execute the update command instead of the replace at this point.
Issue Analytics
- State:
- Created 3 years ago
- Comments:8 (8 by maintainers)
Top GitHub Comments
@deepanjan90 Please ignore #300 for now.
Fix in https://github.com/perfectsense/gyro/pull/303 worked with some adjustments to my workflow configuration