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.26.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.
In This Section
General Upgrade Instructions¶
Upgrade the Genvid SDK¶
To set up the new SDK locally:
Install the new SDK.
Run the Python script to install the Genvid Toolbox.
py install-toolbox.py
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:
- Set up a new wingame AMI that matches the new version.
- 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.25.0 to 1.26.0¶
Changes to the Cluster-UI Settings¶
In the Video ID. We replaced it with a single field for all streaming services (YouTube, Twitch) and change the label to match the selected streaming service.
section of the Cluster-UI settings, we removed the dedicated fieldTwitch | Channel |
YouTube | Video ID |
Important
To set the Consul key that used to be genvid/encode/stream/videoid
you
have to change it to genvid/encode/stream/channel
.
Terraform variable cidr
replaced by subnet_cidr_block_size
in the Terraform settings.¶
In the Terraform settings, we replaced the variable cidr
with
subnet_cidr_block_size
. This change fixes a known issue causing subnet
collisions when updating clusters. The subnet IPs are now set to
10.0.0.0 and this variable controls the cidr
size.
For example, if you set subnet_cidr_block_size
to 27, the subnet IPs will
start at 10.0.0.0/27. Other subnet IPs will be distributed proportionally
across all availability zones.
Terraform variables Stage
and Namespace
removed.¶
We removed the Terraform variables Stage
and Namespace
from all
Terraform modules.
AWS and Azure tag Name
renamed genvid:cluster-name
.¶
Terraform modules now allow users to define their own custom tags. To prevent
clashes between Genvid default tags and user defined tags, we updated Genvid
tags with the prefix genvid:
.
In AWS, this causes the column Name to be empty. As a workaround, either
add a column for the tag genvid:cluster-name
in the EC2 console.
From the AWS Management Console:
- Click EC2.
- Click Instances.
- Click the settings button (gear icon).
- Select the tags you want columns for.
See the AWS documentation for more information about managing tags.
In Azure, the resources are still all available under the same resource group.
This will impact existing clusters only if they are updated.
Renamed 2 metrics sent by gvencode
.¶
We renamed 2 metrics sent by gvencode
due to typos in their names.
compostionssent
is nowcompositionsent
.compostionssentsize
is nowcompositionsizesent
.
We didn’t update the names in the SDK documentation, as they were already correct there.
AWS and Azure indexed resources are now 0-based instead of 1-based.¶
Previously, resources that had names or identification that contained a number were 1-based. This yielded names like server-1, game-1, etc.
Starting with the release of 1.26.0, we changed the index to be 0-based. Identifiers will now start at 0: server-0, game-0, etc.
Updating Terraform modules found in previous versions.¶
You may run into an error if you’re updating a bastion server created from
an earlier installation of Terraform. 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:
- Add a global variable named
bastionid
. - Set the value of
bastionid
to the name of the bastion server you’re updating. - Run
plan apply
.
Upgrading from Older Versions¶
Note
If there aren’t specific instructions listed for a version, then there aren’t any special steps for upgrading that version.
- Upgrade from 1.0.0 to 1.1.0
- Upgrade from 1.2.0 to 1.3.0
- Upgrade from 1.3.0 to 1.4.0
- Upgrade from 1.6.0 to 1.7.0
- Upgrade from 1.7.0 to 1.8.0
- Upgrade from 1.8.0 to 1.9.0
- Upgrade from 1.9.0 to 1.10.0
- Upgrade from 1.11.0 to 1.12.0
- Upgrade from 1.12.0 to 1.13.0
- Upgrade from 1.13.0 to 1.14.0
- Upgrade from 1.15.0 to 1.15.1
- Upgrade from 1.16.0 to 1.17.0
- Upgrade from 1.17.0 to 1.18.0
- Upgrade from 1.18.0 to 1.19.0
- Upgrade from 1.19.0 to 1.20.0
- Upgrade from 1.20.1 to 1.21.0
- Upgrade from 1.21.2 to 1.22.0
- Upgrade from 1.22.0 to 1.23.0
- Upgrade from 1.23.0 to 1.24.0
- Upgrade from 1.24.0 to 1.25.0