Skip to content

feat: Create a starter_farm Terraform configuration with README#212

Merged
Cherie-Chen merged 6 commits into
mainlinefrom
starter-farm-terraform
May 27, 2026
Merged

feat: Create a starter_farm Terraform configuration with README#212
Cherie-Chen merged 6 commits into
mainlinefrom
starter-farm-terraform

Conversation

@tommy-doe
Copy link
Copy Markdown
Contributor

This Terraform configuration sample deploys a starter AWS Deadline Cloud farm equivalent to the CloudFormation starter_farm template. It uses the AWS Cloud Control (AWSCC) provider for Deadline Cloud resources and includes a production queue, package build queue, Conda queue environment, and configurable service-managed fleets (CPU Linux, CPU Windows, CUDA Linux).

What was the problem/requirement? (What/Why)

The CloudFormation starter_farm template provides a one-click deployment of an AWS Deadline Cloud farm, but customers who use Terraform don't have an equivalent sample to start from.

What was the solution? (How)

Publish a Terraform configuration sample that deploys an equivalent starter AWS Deadline Cloud farm using the AWS Cloud Control (AWSCC) provider. The configuration creates the same resources as the CloudFormation template: a farm, production queue, package build queue, conda queue environment, up to three service-managed fleets (CPU Linux, CPU Windows, CUDA Linux), and the associated IAM roles and policies.

What is the impact of this change?

Customers who prefer Terraform have a ready-to-use configuration they can deploy directly or fork as a starting point for their own farm.

How was this change tested?

  • Deployed the Terraform configuration and confirmed all resources were created correctly
  • Deployed the Cloudformation sample and confirmed the same resources were created
  • terraform validate (success)
  • Checkov security scan: 37 passed, 0 failed
  • tflint: no issues
  • Submitted test jobs on the farm deployed by Terraform and compared with outputs from a Cloudformation-instantiated farm

Was this change documented?

Yes, it includes a README with deployment instructions, variable reference, outputs, and customization guidance.


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This Terraform configuration sample deploys a starter AWS Deadline Cloud
farm equivalent to the CloudFormation starter_farm template. It uses the
AWS Cloud Control (AWSCC) provider for Deadline Cloud resources and
includes a production queue, package build queue, conda queue environment,
and configurable service-managed fleets (CPU Linux, CPU Windows, CUDA Linux).

Signed-off-by: Tommy Doerr <tommydoe@amazon.com>
@tommy-doe tommy-doe requested a review from a team as a code owner May 6, 2026 22:56
@github-actions github-actions Bot added the waiting-on-maintainers Waiting on the maintainers to review. label May 6, 2026

variable "farm_description" {
type = string
default = "Deadline Cloud farm deployed from the starter_farm sample CloudFormation template."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: farm description should say terraform template instead of CloudFormation template, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed — updated the farm description to say "Terraform template" instead of "CloudFormation template" in main.tf:45

$ deadline bundle submit cli_job \
--name "Starter farm test job" \
-p CondaPackages=imagemagick \
-p CondaChannels=conda-forge \
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

User will need to add the S3 channel initialized in the previous step and potentially add deadline-cloud Conda channel

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed — updated the CLI example to include the S3 channel and deadline-cloud channel alongside conda-forge, so it matches the queue environment defaults rather than overriding them:
-p "CondaChannels=s3://your-s3-bucket-name/Conda/Default deadline-cloud conda-forge" \

@karthikbekalp karthikbekalp removed the waiting-on-maintainers Waiting on the maintainers to review. label May 26, 2026
- Fix farm_description to say "Terraform template" instead of "CloudFormation template"
- Include S3 channel and deadline-cloud channel in CLI CondaChannels example
  to match the queue environment defaults

Signed-off-by: Tommy Doerr <tommydoe@amazon.com>
@tommy-doe tommy-doe force-pushed the starter-farm-terraform branch from 99c1c49 to 251a737 Compare May 27, 2026 17:18
karthikbekalp
karthikbekalp previously approved these changes May 27, 2026
Copy link
Copy Markdown
Contributor

@karthikbekalp karthikbekalp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just have 1 nit comment about a parameter value.

userInterface:
control: DROPDOWN_LIST
label: Named Conda Environment Action
- name: NamedCondaEnvUpdateAfterMinutes
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Hmm, is this variable used later on? If its unused then we should probably remove it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — removed it. The parameter is used in the improved_caching variant but was never referenced in this template's script. Deleted in 35f8258.

This parameter was defined but never referenced in the queue
environment script. It exists in the improved_caching variant
where it's actually used, but is dead code in the starter farm.

Signed-off-by: Tommy Doerr <tommydoe@amazon.com>
@Cherie-Chen Cherie-Chen enabled auto-merge (squash) May 27, 2026 20:26
@Cherie-Chen Cherie-Chen merged commit 7b60490 into mainline May 27, 2026
4 checks passed
@karthikbekalp karthikbekalp deleted the starter-farm-terraform branch May 27, 2026 20:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants