* Update to C++17 * Turn off unity build * Update CMake to 3.18 * Use MSVC 2022 + CUDA 11.8 * Re-create stack for worker images * Allocate more disk space for Windows * Tempiorarily disable clang-tidy * RAPIDS now requires Python 3.10+ * Unpin cuda-python * Use latest NCCL * Use Ubuntu 20.04 in RMM image * Mark failing mgpu test as xfail
109 lines
3.3 KiB
YAML
109 lines
3.3 KiB
YAML
---
|
|
AWSTemplateFormatVersion: "2010-09-09"
|
|
Description: "EC2 Image Builder pipelines to build workers"
|
|
|
|
Parameters:
|
|
BaseImageId:
|
|
Type: String
|
|
Description: Base AMI to build a new image on top of.
|
|
|
|
BootstrapScript:
|
|
Type: String
|
|
Description: Content of AMI customization script
|
|
|
|
InstanceType:
|
|
Type: String
|
|
Description: Instance type for the Image Builder instances.
|
|
|
|
InstanceOperatingSystem:
|
|
Type: String
|
|
Description: The operating system to run on the instance
|
|
AllowedValues:
|
|
- Linux
|
|
- Windows
|
|
Default: "Linux"
|
|
|
|
VolumeSize:
|
|
Type: Number
|
|
Description: Size of EBS volume, in GiBs
|
|
|
|
Conditions:
|
|
IsInstanceWindows:
|
|
!Equals [ !Ref InstanceOperatingSystem, "Windows" ]
|
|
|
|
Resources:
|
|
# IAM role for the image builder instance
|
|
InstanceRole:
|
|
Type: AWS::IAM::Role
|
|
Properties:
|
|
AssumeRolePolicyDocument:
|
|
Version: "2012-10-17"
|
|
Statement:
|
|
- Effect: "Allow"
|
|
Principal:
|
|
Service: "ec2.amazonaws.com"
|
|
Action: "sts:AssumeRole"
|
|
ManagedPolicyArns:
|
|
- arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
|
|
- arn:aws:iam::aws:policy/EC2InstanceProfileForImageBuilder
|
|
- arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
|
|
|
|
InstanceProfile:
|
|
Type: AWS::IAM::InstanceProfile
|
|
Properties:
|
|
Roles:
|
|
- !Ref InstanceRole
|
|
|
|
# Component that runs the bootstrap script
|
|
BootstrapComponent:
|
|
Type: AWS::ImageBuilder::Component
|
|
Properties:
|
|
Name: !Join ["-", [!Ref AWS::StackName, "bootstrap-component", !Select [2, !Split ['/', !Ref AWS::StackId]]]]
|
|
Platform: !Ref InstanceOperatingSystem
|
|
Version: "1.0.0"
|
|
Description: Execute a bootstrap script.
|
|
Data: !Ref BootstrapScript
|
|
|
|
Recipe:
|
|
Type: AWS::ImageBuilder::ImageRecipe
|
|
Properties:
|
|
Name: !Join ["-", [!Ref AWS::StackName, "image", !Select [2, !Split ['/', !Ref AWS::StackId]]]]
|
|
Components:
|
|
- ComponentArn: !Ref BootstrapComponent
|
|
ParentImage: !Ref BaseImageId
|
|
BlockDeviceMappings:
|
|
- DeviceName: !If [IsInstanceWindows, "/dev/sda1", "/dev/xvda"]
|
|
Ebs:
|
|
DeleteOnTermination: true
|
|
Encrypted: false
|
|
VolumeSize: !Ref VolumeSize
|
|
VolumeType: gp2
|
|
Version: "1.0.0"
|
|
|
|
Infrastructure:
|
|
Type: AWS::ImageBuilder::InfrastructureConfiguration
|
|
Properties:
|
|
Name: !Join ["-", [!Ref AWS::StackName, "image-pipeline-infrastructure", !Select [2, !Split ['/', !Ref AWS::StackId]]]]
|
|
InstanceProfileName: !Ref InstanceProfile
|
|
InstanceTypes:
|
|
- !Ref InstanceType
|
|
TerminateInstanceOnFailure: true
|
|
|
|
# Copy to this region only
|
|
Distribution:
|
|
Type: AWS::ImageBuilder::DistributionConfiguration
|
|
Properties:
|
|
Name: !Join ["-", [!Ref AWS::StackName, "image-pipeline-distribution-config", !Select [2, !Split ['/', !Ref AWS::StackId]]]]
|
|
Distributions:
|
|
- Region: !Ref AWS::Region
|
|
AmiDistributionConfiguration: {}
|
|
|
|
# Composition of the above elements
|
|
Pipeline:
|
|
Type: AWS::ImageBuilder::ImagePipeline
|
|
Properties:
|
|
Name: !Join ["-", [!Ref AWS::StackName, "image-pipeline", !Select [2, !Split ['/', !Ref AWS::StackId]]]]
|
|
DistributionConfigurationArn: !Ref Distribution
|
|
ImageRecipeArn: !Ref Recipe
|
|
InfrastructureConfigurationArn: !Ref Infrastructure
|