Upgrade Instructions

Upgrading the Genvid SDK from one version to another may include some manual steps. This page includes any steps required to update to version 1.14.0 from the last version. If you’re upgrading an older version of the SDK, start with any special upgrade instructions for your version found here.

Upgrading the local installation

Warning

Genvid SDK 1.14.0 contains a new version of Consul. This new version requires special care to upgrade from the previous version. Please follow the instructions under Upgrade Bastion before continuing.

To set up the new SDK locally:

  1. Install the new SDK.
  2. Run the script install-toolbox.py from the new SDK.
  3. Run genvid-bastion reinstall -b mybastion -uml to update your bastion.

Updating your game

To update your game without applying new features, just replace the old genvid.dll from the previous SDK with the one from the new SDK. The old plugins and integration should work as-is, with the exception of the specific upgrade instructions below.

Attention

Always follow the full upgrade path for the Genvid SDK version you’re using. For example: If you’re upgrading from version 1.6.0 to 1.10.0, start by upgrading from 1.6.0 to 1.7.0 then continue with each version.

See the full list of upgrade instructions for your specific version.

Upgrading your cluster

We strongly recommend keeping your old clusters as-is and creating a new one for the update.

To create a new cluster, follow the standard instructions:

  1. Set up a new wingame AMI that matches the new version.
  2. Create new clusters.

Once you have replaced all your clusters, you can remove the old SDK repositories from the Modules Section page.

Upgrading an existing cluster

Warning

Upgrading your cluster can replace all your instances and even erase your current configuration. We recommend not upgrading a live cluster. If you do, carefully check the changes before applying the plan.

You can update the module used to build your cluster by clicking on Modify/Reimport Module in the module section of your cluster infrastructure, then select the module new version and import it. Finally, click apply in the Terraform section.

Note

Some changes can take time to propagate to AWS. This is especially true for IAM roles and policies, which could then create some conflicts when recreated. Re-applying the Terraform plan should fix the problem.

Upgrade from 1.13.0 to 1.14.0

Warning

1.14.0 ships with a version of Consul incompatible with the previous one. You must follow the upgrade procedure if you want to preserve the information in your current bastion.

Upgrade Bastion

This version of the SDK includes a new version of Consul, bringing more stability to the stack and the bastion. To upgrade your old bastion to the new one, do the following instructions with a running bastion.

Note

If you just want to upgrade without keeping anything, you can run genvid-bastion reinstall -c. This will clean your old config and install the new services.

  1. Create a backup.

    genvid-bastion now contains some limited backup functionality. To upgrade your bastion, ensure your bastion is still running under the old SDK and create a backup.

    Ensure the bastion is running with the old SDK:

    Old SDK> py install-toolbox.py
    Old SDK> genvid-bastion install

    Then switch to the new SDK:

    New SDK> py install-toolbox.py
    New SDK> genvid-bastion backup backup.zip

    This will create a minimal backup under backup.zip

  2. Reinstall Bastion with the new SDK.

    New SDK> genvid-bastion reinstall -uml -b mybastion --backup backup.zip

    The backup.zip is the backup file created at the previous step. The new version of bastion requires a Bastion ID. The -b will set your bastion ID after the bastion is updated.

  3. Re-initialize your clusters.

    If you have any clusters running, you need to reinitialize them.

    New SDK> genvid-clusters terraform-init --all

Bastion now requires an ID to be set

The Bastion must now have a valid ID defined. To set the ID of a running bastion, use the Bastion UI Settings Page or the following command:

genvid-clusters global-update mybastion

You can also specify it during installation:

genvid-bastion install -b mybastion -uml

The Bastion ID must:
  • Be between 3 and 32 characters.
  • Only contain lowercase letters, numbers or hyphens.
  • Start with a letter.

The Bastion Global source and instanceID parameters have been deprecated

If you were using one, we suggest you to switch to a custom Cluster instead.

Artifacts images are now uploaded to a single bucket by bastion

Images are now uploaded to a bucket common to the bastion by default. The default bucket is AWS Account ID-Bastion ID. The SDK images will be saved under /images/SDK-version while other images (like the samples) will be saved under /images/custom.

Nothing is required for update (the configuration is updated accordingly) unless you are directly referring to those paths in your template jobs or other places.

Related to this change, the terraform module genvid/aws has lost its images_bucket variable. The variable wasn’t used anymore but be sure to update your module definition if you were referring to it.

New Terraform workflow in Bastion UI

The proper Terraform workflow is now enforced by the Bastion UI: The apply button now applies the plan that has been previously validated by the user. You can no longer apply an auto-approved infrastructure. Same goes for the destroy operation.

Terraform Modules are now more configurable and composable

Since Terraform Modules have been reworked entirely, we recommend creating new clusters using the SDK 1.14/basic/cluster configuration instead of trying to upgrade an existing cluster in the cloud to the new Terraform modules.

One less obvious change is the game_az setting is now called force_az and must be written out entirely.

For example:

game_az = "b"
region = "us-east-1"

becomes

force_az = "us-east-1b"
region = "us-east-1" // Same as before.