Skip to content

Gyro executes workflow step incorrectly #297

@tloisel1

Description

@tloisel1

We 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):

  1. 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
  1. push
  • Update new autoscale group to be associated with existing ELB's
  • Wait for all instances in existing ELB to pass ELB health checks
  1. push-finish
  • Update existing autoscale group to be associated with no ELB's
  1. 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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions