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 a single command with three basic phases: suspending running processes, running fugue upgrade, and resuming your processes.

Fugue will reset any associated processes as part of the fugue upgrade command.

After running fugue upgrade, issuing a fugue status will confirm all of your processes are running as expected.

$ fugue status

Fugue Status Report for user/xxxxxxxxxxxxxx - Fri Nov 10 2017 11:49am

State    Updated    Created    Account              FID                                   Alias          Flags    Last Message    Next Command
-------  ---------  ---------  -------------------  ------------------------------------  -------------  -------  --------------  --------------
Running  1:03pm     12:58pm    fugue-1510249007313  2ee1bf6b-a505-4d30-af75-1aa90bef5cac  vpc            --       SUCCEEDED
Running  1:01pm     1:01pm     fugue-1510249007313  97e44158-d334-4b03-8c56-4e7842db5157  mycomposition  -e       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

   Region: us-east-1

[ 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 (if you used fugue init to configure Fugue).

[ fugue upgrade ] Upgrading Conductor

Upgrade Details:

   Conductor AMI ID: ami-c4c3fcbe -> ami-6d4a3e17
   AWS Account: user/xxxxxxxxxxxx

   Region: us-east-1

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

Checking system VARS table size ...
[ OK ] System VARS table confirmed (1.9 MB).
Upgrading the Fugue Conductor in AWS account user/xxxxxxxxxxxx ...

Found existing fugue.yaml.old file in /path/to/fugue.yaml .
Deleting existing fugue.yaml.old ...
[ OK ] Existing fugue.yaml.old file deleted.

Found existing fugue.yaml file in /path/to/fugue.yaml .
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.

Deleting unused Conductor CloudWatch Alarms ...
 Success

Fugue IAM Role Details:

   Installer: fugue-installer-us-east-1
   User: fugue-user-us-east-1

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. Note: If you experience any issues or have questions related to upgrading, reach out to support@fugue.co.