@@ -10,11 +10,14 @@ def read_template(template):
10
10
except yaml .YAMLError as exc :
11
11
print (exc )
12
12
13
- def gen_names ():
14
- gen_id = str (uuid .uuid4 ())
15
- appwrapper_name = "appwrapper-" + gen_id
16
- cluster_name = "cluster-" + gen_id
17
- return appwrapper_name , cluster_name
13
+ def gen_names (name ):
14
+ if not name :
15
+ gen_id = str (uuid .uuid4 ())
16
+ appwrapper_name = "appwrapper-" + gen_id
17
+ cluster_name = "cluster-" + gen_id
18
+ return appwrapper_name , cluster_name
19
+ else :
20
+ return name , name
18
21
19
22
def update_names (yaml , item , appwrapper_name , cluster_name ):
20
23
metadata = yaml .get ("metadata" )
@@ -122,9 +125,9 @@ def write_user_appwrapper(user_yaml, output_file_name):
122
125
yaml .dump (user_yaml , outfile , default_flow_style = False )
123
126
print (f"Written to: { output_file_name } " )
124
127
125
- def generate_appwrapper (min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env ):
128
+ def generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env ):
126
129
user_yaml = read_template (template )
127
- appwrapper_name , cluster_name = gen_names ()
130
+ appwrapper_name , cluster_name = gen_names (name )
128
131
resources = user_yaml .get ("spec" ,"resources" )
129
132
item = resources ["resources" ].get ("GenericItems" )[0 ]
130
133
update_names (user_yaml , item , appwrapper_name , cluster_name )
@@ -138,6 +141,7 @@ def generate_appwrapper(min_cpu, max_cpu, min_memory, max_memory, gpu, workers,
138
141
139
142
def main ():
140
143
parser = argparse .ArgumentParser (description = 'Generate user AppWrapper' )
144
+ parser .add_argument ("--name" , required = False , default = "" , help = "User selected name for AppWrapper and Ray Cluster (auto-generated if not provided)" )
141
145
parser .add_argument ("--min-cpu" , type = int , required = True , help = "min number of CPU(s) in a worker required for running job" )
142
146
parser .add_argument ("--max-cpu" , type = int , required = True , help = "max number of CPU(s) in a worker required for running job" )
143
147
parser .add_argument ("--min-memory" , type = int , required = True , help = "min RAM required in a worker for running job, in GB" )
@@ -150,6 +154,7 @@ def main():
150
154
parser .add_argument ("--instance-types" , type = str , nargs = '+' , default = [], required = False , help = "Head,worker instance types (space separated)" )
151
155
152
156
args = parser .parse_args ()
157
+ name = args .name
153
158
min_cpu = args .min_cpu
154
159
max_cpu = args .max_cpu
155
160
min_memory = args .min_memory
@@ -162,7 +167,7 @@ def main():
162
167
instance_types = args .instance_types
163
168
env = {}
164
169
165
- outfile = generate_appwrapper (min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env )
170
+ outfile = generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env )
166
171
return outfile
167
172
168
173
if __name__ == "__main__" :
0 commit comments