Skip to content

Terraform Module Docs

Requirements

Name Version
terraform >= 1.5
aws >= 5.38
tls >= 4.0.5

Providers

Name Version
aws >= 5.38
tls >= 4.0.5

Modules

No modules.

Resources

Name Type
aws_cloudwatch_log_group.unreal_cluster_cloudwatch resource
aws_eks_cluster.unreal_cloud_ddc_eks_cluster resource
aws_eks_identity_provider_config.eks_cluster_oidc_association resource
aws_eks_node_group.nvme_node_group resource
aws_eks_node_group.system_node_group resource
aws_eks_node_group.worker_node_group resource
aws_iam_instance_profile.scylla_instance_profile resource
aws_iam_openid_connect_provider.unreal_cloud_ddc_oidc_provider resource
aws_iam_role.eks_cluster_role resource
aws_iam_role.monitoring_node_group_role resource
aws_iam_role.nvme_node_group_role resource
aws_iam_role.scylla_role resource
aws_iam_role.worker_node_group_role resource
aws_instance.scylla_ec2_instance resource
aws_launch_template.nvme_launch_template resource
aws_launch_template.system_launch_template resource
aws_launch_template.worker_launch_template resource
aws_route53_record.scylla_records resource
aws_route53_zone.scylla_zone resource
aws_s3_bucket.unreal_ddc_logging_s3_bucket resource
aws_s3_bucket.unreal_ddc_s3_bucket resource
aws_s3_bucket_logging.unreal-log-s3-log resource
aws_s3_bucket_logging.unreal-s3-log resource
aws_s3_bucket_public_access_block.unreal_ddc_log_s3_acls resource
aws_s3_bucket_public_access_block.unreal_ddc_s3_acls resource
aws_s3_bucket_server_side_encryption_configuration.unreal-s3-bucket resource
aws_s3_bucket_server_side_encryption_configuration.unreal-s3-logging-bucket resource
aws_security_group.nvme_security_group resource
aws_security_group.scylla_security_group resource
aws_security_group.system_security_group resource
aws_security_group.worker_security_group resource
aws_security_group_rule.peer_cidr_blocks_ingress_sg_rules resource
aws_security_group_rule.peer_cidr_blocks_scylla_egress_sg_rules resource
aws_security_group_rule.scylla_to_nvme_group_egress_sg_rules resource
aws_security_group_rule.scylla_to_nvme_group_ingress_sg_rules resource
aws_security_group_rule.scylla_to_worker_group_egress_sg_rules resource
aws_security_group_rule.scylla_to_worker_group_ingress_sg_rules resource
aws_security_group_rule.self_ingress_sg_rules resource
aws_security_group_rule.self_scylla_egress_sg_rules resource
aws_security_group_rule.ssm_egress_sg_rules resource
aws_ssm_association.scylla_config_association resource
aws_ssm_document.config_scylla resource
aws_ami.scylla_ami data source
aws_ssm_parameter.eks_ami_latest_release data source
tls_certificate.eks_tls_certificate data source

Inputs

Name Description Type Default Required
eks_cluster_access_cidr List of the CIDR Ranges you want to grant public access to the EKS Cluster. list(string) n/a yes
name Unreal Cloud DDC Workload Name string "unreal-cloud-ddc" no
nvme_managed_node_desired_size Desired number of nvme managed node group instances number 2 no
nvme_managed_node_instance_type Nvme managed node group instance type string "i3en.xlarge" no
nvme_managed_node_max_size Max number of nvme managed node group instances number 2 no
peer_cidr_blocks The peered cidr blocks you want your vpc to communicate with if you have a multi region ddc. list(string) [] no
private_subnets Private subnets you want scylla and the worker nodes to be installed into. list(string) [] no
scylla_ami_name Name of the Scylla AMI to be used to get the AMI ID string "ScyllaDB 6.0.1" no
scylla_architecture The chip architecture to use when finding the scylla image. Valid string "x86_64" no
scylla_db_storage Size of gp3 ebs volumes attached to Scylla DBs number 100 no
scylla_db_throughput Throughput of gp3 ebs volumes attached to Scylla DBs number 200 no
scylla_dns The local private dns name that you want Scylla to be queryable on. string null no
scylla_instance_type The type and size of the Scylla instance. string "i4i.2xlarge" no
scylla_private_subnets The subnets you want Scylla to be installed into. Can repeat subnet ids to install into the same subnet/az. This will also determine how many Scylla instances are deployed. list(string) [] no
system_managed_node_desired_size Desired number of monitoring managed node group instances. number 1 no
system_managed_node_instance_type Monitoring managed node group instance type. string "m5.large" no
system_managed_node_max_size Max number of monitoring managed node group instances. number 2 no
vpc_id String for VPC ID string n/a yes
worker_managed_node_desired_size Desired number of worker managed node group instances. number 1 no
worker_managed_node_instance_type Worker managed node group instance type. string "c5.xlarge" no
worker_managed_node_max_size Max number of worker managed node group instances. number 1 no

Outputs

Name Description
cluster_arn n/a
cluster_certificate_authority_data n/a
cluster_endpoint n/a
cluster_name n/a
oidc_provider_arn n/a
oidc_provider_identity n/a
s3_bucket_id n/a

Requirements

Name Version
terraform >= 1.10.3
aws >=5.73.0
tls >= 4.0.6

Providers

Name Version
aws 5.77.0
tls 4.0.6

Modules

No modules.

Resources

