Upgrade from Previous Versions

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.25.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.

General Upgrade Instructions

Upgrade the Genvid SDK

To set up the new SDK locally:

  1. Install the new SDK.

  2. Run the Python script to install the Genvid Toolbox.

    py install-toolbox.py
    
  3. Run the Genvid Bastion script to update your bastion.

    genvid-bastion reinstall --reconfigure -b {mybastion} -uml
    

Update Your Broadcast Website

If you used code from the samples we provide in your own project, note that we recently enforced a best practice concerning service discovery using consul in those samples. You should check again the samples and update your project accordingly. We invite you to use the consul health api instead of the catalog api to fetch the url of your services, since it is more likely that the url will point to a healthy service.

Update 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.

Upgrade the Javascript API

You should also upgrade the Genvid JavaScript API on your website.

Update Your Cluster

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

To create a new cloud-based cluster, follow the standard instructions:

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

To create a new local cluster, follow the standard instructions listed in the Initialize a Local Cluster section.

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

Updating an Existing Cluster

Warning

Updating your cluster can replace all your instances and even erase your current configuration. We recommend not updating 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 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.

Update Genvid SDK Samples

Along with your own project, make sure you update any of the Genvid SDK samples you’ve previously installed.

Upgrade from 1.24.0 to 1.25.0

Studio is now a service.

Studio is now part of the services job and no longer a sample. When you start the services job in the Cluster UI, studioD will start along with the other services.

The Studio service is deactivated by default – there is an option to enable it in the Cluster UI settings. You also need to enable the composition functions and the show monitor option.

You can also make these modifications using a HCL file that you load on your local cluster.

genvid-sdk load-config myhclfile.hcl

Or a cloud cluster:

genvid-sdk -c $mycluster load-config myhclfile.hcl

You can find an example of a configuration file in the Studio documentation.

After loading the configuration:

  1. Go to the Jobs page.

  2. Click Start All.

  3. Wait for the Studio link to become enabled.

  4. Click the Studio link to go to the Studio UI.

Default version of Python now 3.8.

We are now using Python 3.8 as the default version of Python for the Genvid SDK. Note that version 3.8 can be installed in parallel with 3.5.

The toolbox is still compatible with Python 3.5 for Genvid SDK 1.25.0 and you can use 3.5 for local development and AWS environments. However, version 3.8 is required to work with Azure environments. We recommend converting to 3.8 as this might be required in our future releases.

You can still use Python 3.5 by calling py -3.5 or using a 3.5 virtual environment.

To upgrade a Python 3.5 virtual environment to 3.8, run the following command:

py -3.8 venv --upgrade <venv folder>

Local drive clusters now encrypted by default.

New clusters created with 1.25.0 are now locally encrypted by default. To avoid data loss when upgrading from a prior version, you should disable local drive encryption by setting use_drive_encryption to false. See Terraform Settings for more information.

AWS Variable Name Changes

We renamed the following Terraform variables and outputs in AWS clusters:

iam_role_name_server -> server_instance_profile_name

iam_role_name_server -> game_instance_profile

Modules impacted:

basic/basic_cluster

basic/basic_cluster_alb_ssl

basic/minimal_cluster

basic/minimal_cluster_alb_ssl

basic/minimal_setup_ami

basic/setup_ami

Removed variables private_subnets and public_subnets from AWS cluster basic_cluster_alb_ssl.

We removed the variables private_subnets and public_subnets from the AWS cluster basic_cluster_alb_ssl, as they were not intented to be publicly available. The intent behind the basic_cluster_alb_ssl is to create a simple, working cluster for you.

If you need to specify subnets for your cluster, use the cluster minimal_cluster_alb_ssl instead.

UE4 Plugin SubmitNotification moved from GenvidStreams to GenvidSession.

We moved the SubmitNotification function from GenvidStreams to GenvidSession because notifications are not streams. This clarification helps avoid possible misunderstandings about the design of streams and notifications.

Beginning with version 1.25.0, you will no longer be able to create new scripts using SubmitNotification in GenvidStreams. Current scripts using the function in GenvidStreams will remain functional.

Create new scripts using SubmitNotification in GenvidSession to be compliant with the new design.