Upgrading Fugue

If you have determined that you need to upgrade your Fugue Conductor, the fugue upgrade command allows you to specify a target AMI ID or let Fugue select an AMI for you and complete this process.

To review information about the upgrade command refer to the CLI Reference for details about usage, options, and definition.

Warning

You must upgrade your Fugue client prior to issuing an upgrade for your Fugue Conductor. A mismatched client and Conductor can present unwanted issues. For any questions contact support@fugue.co.

Warning

When upgrading Fugue from a previous release, if your fugue-vars-headless-store DynamoDB table is larger than 3GB, you will see a message to contact Fugue Support (support@fugue.co) to help you compact the table. This process will ensure you have a successful upgrade.

If you wish to continue the upgrade on your own, you may enter y at the prompt. You may also use the fugue upgrade --force option to bypass the confirmation. However, we recommend that you contact Fugue Support first.

Note

If you’ve attached an RBAC policy to your Conductor prior to upgrading it, you may need to re-attach it after upgrade is complete. See Troubleshooting for more details.

Technical Details

When upgrading your Fugue Conductor the process consists of three basic phases: suspending running processes, running fugue upgrade, and resuming your processes.

Failure to run fugue suspend on any processes prior to upgrading is likely to result in errors. By manually suspending any running processes Fugue ensures that your upgrade runs smoothly and all of your declared infrastructure is maintained with the least possible disruption. After completing fugue upgrade you can run fugue resume <process> --dry-run to ensure that resuming your processes won’t result in anything unexpected.

Identify and Suspend Your Processes

First, use fugue status to display and verify your running processes. After identifying any processes that are active, run fugue suspend for each process via FID or alias.

Run Fugue Upgrade

After confirming with fugue status that your processes are all in a suspended state, you can run fugue upgrade to launch the upgrade process.

$ fugue status

Fugue Status Report for user/xxxxxxxxxxx - Wed Sep 28 2016 11:40am

State    Updated    Created    Account              FID                                   Alias    Last Message    Next Command
-------  ---------  ---------  -------------------  ------------------------------------  -------  --------------  --------------
Running  11:40am    11:40am    fugue-1505320402664  f3a71407-073a-4a45-9da3-1a44b1821845           SUCCEEDED

$ fugue suspend f3a71407-073a-4a45-9da3-1a44b1821845
[ fugue suspend ] Suspending process with FID: f3a71407-073a-4a45-9da3-1a44b1821845

[ WARN ] Are you sure you want to suspend the process with FID: f3a71407-073a-4a45-9da3-1a44b1821845 ? [y/N]: y

Requesting the Conductor to suspend process ...
[ DONE ] Process with FID: f3a71407-073a-4a45-9da3-1a44b1821845 is being suspended.

[ HELP ] Run the 'fugue status' command to view details and status of this process suspension.
$ fugue status

Fugue Status Report for user/xxxxxxxxxxx - Wed Sep 28 2016 11:41am

State      Updated    Created    Account              FID                                   Alias    Last Message    Next Command
---------  ---------  ---------  -------------------  ------------------------------------  -------  --------------  --------------
Suspended  11:40am    11:40am    fugue-1505320402664  f3a71407-073a-4a45-9da3-1a44b1821845           SUCCEEDED

Items to note:

  • Fugue supports the upgrade command for any Conductor AMI ID. This lack of restriction is deliberate, while the majority of upgrades, are in fact to upgrade to a newer AMI ID, fugue upgrade allows you the flexibility to revert to a previous AMI ID, if needed.

Warning

While the upgrade command technically allows upgrades from any valid Conductor AMI ID to any other valid Conductor AMI ID, only upgrades between consecutive versions of the Conductor (from n-1 to n or vice versa) are tested and supported. If you are unsure whether your current Conductor’s AMI ID and the target Conductor’s AMI ID represent consecutive versions, reach out to support@fugue.co and include the AMI IDs.

  • If you select the AMI ID that is currently installed, Fugue notifies you that no upgrade is required.
$ fugue upgrade --ami ami-6e274e79
[ fugue upgrade ] Upgrading Conductor