Name Type
aws_cloudwatch_log_group.unreal_cluster_cloudwatch resource
aws_eks_cluster.unreal_cloud_ddc_eks_cluster resource
aws_eks_node_group.nvme_node_group resource
aws_eks_node_group.system_node_group resource
aws_eks_node_group.worker_node_group resource
aws_iam_instance_profile.scylla_instance_profile resource
aws_iam_openid_connect_provider.unreal_cloud_ddc_oidc_provider resource
aws_iam_role.eks_cluster_role resource
aws_iam_role.nvme_node_group_role resource
aws_iam_role.scylla_role resource
aws_iam_role.system_node_group_role resource
aws_iam_role.worker_node_group_role resource
aws_iam_role_policy_attachments_exclusive.eks_cluster_policy_attachement resource
aws_iam_role_policy_attachments_exclusive.nvme_policy_attachement resource
aws_iam_role_policy_attachments_exclusive.scylla_policy_attachement resource
aws_iam_role_policy_attachments_exclusive.system_policy_attachement resource
aws_iam_role_policy_attachments_exclusive.worker_policy_attachement resource
aws_instance.scylla_ec2_instance_other_nodes resource
aws_instance.scylla_ec2_instance_seed resource
aws_launch_template.nvme_launch_template resource
aws_launch_template.system_launch_template resource
aws_launch_template.worker_launch_template resource
aws_s3_bucket.unreal_ddc_s3_bucket resource
aws_s3_bucket_public_access_block.unreal_ddc_s3_acls resource
aws_security_group.nvme_security_group resource
aws_security_group.scylla_security_group resource
aws_security_group.system_security_group resource
aws_security_group.worker_security_group resource
aws_vpc_security_group_egress_rule.nvme_egress_sg_rules resource
aws_vpc_security_group_egress_rule.self_scylla_egress_sg_rules resource
aws_vpc_security_group_egress_rule.ssm_egress_sg_rules resource
aws_vpc_security_group_egress_rule.system_egress_sg_rules resource
aws_vpc_security_group_egress_rule.worker_egress_sg_rules resource
aws_vpc_security_group_ingress_rule.self_ingress_sg_rules resource
aws_ami.scylla_ami data source
tls_certificate.eks_tls_certificate data source

Inputs

Name Description Type Default Required
eks_cluster_cloudwatch_log_group_prefix Prefix to be used for the EKS cluster CloudWatch log group. string "/aws/eks/unreal-cloud-ddc/cluster" no
eks_cluster_logging_types List of EKS cluster log types to be enabled. list(string)
[
"api",
"audit",
"authenticator",
"controllerManager",
"scheduler"
]
no
eks_cluster_private_access Allows private access of the EKS Control Plane from subnets attached to EKS Cluster bool true no
eks_cluster_public_access Allows public access of EKS Control Plane should be used with bool false no
eks_cluster_public_endpoint_access_cidr List of the CIDR Ranges you want to grant public access to the EKS Cluster's public endpoint. list(string) null no
eks_node_group_subnets A list of subnets ids you want the EKS nodes to be installed into. Private subnets are strongly recommended. list(string) [] no
kubernetes_version Kubernetes version to be used by the EKS cluster. string "1.31" no
name Unreal Cloud DDC Workload Name string "unreal-cloud-ddc" no
nvme_managed_node_desired_size Desired number of nvme managed node group instances number 2 no
nvme_managed_node_instance_type Nvme managed node group instance type string "i3en.large" no
nvme_managed_node_max_size Max number of nvme managed node group instances number 2 no
nvme_managed_node_min_size Min number of nvme managed node group instances number 1 no
nvme_node_group_label Label applied to nvme node group. These will need to be matched in values for taints and tolerations for the worker pod definition. map(string)
{
"unreal-cloud-ddc/node-type": "nvme"
}
no
scylla_ami_name Name of the Scylla AMI to be used to get the AMI ID string "ScyllaDB 6.0.1" no
scylla_architecture The chip architecture to use when finding the scylla image. Valid string "x86_64" no
scylla_db_storage Size of gp3 ebs volumes attached to Scylla DBs number 100 no
scylla_db_throughput Throughput of gp3 ebs volumes attached to Scylla DBs number 200 no
scylla_instance_type The type and size of the Scylla instance. string "i4i.2xlarge" no
scylla_subnets A list of subnet IDs where Scylla will be deployed. Private subnets are strongly recommended. list(string) [] no
system_managed_node_desired_size Desired number of system managed node group instances. number 1 no
system_managed_node_instance_type Monitoring managed node group instance type. string "m5.large" no
system_managed_node_max_size Max number of system managed node group instances. number 2 no
system_managed_node_min_size Min number of system managed node group instances. number 1 no
system_node_group_label Label applied to system node group map(string)
{
"pool": "system-pool"
}
no
vpc_id String for VPC ID string n/a yes
worker_managed_node_desired_size Desired number of worker managed node group instances. number 1 no
worker_managed_node_instance_type Worker managed node group instance type. string "c5.large" no
worker_managed_node_max_size Max number of worker managed node group instances. number 1 no
worker_managed_node_min_size Min number of worker managed node group instances. number 0 no
worker_node_group_label Label applied to worker node group. These will need to be matched in values for taints and tolerations for the worker pod definition. map(string)
{
"unreal-cloud-ddc/node-type": "worker"
}
no

Outputs

Name Description
cluster_arn ARN of the EKS Cluster
cluster_certificate_authority_data Public key for the EKS Cluster
cluster_endpoint EKS Cluster Endpoint
cluster_name Name of the EKS Cluster
nvme_node_group_label Label for the NVME node group
oidc_provider_arn OIDC provider for the EKS Cluster
peer_security_group_id ID of the Peer Security Group
s3_bucket_id Bucket to be used for the Unreal Cloud DDC assets
scylla_ips IPs of the Scylla EC2 instances
system_node_group_label Label for the System node group
worker_node_group_label Label for the Worker node group