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.27.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.26.0 to 1.27.0

Removed unused variables from clusters.

We removed the following variables from the AWS and Azure clusters as they are no longer required.

AWS

Variable Impacted Module
cidr minimal_cluster
game_az minimal_setup_ami
region basic_cluster
validation_method basic_cluster_alb_ssl
validation_method minimal_cluster_alb_ssl

Azure

Variable Impacted Module
trusted_security_groups azurerm_basic_cluster
trusted_security_groups azurerm_basic_cluster_alb_ssl

Enabling Toolbox update in Azure basic cluster using toolbox_location variable.

In order to have consistency between AWS and Azure clusters, we added the the toolbox_location variable to azurerm_basic_cluster. You can now update the Toolbox in an Azure basic cluster by supplying the Toolbox URL as the value.

If you leave toolbox_location empty, the Toolbox won’t be updated.

Renamed the setup-ami module.

In AWS, we changed the path of the Terraform module bastion-services\terraform\modules\basic\setup-ami to bastion-services\terraform\modules\basic\setup_ami. This affects the call to toolbox command genvid-ami setup.

Changed/added variables in AWS and Azure.

In AWS clusters, we renamed the variable ami_prefix to game_ami_prefix. We also changed its default value in basic_cluster_alb_ssl and minimal_cluster_alb_ssl from genvidtech to default.

Also in AWS clusters, we added a new variable server_ami_prefix.

In Azure clusters, we added a new variable server_image_prefix.

Removed unused outputs from AWS clusters.

We removed the ami_prefix output from the AWS basic_cluster_alb_ssl and minimal_cluster_alb_ssl as it is no longer required.

Updating Terraform modules found in previous versions.

You may run into an error if you’re updating a bastion server with clusters created on a bastion earlier than 1.26. This error occurs when reimporting the new version of the module and running plan apply.

on main.tf.json line 118, in variable:
118:     "bastionid": {

The root module input variable "bastionid" is not set, and has no default
value. Use a -var or -var-file command line argument to provide a value for
this variable.

To fix this issue:

  1. Add a global variable named bastionid.
  2. Set the value of bastionid to the name of the bastion server you’re updating.
  3. Run plan apply.

We will fix this issue in another release.