@@ -903,9 +903,10 @@ def update_config_for_exostellar(self):
903
903
if self .slurm_compute_node_sg_id :
904
904
if self .slurm_compute_node_sg_id not in self .config ['slurm' ]['Xio' ]['WorkerSecurityGroupIds' ]:
905
905
self .config ['slurm' ]['Xio' ]['WorkerSecurityGroupIds' ].append (self .slurm_compute_node_sg_id )
906
- if self .res_dcv_security_group_id :
907
- if self .res_dcv_security_group_id not in self .config ['slurm' ]['Xio' ]['WorkerSecurityGroupIds' ]:
908
- self .config ['slurm' ]['Xio' ]['WorkerSecurityGroupIds' ].append (self .res_dcv_security_group_id )
906
+ if 'RESStackName' in self .config :
907
+ if self .res_dcv_security_group_id :
908
+ if self .res_dcv_security_group_id not in self .config ['slurm' ]['Xio' ]['WorkerSecurityGroupIds' ]:
909
+ self .config ['slurm' ]['Xio' ]['WorkerSecurityGroupIds' ].append (self .res_dcv_security_group_id )
909
910
910
911
# Get values from stack outputs
911
912
ems_ip_address = None
@@ -1376,8 +1377,9 @@ def check_regions_config(self):
1376
1377
self .instance_types = sorted (self .instance_types )
1377
1378
1378
1379
# Filter the instance types by architecture due to PC limitation to 1 architecture
1379
- # Also require at least 2 GB of memory.
1380
+ # Also require at least 4 GB of memory.
1380
1381
# Also filter by the CPU vendor from the config
1382
+ MIN_COMPUTE_NODE_GB = 4
1381
1383
cluster_architecture = self .config ['slurm' ]['ParallelClusterConfig' ]['Architecture' ]
1382
1384
logger .info (f"ParallelCluster Architecture: { cluster_architecture } " )
1383
1385
filtered_instance_types = []
@@ -1387,7 +1389,7 @@ def check_regions_config(self):
1387
1389
logger .warning (f"Excluding { instance_type } because architecture ({ instance_architecture } ) != { cluster_architecture } " )
1388
1390
continue
1389
1391
mem_gb = int (self .plugin .get_MemoryInMiB (self .cluster_region , instance_type ) / 1024 )
1390
- if mem_gb < 2 :
1392
+ if mem_gb < MIN_COMPUTE_NODE_GB :
1391
1393
logger .warning (f"Excluding { instance_type } because has less than 2 GiB of memory." )
1392
1394
continue
1393
1395
cpu_vendor = self .plugin .get_cpu_vendor (self .cluster_region , instance_type )
@@ -1425,9 +1427,7 @@ def create_parallel_cluster_lambdas(self):
1425
1427
aws_lambda .Architecture .X86_64 ,
1426
1428
],
1427
1429
compatible_runtimes = [
1428
- aws_lambda .Runtime .PYTHON_3_9 ,
1429
- # aws_lambda.Runtime.PYTHON_3_10, # Doesn't work: No module named 'rpds.rpds'
1430
- # aws_lambda.Runtime.PYTHON_3_11, # Doesn't work: No module named 'rpds.rpds'
1430
+ aws_lambda .Runtime .PYTHON_3_12 ,
1431
1431
],
1432
1432
)
1433
1433
@@ -1437,7 +1437,7 @@ def create_parallel_cluster_lambdas(self):
1437
1437
function_name = f"{ self .stack_name } -CreateBuildFiles" ,
1438
1438
description = "Create ParallelCluster build configuration files" ,
1439
1439
memory_size = 2048 ,
1440
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1440
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1441
1441
architecture = aws_lambda .Architecture .X86_64 ,
1442
1442
timeout = Duration .minutes (2 ),
1443
1443
log_retention = logs .RetentionDays .INFINITE ,
@@ -1499,7 +1499,7 @@ def create_parallel_cluster_lambdas(self):
1499
1499
function_name = f"{ self .stack_name } -CreateParallelClusterConfig" ,
1500
1500
description = "Create ParallelCluster config" ,
1501
1501
memory_size = 2048 ,
1502
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1502
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1503
1503
architecture = aws_lambda .Architecture .X86_64 ,
1504
1504
timeout = Duration .minutes (15 ),
1505
1505
log_retention = logs .RetentionDays .INFINITE ,
@@ -1547,7 +1547,7 @@ def create_parallel_cluster_lambdas(self):
1547
1547
function_name = f"{ self .stack_name } -CreateParallelCluster" ,
1548
1548
description = "Create ParallelCluster" ,
1549
1549
memory_size = 2048 ,
1550
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1550
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1551
1551
architecture = aws_lambda .Architecture .X86_64 ,
1552
1552
timeout = Duration .minutes (15 ),
1553
1553
log_retention = logs .RetentionDays .INFINITE ,
@@ -1846,7 +1846,7 @@ def create_parallel_cluster_lambdas(self):
1846
1846
function_name = f"{ self .stack_name } -CreateHeadNodeARecord" ,
1847
1847
description = "Create head node A record" ,
1848
1848
memory_size = 2048 ,
1849
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1849
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1850
1850
architecture = aws_lambda .Architecture .X86_64 ,
1851
1851
timeout = Duration .minutes (15 ),
1852
1852
log_retention = logs .RetentionDays .INFINITE ,
@@ -1893,7 +1893,7 @@ def create_parallel_cluster_lambdas(self):
1893
1893
function_name = f"{ self .stack_name } -UpdateHeadNode" ,
1894
1894
description = "Update head node" ,
1895
1895
memory_size = 2048 ,
1896
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1896
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1897
1897
architecture = aws_lambda .Architecture .X86_64 ,
1898
1898
timeout = Duration .minutes (15 ),
1899
1899
log_retention = logs .RetentionDays .INFINITE ,
@@ -1935,7 +1935,7 @@ def create_parallel_cluster_lambdas(self):
1935
1935
function_name = f"{ self .stack_name } -ConfigUsersGroupsJson" ,
1936
1936
description = "Configure users and groups json file" ,
1937
1937
memory_size = 2048 ,
1938
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1938
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1939
1939
architecture = aws_lambda .Architecture .X86_64 ,
1940
1940
timeout = Duration .minutes (15 ),
1941
1941
log_retention = logs .RetentionDays .INFINITE ,
@@ -1983,7 +1983,7 @@ def create_parallel_cluster_lambdas(self):
1983
1983
function_name = f"{ self .stack_name } -ConfigExternalLoginNodes" ,
1984
1984
description = "Configure external login nodes" ,
1985
1985
memory_size = 2048 ,
1986
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
1986
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
1987
1987
architecture = aws_lambda .Architecture .X86_64 ,
1988
1988
timeout = Duration .minutes (15 ),
1989
1989
log_retention = logs .RetentionDays .INFINITE ,
@@ -2030,7 +2030,7 @@ def create_parallel_cluster_lambdas(self):
2030
2030
function_name = f"{ self .stack_name } -DeconfigUsersGroupsJson" ,
2031
2031
description = "Deconfigure RES users and groups json file" ,
2032
2032
memory_size = 2048 ,
2033
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
2033
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
2034
2034
architecture = aws_lambda .Architecture .X86_64 ,
2035
2035
timeout = Duration .minutes (15 ),
2036
2036
log_retention = logs .RetentionDays .INFINITE ,
@@ -2072,7 +2072,7 @@ def create_parallel_cluster_lambdas(self):
2072
2072
function_name = f"{ self .stack_name } -DeconfigExternalLoginNodes" ,
2073
2073
description = "Deconfigure external login nodes" ,
2074
2074
memory_size = 2048 ,
2075
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
2075
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
2076
2076
architecture = aws_lambda .Architecture .X86_64 ,
2077
2077
timeout = Duration .minutes (15 ),
2078
2078
log_retention = logs .RetentionDays .INFINITE ,
@@ -2114,7 +2114,7 @@ def create_callSlurmRestApiLambda(self):
2114
2114
function_name = f"{ self .stack_name } -CallSlurmRestApiLambda" ,
2115
2115
description = "Example showing how to call Slurm REST API" ,
2116
2116
memory_size = 128 ,
2117
- runtime = aws_lambda .Runtime .PYTHON_3_9 ,
2117
+ runtime = aws_lambda .Runtime .PYTHON_3_12 ,
2118
2118
architecture = aws_lambda .Architecture .ARM_64 ,
2119
2119
timeout = Duration .minutes (1 ),
2120
2120
log_retention = logs .RetentionDays .INFINITE ,
0 commit comments