basic/basic_cluster_alb_ssl

A basic infrastructure for the Twitch Extension Sample which creates a Genvid cluster and required workers.

Important

The ALB SSL integration have two assumptions:

  1. The web backend is served on port 30000 of the public nodes and have a health check on /health.
  2. The leaf websocket is served on port 30001 of the public nodes and have a health check on /health.

Not all nodes need to run the services, but they will be discarded if not present.

Providers

  • aws (2.54.0)
  • null
  • tls

Requirements

  • terraform >= 0.12
  • aws 2.54.0

Inputs

cluster (string)

Name of your cluster

trusted_cidr (string)

CIDR to be trusted. This should at least contains the external IP for the local machine. Elsewhere, the provision and access to consul/nomad will fail.

admin_password (string)

Administrative password for the game machine.

ami_prefix (string)

Prefix of the game AMI.

ami_version (string)

Version of the AMIs (both game and genvid) to use.

azs (list(string))

A list of availability zones in the region

cidr (string)

The CIDR block for the VPC. Default value is a valid CIDR, but not acceptable by AWS and should be overridden

datacenter (string)

Consul/Nomad datacenter

domain_name (string)

Root domain name

instance_encoding_count (number)

Number of internal workers to spawn

instance_encoding_type (string)

Type of EC2 instance to use for encoding servers

instance_game_count (number)

Number of game instances to spawn

instance_game_type (string)

Type of EC2 instance to use for game servers

instance_internal_count (number)

Number of internal workers to spawn

instance_internal_type (string)

Type of EC2 instance to use for internal servers

instance_public_count (number)

Number of public workers to spawn

instance_public_type (string)

Type of EC2 instance to use for public servers

instance_server_count (number)

The number of supervisor servers. Must be an odd number. It is usually 3 for production deployment.

instance_server_type (string)

Type of EC2 instance to use for admin servers

leaf_port (number)

None

leaf_stickiness_ttl (number)

Set the Leaf target group stickiness timeout

leaf_tg_stickiness_enabled (bool)

Set the Leaf target group stickiness enabled or disabled

namespace (string)

Deployment namespace that will regroup the clusters

private_subnets (list(string))

A list of private subnets inside the VPC

public_subnets (list(string))

A list of public subnets inside the VPC

region (string)

AWS deployment region

stage (string)

Deployment stage

subdomain_name (string)

subdomain name. It will be used to create a zone in AWS (twitch.acme.com)

toolbox_location (string)

Genvid Toolbox Wheel file.

Only required if you need to update the one from the AMI. An empty value indicates to not install the toolbox.

trusted_cidrs (list(string))

A list of CIDR to be trusted.

trusted_security_groups (list(string))

A list of security groups to be trusted.

validation_method (string)

How you wish to validate your SSL Issued Certifcate from AWS (DNS, EMAIL, NONE)

web_port (number)

None

web_stickiness_ttl (number)

Set the Web target group stickiness timeout

web_tg_stickiness_enabled (bool)

Set the Web target group stickiness enabled or disabled

Outputs

ami_prefix

Prefix of the game AMI.

ami_version

Version of the AMIs (both game and genvid) to use.

azs_available
azs_selected
cluster

Name of your cluster

consul_nodes
datacenter

Consul/Nomad datacenter

domain_name

The domain name that you wish to create and associate with your cluster

encoding_worker_private_ips
encoding_worker_public_ips
endpoint_leaf
endpoint_web
game_private_ips
game_public_ips
iam_policy_name_game
iam_policy_name_server
internal_worker_private_ips
internal_worker_public_ips
leaf_port

Port that leaf are configured

namespace

Deployment namespace that will regroup the clusters

private_key_pem
private_subnets

A list of private subnets inside the VPC

public_key
public_subnets

A list of public subnets inside the VPC

public_worker_private_ips
public_worker_public_ips
region

AWS deployment region

server_private_ips
server_public_ips
stage

Deployment stage

subnet_ids

Specifies an ordered list of subnets that was used.

vpc_id_selected
web_port

Port that web backend is using