mirror of https://github.com/OpenVidu/openvidu.git
openvidu-deployment: Add missing Graviton instances, Nvidia GPU instances, and Nvidia driver AMI selection
- Add missing Graviton/ARM instance families to CloudFormation conditions: r6g, r6gd, r7g, r7gd, r8g, c8gd, m8gd - Add Nvidia GPU instance detection conditions (IsNvidia/IsMasterNodeNvidia/ IsMediaNodeNvidia) for families: g4dn, g5, g5g, g6, g6e, g6f, gr6, gr6f, g7e, p4d, p4de, p5, p5e, p5en, p6-b200, p6-b300, p6e-gb200 - Use Ubuntu Deep Learning AMIs with pre-installed Nvidia drivers when a GPU instance type is selected, choosing arm64 or x86_64 variant based on the Graviton conditionpull/860/head
parent
03c9b4178a
commit
c4673170b4
|
|
@ -449,14 +449,26 @@ Conditions:
|
||||||
IsGraviton: !Or
|
IsGraviton: !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 't4g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 't4g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6g']
|
- !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r7g']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r8g']
|
||||||
|
|
||||||
Mappings:
|
Mappings:
|
||||||
ArmImage:
|
ArmImage:
|
||||||
|
|
|
||||||
|
|
@ -853,25 +853,91 @@ Conditions:
|
||||||
IsMasterGraviton: !Or
|
IsMasterGraviton: !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 't4g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 't4g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6g']
|
- !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r7g']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6e-gb200']
|
||||||
IsMediaGraviton: !Or
|
IsMediaGraviton: !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 't4g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 't4g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6g']
|
- !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r7g']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6e-gb200']
|
||||||
|
IsMasterNodeNvidia: !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g4dn']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g6e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'gr6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'gr6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g7e']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p4d']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p4de']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p5e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p5en']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6-b200']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6-b300']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6e-gb200']
|
||||||
|
IsMediaNodeNvidia: !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g4dn']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g6e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'gr6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'gr6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g7e']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p4d']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p4de']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p5e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p5en']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6-b200']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6-b300']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6e-gb200']
|
||||||
|
|
||||||
Mappings:
|
Mappings:
|
||||||
ArmImage:
|
ArmImage:
|
||||||
|
|
@ -1560,8 +1626,14 @@ Resources:
|
||||||
Properties:
|
Properties:
|
||||||
ImageId: !If
|
ImageId: !If
|
||||||
- IsMasterGraviton
|
- IsMasterGraviton
|
||||||
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
- !If
|
||||||
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
- IsMasterNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/arm64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
||||||
|
- !If
|
||||||
|
- IsMasterNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/x86_64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
||||||
LaunchTemplate:
|
LaunchTemplate:
|
||||||
# Enable IMDSv2 by default
|
# Enable IMDSv2 by default
|
||||||
LaunchTemplateId: !Ref IMDSv2LaunchTemplateMasterNode
|
LaunchTemplateId: !Ref IMDSv2LaunchTemplateMasterNode
|
||||||
|
|
@ -1813,8 +1885,14 @@ Resources:
|
||||||
- !GetAtt OpenViduMediaNodeSG.GroupId
|
- !GetAtt OpenViduMediaNodeSG.GroupId
|
||||||
ImageId: !If
|
ImageId: !If
|
||||||
- IsMediaGraviton
|
- IsMediaGraviton
|
||||||
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
- !If
|
||||||
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
- IsMediaNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/arm64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
||||||
|
- !If
|
||||||
|
- IsMediaNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/x86_64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
||||||
KeyName: !Ref KeyName
|
KeyName: !Ref KeyName
|
||||||
InstanceType: !Ref MediaNodeInstanceType
|
InstanceType: !Ref MediaNodeInstanceType
|
||||||
UserData:
|
UserData:
|
||||||
|
|
|
||||||
|
|
@ -845,25 +845,91 @@ Conditions:
|
||||||
IsMasterGraviton: !Or
|
IsMasterGraviton: !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 't4g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 't4g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c6gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c7gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6g']
|
- !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'c8gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm6gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'm8gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r7g']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'r8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6e-gb200']
|
||||||
IsMediaGraviton: !Or
|
IsMediaGraviton: !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 't4g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 't4g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c6gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c7gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6g']
|
- !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'c8gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm6gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'm8gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r7g']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'r8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6e-gb200']
|
||||||
|
IsMasterNodeNvidia: !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g4dn']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g6e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'gr6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'gr6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'g7e']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p4d']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p4de']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p5e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p5en']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6-b200']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6-b300']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MasterNodeInstanceType ]], 'p6e-gb200']
|
||||||
|
IsMediaNodeNvidia: !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g4dn']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g6e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'gr6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'gr6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'g7e']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p4d']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p4de']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p5e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p5en']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6-b200']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6-b300']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref MediaNodeInstanceType ]], 'p6e-gb200']
|
||||||
|
|
||||||
Mappings:
|
Mappings:
|
||||||
ArmImage:
|
ArmImage:
|
||||||
|
|
@ -1733,8 +1799,14 @@ Resources:
|
||||||
Name: !Ref OpenViduMasterInstanceProfile
|
Name: !Ref OpenViduMasterInstanceProfile
|
||||||
ImageId: !If
|
ImageId: !If
|
||||||
- IsMasterGraviton
|
- IsMasterGraviton
|
||||||
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
- !If
|
||||||
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
- IsMasterNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/arm64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
||||||
|
- !If
|
||||||
|
- IsMasterNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/x86_64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
||||||
InstanceType: !Ref MasterNodeInstanceType
|
InstanceType: !Ref MasterNodeInstanceType
|
||||||
KeyName: !Ref KeyName
|
KeyName: !Ref KeyName
|
||||||
SecurityGroupIds:
|
SecurityGroupIds:
|
||||||
|
|
@ -2133,8 +2205,14 @@ Resources:
|
||||||
- !GetAtt OpenViduMediaNodeSG.GroupId
|
- !GetAtt OpenViduMediaNodeSG.GroupId
|
||||||
ImageId: !If
|
ImageId: !If
|
||||||
- IsMediaGraviton
|
- IsMediaGraviton
|
||||||
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
- !If
|
||||||
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
- IsMediaNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/arm64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
||||||
|
- !If
|
||||||
|
- IsMediaNodeNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/x86_64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
||||||
KeyName: !Ref KeyName
|
KeyName: !Ref KeyName
|
||||||
InstanceType: !Ref MediaNodeInstanceType
|
InstanceType: !Ref MediaNodeInstanceType
|
||||||
UserData:
|
UserData:
|
||||||
|
|
|
||||||
|
|
@ -470,14 +470,47 @@ Conditions:
|
||||||
IsGraviton: !Or
|
IsGraviton: !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 't4g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 't4g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c6gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c7gn']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6g']
|
- !Or
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'c8gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6g']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7gd']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm6gd']
|
||||||
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8g']
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'm8gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r6g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r6gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r7g']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r7gd']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'r8g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p6e-gb200']
|
||||||
|
IsNvidia: !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g4dn']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g5g']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g6e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'gr6']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'gr6f']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'g7e']
|
||||||
|
- !Or
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p4d']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p4de']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p5']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p5e']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p5en']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p6-b200']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p6-b300']
|
||||||
|
- !Equals [ !Select [ 0, !Split ['.', !Ref InstanceType ]], 'p6e-gb200']
|
||||||
|
|
||||||
Mappings:
|
Mappings:
|
||||||
ArmImage:
|
ArmImage:
|
||||||
|
|
@ -1030,8 +1063,14 @@ Resources:
|
||||||
Properties:
|
Properties:
|
||||||
ImageId: !If
|
ImageId: !If
|
||||||
- IsGraviton
|
- IsGraviton
|
||||||
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
- !If
|
||||||
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
- IsNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/arm64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [ArmImage, !Ref OperatingSystem, ImageId]
|
||||||
|
- !If
|
||||||
|
- IsNvidia
|
||||||
|
- '{{resolve:ssm:/aws/service/deeplearning/ami/x86_64/base-oss-nvidia-driver-gpu-ubuntu-24.04/latest/ami-id}}'
|
||||||
|
- !FindInMap [AmdImage, !Ref OperatingSystem, ImageId]
|
||||||
LaunchTemplate:
|
LaunchTemplate:
|
||||||
# Enable IMDSv2 by default
|
# Enable IMDSv2 by default
|
||||||
LaunchTemplateId: !Ref IMDSv2LaunchTemplate
|
LaunchTemplateId: !Ref IMDSv2LaunchTemplate
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue