diff --git a/modules/computation/README.md b/modules/computation/README.md
index 719b878..e91246d 100644
--- a/modules/computation/README.md
+++ b/modules/computation/README.md
@@ -21,6 +21,7 @@ To read more, see [the Metaflow docs](https://docs.metaflow.org/metaflow-on-aws/
| [compute\_environment\_max\_vcpus](#input\_compute\_environment\_max\_vcpus) | Maximum VCPUs for Batch Compute Environment [16-96] | `number` | n/a | yes |
| [compute\_environment\_min\_vcpus](#input\_compute\_environment\_min\_vcpus) | Minimum VCPUs for Batch Compute Environment [0-16] for EC2 Batch Compute Environment (ignored for Fargate) | `number` | n/a | yes |
| [iam\_partition](#input\_iam\_partition) | IAM Partition (Select aws-us-gov for AWS GovCloud, otherwise leave as is) | `string` | `"aws"` | no |
+| [launch\_template\_custom\_user\_data](#input\_launch\_template\_custom\_user\_data) | Custom user data script for the launch template provided as a base64-encoded string. | `string` | `null` | no |
| [launch\_template\_http\_endpoint](#input\_launch\_template\_http\_endpoint) | Whether the metadata service is available. Can be 'enabled' or 'disabled' | `string` | `"enabled"` | no |
| [launch\_template\_http\_put\_response\_hop\_limit](#input\_launch\_template\_http\_put\_response\_hop\_limit) | The desired HTTP PUT response hop limit for instance metadata requests. Can be an integer from 1 to 64 | `number` | `2` | no |
| [launch\_template\_http\_tokens](#input\_launch\_template\_http\_tokens) | Whether or not the metadata service requires session tokens, also referred to as Instance Metadata Service Version 2 (IMDSv2). Can be 'optional' or 'required' | `string` | `"optional"` | no |
diff --git a/modules/computation/ec2.tf b/modules/computation/ec2.tf
index ef40aa4..9dd0313 100644
--- a/modules/computation/ec2.tf
+++ b/modules/computation/ec2.tf
@@ -34,6 +34,9 @@ resource "aws_launch_template" "cpu" {
http_put_response_hop_limit = var.launch_template_http_put_response_hop_limit
}
+ # Supply custom user data as a base64 encoded string.
+ user_data = var.launch_template_custom_user_data
+
tags = var.standard_tags
}
diff --git a/modules/computation/variables.tf b/modules/computation/variables.tf
index 92d11ba..b828444 100644
--- a/modules/computation/variables.tf
+++ b/modules/computation/variables.tf
@@ -102,3 +102,10 @@ variable "launch_template_image_id" {
nullable = true
default = null
}
+
+variable "launch_template_custom_user_data" {
+ type = string
+ description = "Custom user data script for the launch template provided as a base64-encoded string."
+ nullable = true
+ default = null
+}