Upgrade from 1.22.0 to 1.23.0

Changes to the Cube Samples

The Tutorial sample is now called the DirectX Cube sample.

The DirectX sample, the Unity Cube sample, and the Unreal Engine 4 Cube sample no longer have a web part integrated in them. This function is assumed by the new Web sample. Each engine used to have its own web site included in the same folder. For example for Tutorial it was in /samples/tutorial/web. Now the new Web sample is the web site for any engine and is located in /samples/cube/web.

The new samples DirectX Cube, UE4 Cube, Unity Cube, the Web sample, and Twitch extension are now located in /samples/cube/. You need to build and load the new Web sample as an independent sample on your clusters in order to get a website running. Here’s how:

  1. Go to the /samples/cube/web directory.

  2. Build the website.

    py web.py build
    
  3. Load the website.

    py web.py load
    

The Twitch extension is now just an extension. You can use it with any of the DirectX, Unity, or Unreal samples. You will need the Web sample to run at the same time as it serves as the backend for the Twitch extension.

The plugins for UE4 and Unity are now located in the folder /engine-integration/. The file package.py for Unity is in /engine-integration/unity/ and has to be used from there.

The UT4 sample is now located in /samples/.

Engine Integration

We changed the location of the engine integration plugins. They are now located in the /engine-integration/ folder.

The /engine-integration/ue4/ folder contains a script to help you install the Genvid SDK along with other useful classes and plugins for Unreal Engine 4 projects. How you prepare, build, and load your UE4 project remains the same.

The /engine-integration/unity/ folder contains a script to help you generate the genvid.unitypackage asset package along with the asset package itself. You need to create the Unity package for your project before preparing, building, and loading your project.

py package.py all

See the Engine Integration section for more information.

command Service is Now Named webgateway

We’ve updated the command service, which is now webgateway. You should check your integration backend code and change the Consul discovery queries so that they look for the service webgateway instead of command.

The webgateway secret is now located at genvid/webgateway in Vault. You need to modify your HCL configuration accordingly.

If you modified the Nomad templates for the Genvid services, you may want to pass the secret through the GENVID_WEBGATEWAY_SECRET instead of GENVID_COMMAND_SECRET.

If you don’t want to or can’t modify your existing project, you can also set the Consul key genvid/compatibility/legacy_command to true.

Tick and Studio Sample Changes

We have increased the memory requirement for the rootd process, which can now use a majority of the memory available on the default internal_worker instance type. If you are using the Studio or Tick samples, this could lead to some of the tasks not being able to be allocated if you are running a single instance.

We recommend you add an extra instance on your cluster when running the Tick samples to avoid cases where some services won’t start. See the TICK Stack Metrics and Genvid Studio Service documentation for information on how to do this.

Terraform Modules Changes

We renamed the alb_ssl_cluster and alb_ssl_cluster_vpc to be more consistent with the basic_cluster convention.

Previous Name New Name
alb_ssl_cluster_vpc basic_cluster_alb_ssl
alb_ssl_cluster minimal_cluster_alb_ssl

Twitch Embedded Player and SSL Support

Using the Twitch Embedded Player now requires an SSL protected website. This means you must use SSL clusters with names that terminate in ways that indicate they use SSL (such as _alb_ssl).

When using an SSL module, you need to load its leaf endpoint and a web endpoint in your cluster configuration using the loadEndpoint() method in /samples/cube/web/web.py.

    def loadEndpoint(self):
        leaf_endpoint = self.get_leaf_endpoint()
        web_endpoint = self.get_web_endpoint()
        config = {
            'version': '1.7.0',
            'config': {
                'cloud': {
                    'endpoint': {
                        'leaf': '',
                        'web': ''
                    }
                }
            }
        }
        config['config']['cloud']['endpoint']['leaf'] = leaf_endpoint
        config['config']['cloud']['endpoint']['web'] = web_endpoint
        return config

If you want to stream Twitch embedded on your website, you need to load twitch.sample.hcl located in samples/streaming_services to ensure that it is populated accordingly. It has a new configuration to allow embedding.

config {
  embed_ssl {
    enabled = true
  }
} // end of config