Create a customer-managed fleet
To create a customer-managed fleet (CMF), complete the following steps.
- Deadline Cloud console
-
To use the Deadline Cloud console to create a customer-managed fleet
-
Open the Deadline Cloud console
. -
Select Farms. A list of available farms displays.
-
Select the name of the Farm you want to work in.
-
Select the Fleets tab.
-
Choose Create fleet.
-
Enter a Name for your fleet.
-
(Optional) Enter a Description for your fleet.
-
Select Customer managed for Fleet type.
-
Select an Auto Scaling type. For more information, see Use EventBridge to handle Auto Scaling events.
-
No scaling: You are creating an on-premise fleet and want opt out of Deadline Cloud Auto Scaling.
-
Scaling recommendations: You are creating an Amazon Elastic Compute Cloud (Amazon EC2) fleet.
-
-
Select your fleet's service access.
-
We recommend using the Create and use an new service role option for each fleet for more granular permissions control. This option is selected by default.
-
You can also use an existing service role by selecting Choose a service role.
-
-
Review your selections, then choose Next.
-
Select an operating system for your fleet. All of a fleet’s workers must have a common operating system.
-
Select the host CPU architecture.
-
Select the minimum and maximum vCPU and memory Hardware capabilities to meet the workload demands of your fleets.
-
(Optional) Select the arrow to expand the Add capabilities section.
-
(Optional) Select the checkbox for Add GPU capability - Optional, then enter the minimum and maximum GPUs and memory.
-
Review your selections, then choose Next.
-
(Optional) Define custom worker capabilities, then choose Next.
-
Using the dropdown, select one or more queues to associate with the fleet.
Note
We recommend associating a fleet only with queues that are all in the same trust boundary. This ensures a strong security boundary between running jobs on the same worker.
-
Review the queue associations, then choose Next.
-
(Optional) For Default Conda queue environment, we'll create an environment for your queue that will install Conda packages requested by jobs.
Note
The Conda queue environment is used to install Conda packages requested by jobs. Typically, you should uncheck the Conda queue environment on queues associated with CMFs because CMFs won't have the required Conda commands installed by default.
-
(Optional) Add tags to your CMF. For more information, see Tagging your AWS resources.
-
Review your fleet configuration and make any changes.
-
Choose Create fleet.
-
Select the Fleets tab, then note the Fleet ID.
-
- AWS CLI
-
To use the AWS CLI to create a customer-managed fleet
-
Open a terminal.
-
Create
fleet-trust-policy.json
in a new editor.-
Add the following IAM policy, replacing the
ITALICIZED
text with your AWS account ID and Deadline Cloud farm ID.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.deadline.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
ACCOUNT_ID
" }, "ArnEquals": { "aws:SourceArn": "arn:aws:deadline:*:ACCOUNT_ID
:farm/FARM_ID
" } } } ] } -
Save your changes.
-
-
Create
fleet-policy.json
.-
Add the following IAM policy.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "deadline:AssumeFleetRoleForWorker", "deadline:UpdateWorker", "deadline:DeleteWorker", "deadline:UpdateWorkerSchedule", "deadline:BatchGetJobEntity", "deadline:AssumeQueueRoleForWorker" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "${aws:ResourceAccount}" } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream" ], "Resource": "arn:aws:logs:*:*:*:/aws/deadline/*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "${aws:ResourceAccount}" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:logs:*:*:*:/aws/deadline/*", "Condition": { "StringEquals": { "aws:PrincipalAccount": "${aws:ResourceAccount}" } } } ] }
-
Save your changes.
-
-
Add an IAM role for the workers in your fleet to use.
aws iam create-role --role-name FleetWorkerRoleName --assume-role-policy-document file://fleet-trust-policy.json aws iam put-role-policy --role-name FleetWorkerRoleName --policy-name FleetWorkerPolicy --policy-document file://fleet-policy.json
-
Create
create-fleet-request.json
.-
Add the following IAM policy, replacing the ITALICIZED text with your CMF's values.
Note
You can find the
ROLE_ARN
in thecreate-cmf-fleet.json
.For the
OS_FAMILY
, you must choose one oflinux
,macos
orwindows
.{ "farmId": "
FARM_ID
", "displayName": "FLEET_NAME
", "description": "FLEET_DESCRIPTION
", "roleArn": "ROLE_ARN
", "minWorkerCount": 0, "maxWorkerCount": 10, "configuration": { "customerManaged": { "mode": "NO_SCALING", "workerCapabilities": { "vCpuCount": { "min": 1, "max": 4 }, "memoryMiB": { "min": 1024, "max": 4096 }, "osFamily": "OS_FAMILY
", "cpuArchitectureType": "x86_64", }, }, } } -
Save your changes.
-
-
Create your fleet.
aws deadline create-fleet --cli-input-json file://create-fleet-request.json
-