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 email@example.com.
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 (firstname.lastname@example.org) 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.
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
fugue [global options] upgrade [options]
Global options are detailed here.
- Specify the AMI to upgrade to.
- Specify the Conductor type to use:
- Suppress confirmation dialogs. The yes flag suppresses confirmation dialogs and bypasses interactive prompts by providing input to aid scripting.
- Ignore the state of the Conductor or CloudFormation stack.
- Show help text. The help flag is available throughout the CLI in both an application-level and command-level context. It enables a user to view help text for any command within the Fugue CLI.
upgrade command upgrades the Fugue Conductor. If the
--ami id option is specified, Fugue upgrades to that Conductor AMI.
If no AMI ID is provided, Fugue determines the AMI for you, selecting a
Conductor based on your account status, either the paid version of
Fugue or the version available with
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
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 email@example.com and include the AMI
upgrade executes in several phases. First, the Fugue CLI asks AWS to
upgrade Fugue in the AWS account associated with the credentials
Note: We strongly recommend running
fugue suspend on any
existing processes prior to running
fugue upgrade to avoid
introducing issues into any existing infrastructure.
[ fugue upgrade ] Upgrading Conductor [ WARN ] Are you sure you want to upgrade the Conductor in the AWS Account user/xxxxxxxxxxxx? [y/N]: y Checking availability and validity of ami-6e274e79 ... [ OK ] AMI ID is valid and available. Upgrading the Fugue Conductor in AWS account user/xxxxxxxxxxxx ... 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.
Next, Fugue updates the autoscaling group’s launch configuration in the Conductor’s CloudFormation stack with the specified AMI ID.
Fugue then terminates the old Conductor instance, activating the autoscaling group, which launches a new Conductor EC2 instance using the updated launch configuration. As the required resources are created, the CLI displays the upgrade progress.
As part of this upgrade process,
fugue upgrade also renames and
replaces your existing
fugue.yaml file. If a
fugue.yaml.old both exist the current
fugue.yaml.old file is
deleted and the existing
fugue.yaml is renamed.
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.
When installation is complete, the CLI asks the user to wait while the Conductor boots up.
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...
When booting is complete, the CLI states that Fugue is ready to receive commands again.
[ DONE ] Fugue has been successfully upgraded and is ready to receive commands.
Changing the System Vars DDB Table During Upgrade¶
Changing your Vars table can have severe consequences, including dropping your entire dataset. Do not change your Vars table unless you have been instructed to do so by Fugue Support.
The default DynamoDB table that Vars uses for key/value storage
fugue-vars-headless-store. This is where Fugue stores internal
data related to running the Conductor. To use a different table, you can
specify the new table name in
fugue.yaml prior to installing or
upgrading Fugue. Note: The new table name must begin with
When pointing Vars to a new table, there is no automatic data migration. This means that a newly booted Conductor will act like a fresh install, and any existing infrastructure will no longer be enforced, cleaned up, or even seen by the Conductor.
To change the table name prior to upgrading Fugue, first edit
fugue.yaml to add the
block, including the desired name of the DynamoDB table. Your
fugue.yaml may look like this (minus the
conductor: ami: ami-491bbb5f region: us-east-1 experimental: varsSystemTable: fugue-vars-headless-store-v2
Second, turn on the
FUGUE_CLI_PREVIEW flag. This flag is required
for enabling experimental configuration.
upgrade. If you don’t actually intend to upgrade
the Conductor AMI, use the
--ami option to specify the same AMI ID
found in your
fugue upgrade --ami ami-491bbb5f
(If you do wish to upgrade the Conductor AMI while changing the Vars
table name, simply run
fugue upgrade, and the CLI will determine
which AMI ID you need.)
You’ll see output like this:
[ fugue upgrade ] Upgrading Conductor Upgrade Details: Conductor AMI ID: ami-491bbb5f Conductor Vars Table: fugue-vars-headless-store -> fugue-vars-headless-store-v2 AWS Account: user/xxxxxxxxxxxx Region: us-east-1 [ WARN ] Would you like to proceed with upgrading? [y/N]:
Ensure that the Conductor Vars Table details are correct, and enter
y. The CLI will create the new DynamoDB table for Vars.
Upgrading When Vars DDB Table is >3G¶
If you execute
fugue upgrade and your
Vars DynamoDB table is larger than 3GB, you’ll see output instructing
you to contact Fugue Support (firstname.lastname@example.org):
[ fugue upgrade ] Upgrading Conductor Upgrade Details: Conductor AMI ID: ami-30e16551 AWS Account: main-user/xxxxxxxxxxxx Checking availability and validity of ami-30e16551 ... [ OK ] AMI ID is valid and available. Checking system VARS table size ... [ WARN ] System VARS table size is too large to guarantee a smooth migration (50 GB). Please reach out to email@example.com before proceeding. [ WARN ] Are you sure you want to proceed with upgrading? [y/N]:
You may enter
y at the prompt to proceed with upgrading on your own.
You may also use
fugue upgrade --force to bypass the confirmation
prompt. However, we strongly recommend that you reach out to
firstname.lastname@example.org first. Without compaction, upgrading a Conductor with a
large Vars DDB table can take a very long time, and in certain
situations, the upgrade could fail.