-
Notifications
You must be signed in to change notification settings - Fork 40
Unreal Horde Source Build Documentation with ARM64 Support #813
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,20 +31,27 @@ resource "aws_ecs_task_definition" "unreal_horde_task_definition" { | |
| cpu = var.container_cpu | ||
| memory = var.container_memory | ||
|
|
||
| runtime_platform { | ||
| operating_system_family = var.operating_system | ||
| cpu_architecture = var.horde_server_architecture | ||
| } | ||
|
|
||
| volume { | ||
| name = "unreal-horde-config" | ||
| } | ||
|
|
||
| container_definitions = jsonencode(concat([ | ||
| { | ||
| name = var.container_name | ||
| image = var.image | ||
| repositoryCredentials = var.github_credentials_secret_arn != null ? { | ||
| "credentialsParameter" : var.github_credentials_secret_arn | ||
| } : null | ||
| merge({ | ||
| name = var.container_name | ||
| image = var.image | ||
| cpu = var.container_cpu | ||
| memory = var.container_memory | ||
| essential = true | ||
| }, var.github_credentials_secret_arn != null && !var.is_source_build ? { | ||
| repositoryCredentials = { | ||
| "credentialsParameter" : var.github_credentials_secret_arn | ||
| } | ||
| } : {}, { | ||
| portMappings = [ | ||
| { | ||
| containerPort = var.container_api_port | ||
|
|
@@ -111,10 +118,10 @@ resource "aws_ecs_task_definition" "unreal_horde_task_definition" { | |
| condition = "SUCCESS" | ||
| }] : [] | ||
| ) | ||
| }, | ||
| }), | ||
| { | ||
| name = "unreal-horde-docdb-cert", | ||
| image = "public.ecr.aws/docker/library/bash:5.3", | ||
| image = "public.ecr.aws/docker/library/bash:latest", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is probably safer to pin to a specific version of bash. :latest opens us up to upstream issues
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I know we do this elsewhere... probably should open an issue and fix those too. |
||
| essential = false | ||
| command = ["wget", "https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem", "-P", "/app/config/"] | ||
| readonly_root_filesystem = false | ||
|
|
@@ -135,7 +142,7 @@ resource "aws_ecs_task_definition" "unreal_horde_task_definition" { | |
| }], | ||
| local.need_p4_trust ? [{ | ||
| name = "unreal-horde-p4-trust", | ||
| image = "ubuntu:noble" | ||
| image = "public.ecr.aws/ubuntu/ubuntu:noble" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nice fix. I wonder if we should also pin this release to a particular version for the same reason as above. |
||
| essential = false | ||
| command = ["bash", "-exc", <<-EOF | ||
| apt-get update | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -60,6 +60,32 @@ variable "image" { | |
| default = "ghcr.io/epicgames/horde-server:latest-bundled" | ||
| } | ||
|
|
||
| variable "is_source_build" { | ||
| type = bool | ||
| description = "Set this flag to true if you are using a custom built Horde Server image from source." | ||
| default = false | ||
| } | ||
|
Comment on lines
+63
to
+67
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we need to know if its a source build?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I added that because in
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think if they provide an image as a variable that accomplishes the same thing right?
|
||
|
|
||
| variable "horde_server_architecture" { | ||
| type = string | ||
| description = "The CPU architecture for Horde server container. Valid values: x86 or arm64" | ||
| default = "X86_64" | ||
| validation { | ||
| condition = contains(["X86_64", "ARM64"], var.horde_server_architecture) | ||
| error_message = "horde_server_architecture must be either 'X_86' or 'ARM64'" | ||
| } | ||
| } | ||
|
Comment on lines
+69
to
+77
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we determine architecture via |
||
|
|
||
| variable "operating_system" { | ||
| type = string | ||
| description = "The operating system for the Horde server container. Valid values: linux or windows" | ||
| default = "WINDOWS_SERVER_2019_CORE" | ||
| validation { | ||
| condition = contains(["LINUX", "WINDOWS_SERVER_2025_FULL", "WINDOWS_SERVER_2025_CORE", "WINDOWS_SERVER_2022_FULL", "WINDOWS_SERVER_2022_CORE", "WINDOWS_SERVER_2019_FULL", "WINDOWS_SERVER_2019_CORE"], var.operating_system) | ||
| error_message = "Operating_system must be either LINUX, WINDOWS_SERVER_2025_FULL, WINDOWS_SERVER_2025_CORE, WINDOWS_SERVER_2022_FULL, WINDOWS_SERVER_2022_CORE, WINDOWS_SERVER_2019_FULL, and WINDOWS_SERVER_2019_CORE." | ||
| } | ||
| } | ||
|
Comment on lines
+79
to
+87
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also this. I am not sure why we want to support a windows OS for Horde unless a customer explicitly asks for it. Open to your thoughts on this!
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That was something I wanted to ask. What are the most commonly used OS for Horde?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should really only support Linux distributions. I don't think this is required for containerized deployments... |
||
|
|
||
| variable "cluster_name" { | ||
| type = string | ||
| description = "The name of the cluster to deploy the Unreal Horde into. Defaults to null and a cluster will be created." | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could move some of this logic to a
local