@@ -33,19 +33,22 @@ def gen_names(name):
33
33
else :
34
34
return name , name
35
35
36
- def update_dashboard_route (route_item , cluster_name ):
36
+ def update_dashboard_route (route_item , cluster_name , namespace ):
37
37
metadata = route_item .get ("generictemplate" , {}).get ("metadata" )
38
38
metadata ["name" ] = f'ray-dashboard-{ cluster_name } '
39
+ metadata ["namespace" ] = namespace
39
40
metadata ["labels" ]["odh-ray-cluster-service" ] = f'{ cluster_name } -head-svc'
40
41
spec = route_item .get ("generictemplate" , {}).get ("spec" )
41
42
spec ["to" ]["name" ] = f'{ cluster_name } -head-svc'
42
43
43
- def update_names (yaml , item , appwrapper_name , cluster_name ):
44
+ def update_names (yaml , item , appwrapper_name , cluster_name , namespace ):
44
45
metadata = yaml .get ("metadata" )
45
46
metadata ["name" ] = appwrapper_name
47
+ metadata ["namespace" ] = namespace
46
48
lower_meta = item .get ("generictemplate" , {}).get ("metadata" )
47
49
lower_meta ["labels" ]["appwrapper.mcad.ibm.com" ] = appwrapper_name
48
50
lower_meta ["name" ] = cluster_name
51
+ lower_meta ["namespace" ] = namespace
49
52
50
53
def update_labels (yaml , instascale , instance_types ):
51
54
metadata = yaml .get ("metadata" )
@@ -154,17 +157,17 @@ def write_user_appwrapper(user_yaml, output_file_name):
154
157
yaml .dump (user_yaml , outfile , default_flow_style = False )
155
158
print (f"Written to: { output_file_name } " )
156
159
157
- def generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env ):
160
+ def generate_appwrapper (name , namespace , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env ):
158
161
user_yaml = read_template (template )
159
162
appwrapper_name , cluster_name = gen_names (name )
160
163
resources = user_yaml .get ("spec" ,"resources" )
161
164
item = resources ["resources" ].get ("GenericItems" )[0 ]
162
165
route_item = resources ["resources" ].get ("GenericItems" )[1 ]
163
- update_names (user_yaml , item , appwrapper_name , cluster_name )
166
+ update_names (user_yaml , item , appwrapper_name , cluster_name , namespace )
164
167
update_labels (user_yaml , instascale , instance_types )
165
168
update_custompodresources (item , min_cpu , max_cpu , min_memory , max_memory , gpu , workers )
166
169
update_nodes (item , appwrapper_name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , image , instascale , env )
167
- update_dashboard_route (route_item , cluster_name )
170
+ update_dashboard_route (route_item , cluster_name , namespace )
168
171
outfile = appwrapper_name + ".yaml"
169
172
write_user_appwrapper (user_yaml , outfile )
170
173
return outfile
@@ -183,6 +186,7 @@ def main():
183
186
parser .add_argument ("--image" , required = False , default = "rayproject/ray:latest" , help = "Ray image to be used (defaults to rayproject/ray:latest)" )
184
187
parser .add_argument ("--instascale" , default = False , required = False , action = 'store_true' , help = "Indicates that instascale is installed on the cluster" )
185
188
parser .add_argument ("--instance-types" , type = str , nargs = '+' , default = [], required = False , help = "Head,worker instance types (space separated)" )
189
+ parser .add_argument ("--namespace" , required = False , default = "default" , help = "Set the kubernetes namespace you want to deploy your cluster to. Default. If left blank, uses the 'default' namespace" )
186
190
187
191
args = parser .parse_args ()
188
192
name = args .name
@@ -196,9 +200,10 @@ def main():
196
200
image = args .image
197
201
instascale = args .instascale
198
202
instance_types = args .instance_types
203
+ namespace = args .namespace
199
204
env = {}
200
205
201
- outfile = generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env )
206
+ outfile = generate_appwrapper (name ,namespace , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env )
202
207
return outfile
203
208
204
209
if __name__ == "__main__" :
0 commit comments