Upgrade Details:

   Conductor AMI ID: ami-6e274e79
   AWS Account: user/xxxxxxxxxxx

[ WARN ] Would you like to proceed with upgrading? [y/N]: y
Checking availability and validity of ami-6e274e79 ...
[ DONE ] The Conductor AMI ID is already ami-6e274e79. Nothing to be done.
  • You may use fugue upgrade --ami <ami_id> to specify an AMI ID. If you don’t have an AMI ID in mind, execute fugue upgrade and Fugue will determine the AMI ID for you.

After securing a valid Conductor AMI ID, Fugue executes the upgrade, terminates the old Conductor instance, activates the autoscaling group, and renames and replaces your fugue.yaml.

$ fugue upgrade --ami ami-e0364df7
[ fugue upgrade ] Upgrading Conductor

Upgrade Details:

   Conductor AMI ID: ami-e0364df7
   AWS Account: user/xxxxxxxxxxx

[ WARN ] Would you like to proceed with upgrading? [y/N]: y
Checking availability and validity of ami-e0364df7 ...
[ OK ] AMI ID is valid and available.

Upgrading the Fugue Conductor in AWS account user/xxxxxxxxxxx ...

Found existing fugue.yaml.old file in /Users/user/test-fugue .
Deleting existing fugue.yaml.old ...
[ OK ] Existing fugue.yaml.old file deleted.

Found existing fugue.yaml file in /Users/user/test-fugue .
Renaming existing fugue.yaml file to fugue.yaml.old ...
[ OK ] Existing fugue.yaml file renamed.

[ HELP ] Exiting the upgrade command while in progress (CTRL+C) will only stop progress tracking and *not* the upgrade itself.

Creating new Launch Configuration ...
[ OK ] Launch Configuration created with new AMI.

Updating Conductor Autoscaling Group ...
[ OK ] Autoscaling Group updated.

Requesting AWS to terminate the old Conductor instance ...
[ OK ] AWS is terminating old instance.

Installing new Conductor ...
[ OK ] New Conductor installed.

Booting the Conductor, please wait as this may take between 5-15 minutes...
[ DONE ] Fugue has been successfully installed and is ready to receive commands.

When the upgrade is complete, the CLI asks the user to wait while the Conductor boots up.

Resume Processes

After successfully upgrading, if you run the fugue status command you should see your processes listed in the ‘Suspended’ state. Use fugue resume <process> --dry-run to ensure that resuming your processes won’t result in anything unexpected, or simply run fugue resume command to restart those processes and complete your upgrade.

$ fugue status

Fugue Status Report for user/xxxxxxxxxxx - Wed Sep 28 2016 11:54am

State      Updated    Created    Account              FID                                   Alias    Last Message    Next Command
---------  ---------  ---------  -------------------  ------------------------------------  -------  --------------  --------------
Suspended  11:40am    11:40am    fugue-1505320402664  f3a71407-073a-4a45-9da3-1a44b1821845           SUCCEEDED

$ fugue resume f3a71407-073a-4a45-9da3-1a44b1821845
[ fugue resume ] Resuming process with FID: f3a71407-073a-4a45-9da3-1a44b1821845

[ WARN ] Are you sure you want to resume the process with FID: f3a71407-073a-4a45-9da3-1a44b1821845 ? [y/N]: y

Requesting the Conductor to resume process ...
[ DONE ] Process with FID: f3a71407-073a-4a45-9da3-1a44b1821845 is being resumed.

[ HELP ] Run the 'fugue status' command to view details and status of this process resume.
$ fugue status

Fugue Status Report for user/xxxxxxxxxxx - Wed Sep 28 2016 11:54am

State    Updated    Created    Account              FID                                   Alias    Last Message    Next Command
-------  ---------  ---------  -------------------  ------------------------------------  -------  --------------  --------------
Running  11:54am    11:40am    fugue-1505320402664  f3a71407-073a-4a45-9da3-1a44b1821845           SUCCEEDED

Note: If you experience any issues or have questions related to upgrading, reach out to support@fugue.co.