Major Fixes & Changes¶
Initial Azure Support¶
This release includes a new Terraform module you can use to create a cloud infrastructure on Azure to run a Genvid cluster. We also added support in the Toolbox to interact with an Azure environment.
At this time, we only support the basic cluster module on Azure. We will add support for the load balancer and Twitch sample in a future release.
Cluster ID via an Environment Variable¶
The cluster ID is usually supplied as a command-line argument or takes the
default value of
local in the toolbox. You can now set the value with the
GENVID_CLUSTER_ID. You can also use a profile to set
the environment variable.
Note: Some commands require specifying the cluster ID in the command line.
In these cases, it will default to
local if the cluster ID is missing.
Hashicorp Suite Version Upgrade¶
We upgraded the included Hashicorp Suite of programs to the following versions:
- Nomad 0.10.0
- Vault 1.2.3
- Consul 1.6.1
- Terraform 0.12.19
Note: Because we have upgraded the Genvid SDK version of Terraform from 0.11 to 0.12, you will also need to upgrade any custom Terraform modules used with the platform. See the upgrade notes for more information.
The Terraform upgrade also required us to change how we load the Bastion-UI/Terraform/Cluster/Settings page. Because the page now takes longer to load, we added a spinner to indicate the loading time.
NATS is Now a System Job¶
NATS now runs on all nodes once a cluster is set up, instead of being started by the services job. This makes it possible to balance the load better under high number of clients.
Note: This means the Cluster UI no longer displays NATS in the list of jobs and can only be accessed through the Hashi UI.
Minor Changes and Other Fixes¶
- [bastion-ui] Error no longer displays when clicking the browser back-button while in Terraform settings.
- [bastion-ui] UI fixed on resizing the window.
- [cluster-ui] Users can now see a list of all the S3 images in Cluster-UI that are being used by a cluster.
- [cluster-ui] Added a spinner to indicate loading while waiting for a stream to start.
- [cluster-ui] UI fixed for Microsoft Edge.
- [cluster-ui] Added an ‘Advanced Editor’ toggle button to the cluster settings form. Users can now see/edit the settings in JSON format.
- [commandd] Fixed issue where empty strings were returned as error descriptions.
- [composed] Fixed an issue where a stream can replace a previous stream with a different ID under some circumstances.
- [general] Updated various third party libraries to more recent versions.
- [general] Updated Python scripts to use proper string comparison operation. (Python 3.8 no longer silently accepts “is” and recommends using “==” by default.)
- [genvid-ami] Fixed a bug in
genvid-ami setupwhich would prevent a new cluster from being created to setup the AMIs if one didn’t already exist.
- [gvencode] Fixed a
non-monotone increase dtswarning in gvencode encoding muxer.
- [gvencode] Fixed latency issue when composed loses its connection with gvencode and comes back.
- [leaf] Fixed a bug preventing the metric
genvid.leafd.map.processkeyvaluesfrom being collected.
- [nats] Upgraded the NATS Server to version 2.0.4.
- [nats] The Genvid SDK is more resilient to eventual NATS failures.
- [sdk] The composition data-stream bandwidth blueprint has been reduced by a factor of around 5, depending on the streaming context.
- [sdk] Updated different elements of the communication protocol for future usage.
- [sdk] The Streams format is now propagated from the SDK to the web client.
- [sdk] Fixed an issue when the TCP & UDP socket was not properly closed, depending on the socket state.
- [sdk] Fixed a problem where gamedata are not sent when sending an annotation with the same stream ID.
- [sdk] Fixed an issue when calling the
Genvid_Terminate()function that was taking too much time.
- [sdk] Fixed the maximum number of in-flight annotations per stream (instead of globally).
- [sdk] Fixed a problem where the game sends a huge number of Audio/Video/Data Streams when the RTMSP connection has been lost and restored.
- [sdk] Fixed the swapchain sync-interval that specifies synchronizing the presentation of a frame with the vertical blank.
- [sdk] Fixed a problem of submitted Audio/Video/Data streams accumulation when the SDK loses its connection with composed.
- [statsd] The SDK services now connect to the local statsd service by default, rather than the first one found.
- [statsd] Fixed an issue with the logs when statsd is not connected.
- [studio] Transitions now queue instead of being discarded when busy.
- [studio] Fixed the error message from audio-mixer when moving in and out of the editing dashboard.
- [studio] Fixed Audio/Video desyncs when one source is stopped or crashes with Studio.
- [studio] Fixed an issue where attempting to create a duplicate dashboard would issue a warning to user.
- [studio] Added spinner which displays if steam is not yet started or if stream is not running and not paused.
- [studio] Added string validation in the layout-creation dialog in Studio.
- [studio] Added an error message to inform user that Studio lost connection with the backend service.
- [studio] Added a reconnection algorithm when gvencode is disconnected from studio.
- [studio] Added metric feedback about the web components.
- [studio] Negative values as input for sliders are not supported in Video Mixer anymore.
- [studio] Fixed an issue regarding the undo functionality not reverting properly.
- [studio] Fixed issues regarding the scene selection not updating values properly.
- [studio] Fixed a source-buffer quota issue on the frontend.
- [studio] A default scene will be created if there are no scenes. The default scene will behave exactly like any other scene.
- [studio] The
deleteicon will be disabled for the last scene left in the list to make sure that there is always at least one scene.
- [studio] Fixed an issue when saving scenes that would save everything even if some sections were not selected to save.
- [studio] Slider inputs won’t accept a value lower or higher than the min/max limits anymore.
- [studio] Fixed the problem of auto streaming a scene if the
delete/editicon was clicked while Auto-cut is enabled.
- [studio] The audio-follow button now works as intended.
- [studio] Fixed various stability issues and increased responsiveness.
- [terraform] Users can now initialize the cluster again by using
INITbutton on Terraform command page without having to re-import the module.
- [terraform] Fixed support for boolean in Terraform settings.
- [terraform] Fixed an issue about obtaining an empty command log when cloning a cluster.
- [terraform] Tool-tips no longer get cropped when the description is too long.
- [terraform] Fixed a bug where
terraform destroywould fail to destroy a basic cluster.
- [terraform] Fixed an issue where the variables were not loaded properly.
- [tick] Upgraded telegraf from 1.3.5 to 1.13.1 to solve performance issues leading telegraf using a lot of CPU.
- [tick] Added a telegraf task running on the game instance.
- [toolbox] Reordered health check by severity.
- [toolbox] Added filtering to
- [toolbox] Added
BastionAPI.terraform_regenerate_instancewhich allows regenerating the Terraform working-directory for a specific instance.
- [toolbox] A UUID is now generated with every new cluster to be used in the backend configuration to create a unique path. This helps avoid name clashes when creating new clusters with the same name as previous clusters with backends like S3.
genvid-sdk upload-imagesno longer requires a cluster to be running to work.
sdk.pynow default to not updating the configuration in all cases for a more consistent behavior.
- [toolbox] Added a
sdk.pyto update the images configuration of a cluster.
- [toolbox] Introduced a new
GENVID_VERBOSE_EXCEPTIONS`environment variable which makes the toolbox print the full stack-trace when an exception is raised.
- [toolbox] Added
genvid-sdk packagecommand to Zip files and folders.
- [toolbox] Added
genvid-sdk docker-packagecommand to package Docker images.
- [toolbox] Improved stability of the toolbox
genvid-bastion installcommand to prevent failover race conditions.
- [toolbox] Fixed Terraform init function when loading for the first time on a cloned cluster.
genvid-sdk load-confignow accepts a path to Nomad templates as argument. (Before it only supported a static configuration.)
- [toolbox] Added a new
genvid.toolbox.ConsulTemplateclass which is a thin wrapper around consul-template. This new class is now used to reimplement the
ConsulTemplateToolmixin for more stability.
- [toolbox] Endpoint
/contentis now deprecated from the Bastion API.
- [toolbox] Clarified various error messages by adding more context.
- [toolbox] Extended functionality of
genvid-sdk load-configto load the tutorial using the command.
- [toolbox] Introduced an optional arguement
genvid-sdk load-configcommand to specify the path of directory to load the Nomad template jobs.
- [toolbox] Added a
genvid-sdk load-configto run
consul-templateon the configuration file prior to loading it.
- [toolbox] Fixed a bug in
genvid-sdk clean-configwhich prevented using the command to partially remove a configuration.
- [toolbox] Fixed an issue where
genvid-sdkfailed silently when using an extra slash for a valid
- [toolbox] Updated most dependencies to latest stable version.
- [toolbox] Replaced
- [toolbox] Added a cloud provider option to
- [toolbox] Updated versions of pyyaml and colorama in the Python Toolbox.
- [ui] The log panel now shows the proper log for the selected log entry, including specific filenames.
- [ue4] Saving the settings multiple times in a row will no longer open multiple success messages.
- [ue4] Fixed a bad HTTP URL address used to communicate with Consul in UE 4.22+.
- [ue4] Added UE4 4.23 and 4.24 compatibility.
- [unity] Deprecated the
SubmitGameDatamethod of the Genvid Unity Plugin and provided a more explicit SubmitGameDataJSON.
- [vault] Fixed Vault initialization when there is more than one Vault instance.
- [web sdk] Improved the web SDK synchronization algorithm.
- [web sdk] The web SDK now logs its version at intialization time.
- [web sdk] At connection time, the web SDK and the leaf check their mutual compatibility.
- [web sdk] Removed a warning in the web SDK happening when using non-UTF8 gamedata.
- [web sdk] Fixed an annotation problem where frames were sometimes cleaned when they shouldn’t be.