5757# * Fix pmix CVE
5858# * Use Slurm 23.02.5
5959MIN_PARALLEL_CLUSTER_VERSION = parse_version ('3.6.0' )
60- DEFAULT_PARALLEL_CLUSTER_VERSION = parse_version ('3.7.1' )
61- DEFAULT_PARALLEL_CLUSTER_MUNGE_VERSION = '0.5.15'
62- DEFAULT_PARALLEL_CLUSTER_MUNGE_VERSIONS = {
63- '3.6.0' : '0.5.15' ,
64- '3.6.1' : '0.5.15' ,
65- '3.7.0' : '0.5.15' ,
66- '3.7.1' : '0.5.15' ,
60+ DEFAULT_PARALLEL_CLUSTER_VERSION = parse_version ('3.7.2' )
61+ PARALLEL_CLUSTER_VERSIONS = [
62+ '3.6.0' ,
63+ '3.6.1' ,
64+ '3.7.0' ,
65+ '3.7.1' ,
66+ '3.7.2' ,
67+ ]
68+ PARALLEL_CLUSTER_MUNGE_VERSIONS = {
69+ # This can be found on the head node at /opt/parallelcluster/sources
70+ # This can be found on the head node at /etc/chef/local-mode-cache/cache/
71+ '3.6.0' : '0.5.15' , # confirmed
72+ '3.6.1' : '0.5.15' , # confirmed
73+ '3.7.0' : '0.5.15' , # confirmed
74+ '3.7.1' : '0.5.15' , # confirmed
75+ '3.7.2' : '0.5.15' , # confirmed
6776}
68- DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSION = '3.9.16'
69- DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSIONS = {
70- '3.6.0' : '3.9.16' ,
71- '3.6.1' : '3.9.16' ,
72- '3.7.0' : '3.9.16' ,
73- '3.7.1' : '3.9.16' ,
77+ PARALLEL_CLUSTER_PYTHON_VERSIONS = {
78+ # This can be found on the head node at /opt/parallelcluster/pyenv/versions
79+ '3.6.0' : '3.9.16' , # confirmed
80+ '3.6.1' : '3.9.16' , # confirmed
81+ '3.7.0' : '3.9.16' , # confirmed
82+ '3.7.1' : '3.9.16' , # confirmed
83+ '3.7.2' : '3.9.16' , # confirmed
7484}
75- DEFAULT_PARALLEL_CLUSTER_SLURM_VERSION = '23-02-3-1'
76- DEFAULT_PARALLEL_CLUSTER_SLURM_VERSIONS = {
77- '3.7.0' : DEFAULT_PARALLEL_CLUSTER_SLURM_VERSION ,
78- '3.7.1' : DEFAULT_PARALLEL_CLUSTER_SLURM_VERSION ,
85+ PARALLEL_CLUSTER_SLURM_VERSIONS = {
86+ # This can be found on the head node at /etc/chef/local-mode-cache/cache/
87+ '3.6.0' : '23-02-2-1' , # confirmed
88+ '3.6.1' : '23-02-2-1' , # confirmed
89+ '3.7.0' : '23-02-4-1' , # confirmed
90+ '3.7.1' : '23-02-5-1' , # confirmed
91+ '3.7.2' : '23-02-6-1' , # confirmed
92+ }
93+ SLURM_REST_API_VERSIONS = {
94+ '23-02-2-1' : '0.0.39' ,
95+ '23-02-3-1' : '0.0.39' ,
96+ '23-02-4-1' : '0.0.39' ,
97+ '23-02-5-1' : '0.0.39' ,
98+ '23-02-6-1' : '0.0.39' ,
7999}
80-
81- def get_DEFAULT_PARALLEL_CLUSTER_MUNGE_VERSION (config ):
82- parallel_cluster_version = config .get ('slurm' , {}).get ('ParallelClusterConfig' , {}).get ('Version' , DEFAULT_PARALLEL_CLUSTER_VERSION )
83- munge_version = DEFAULT_PARALLEL_CLUSTER_MUNGE_VERSIONS .get (parallel_cluster_version , str (DEFAULT_PARALLEL_CLUSTER_MUNGE_VERSION ))
84- return munge_version
85-
86- def get_DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSION (config ):
87- parallel_cluster_version = config .get ('slurm' , {}).get ('ParallelClusterConfig' , {}).get ('Version' , DEFAULT_PARALLEL_CLUSTER_VERSION )
88- python_version = DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSIONS .get (parallel_cluster_version , str (DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSION ))
89- return python_version
90-
91100PARALLEL_CLUSTER_ALLOWED_OSES = [
92101 'alinux2' ,
93102 'centos7' ,
@@ -96,24 +105,28 @@ def get_DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSION(config):
96105 'ubuntu2204'
97106 ]
98107
99- DEFAULT_SLURM_VERSION = '23.02.1'
100- def get_DEFAULT_SLURM_VERSION (config ):
101- if config .get ('slurm' , {}).get ('ParallelClusterConfig' , {}).get ('Enable' , False ):
102- parallel_cluster_version = config .get ('slurm' , {}).get ('ParallelClusterConfig' , {}).get ('Version' , DEFAULT_PARALLEL_CLUSTER_VERSION )
103- slurm_version = DEFAULT_PARALLEL_CLUSTER_SLURM_VERSIONS .get (parallel_cluster_version , DEFAULT_PARALLEL_CLUSTER_SLURM_VERSION )
104- else :
105- slurm_version = DEFAULT_SLURM_VERSION
108+ def get_parallel_cluster_version (config ):
109+ return config ['slurm' ]['ParallelClusterConfig' ]['Version' ]
110+
111+ def get_PARALLEL_CLUSTER_MUNGE_VERSION (config ):
112+ parallel_cluster_version = get_parallel_cluster_version (config )
113+ munge_version = PARALLEL_CLUSTER_MUNGE_VERSIONS [parallel_cluster_version ]
114+ return munge_version
115+
116+ def get_PARALLEL_CLUSTER_PYTHON_VERSION (config ):
117+ parallel_cluster_version = get_parallel_cluster_version (config )
118+ python_version = PARALLEL_CLUSTER_PYTHON_VERSIONS [parallel_cluster_version ]
119+ return python_version
120+
121+ def get_SLURM_VERSION (config ):
122+ parallel_cluster_version = get_parallel_cluster_version (config )
123+ slurm_version = PARALLEL_CLUSTER_SLURM_VERSIONS [parallel_cluster_version ]
106124 return slurm_version
107125
108- DEFAULT_SLURM_REST_API_VERSION = '0.0.39'
109- DEFAULT_SLURM_REST_API_VERSIONs = {
110- '23.02.1' : '0.0.39' ,
111- '23-02-3-1' : '0.0.39' ,
112- }
113- def get_default_slurm_rest_api_version (config ):
114- slurm_version = config .get ('slurm' , {}).get ('SlurmVersion' , get_DEFAULT_SLURM_VERSION (config ))
115- default_slurm_rest_api_version = DEFAULT_SLURM_REST_API_VERSIONs .get (slurm_version , DEFAULT_SLURM_REST_API_VERSION )
116- return default_slurm_rest_api_version
126+ def get_slurm_rest_api_version (config ):
127+ slurm_version = get_SLURM_VERSION (config )
128+ slurm_rest_api_version = SLURM_REST_API_VERSIONS .get (slurm_version , )
129+ return slurm_rest_api_version
117130
118131# Determine all AWS regions available on the account.
119132default_region = environ .get ("AWS_DEFAULT_REGION" , "us-east-1" )
@@ -249,9 +262,7 @@ def get_config_schema(config):
249262 'slurm' : {
250263 Optional ('ParallelClusterConfig' ): {
251264 Optional ('Enable' , default = True ): And (bool , lambda s : s == True ),
252- Optional ('Version' , default = str (DEFAULT_PARALLEL_CLUSTER_VERSION )): And (str , lambda s : parse_version (s ) >= MIN_PARALLEL_CLUSTER_VERSION ),
253- Optional ('MungeVersion' , default = get_DEFAULT_PARALLEL_CLUSTER_MUNGE_VERSION (config )): str ,
254- Optional ('PythonVersion' , default = get_DEFAULT_PARALLEL_CLUSTER_PYTHON_VERSION (config )): str ,
265+ Optional ('Version' , default = str (DEFAULT_PARALLEL_CLUSTER_VERSION )): And (str , lambda version : version in PARALLEL_CLUSTER_VERSIONS , lambda version : parse_version (version ) >= MIN_PARALLEL_CLUSTER_VERSION ),
255266 Optional ('Image' , default = {'Os' : 'centos7' }): {
256267 'Os' : And (str , lambda s : s in PARALLEL_CLUSTER_ALLOWED_OSES , ),
257268 Optional ('CustomAmi' ): And (str , lambda s : s .startswith ('ami-' )),
@@ -311,10 +322,6 @@ def get_config_schema(config):
311322 ]
312323 }
313324 },
314- # SlurmVersion:
315- # Latest tested version
316- # Critical security fix released in 21.08.8. Must be later than that.
317- Optional ('SlurmVersion' , default = get_DEFAULT_SLURM_VERSION (config )): str ,
318325 #
319326 # ClusterName:
320327 # Name of the ParallelCluster cluster.
@@ -342,7 +349,7 @@ def get_config_schema(config):
342349 # File that will be included at end of slurm.conf to override configuration parameters.
343350 Optional ('SlurmConfOverrides' ): str ,
344351 Optional ('SlurmrestdUid' , default = 901 ): int ,
345- Optional ('SlurmRestApiVersion' , default = get_default_slurm_rest_api_version (config )): str ,
352+ Optional ('SlurmRestApiVersion' , default = get_slurm_rest_api_version (config )): str ,
346353 },
347354 #
348355 # SubmitterSecurityGroupIds:
0 commit comments