@@ -19,19 +19,22 @@ def gen_names(name):
19
19
else :
20
20
return name , name
21
21
22
- def update_dashboard_route (route_item , cluster_name ):
22
+ def update_dashboard_route (route_item , cluster_name , namespace ):
23
23
metadata = route_item .get ("generictemplate" , {}).get ("metadata" )
24
24
metadata ["name" ] = f'ray-dashboard-{ cluster_name } '
25
+ metadata ["namespace" ] = namespace
25
26
metadata ["labels" ]["odh-ray-cluster-service" ] = f'{ cluster_name } -head-svc'
26
27
spec = route_item .get ("generictemplate" , {}).get ("spec" )
27
28
spec ["to" ]["name" ] = f'{ cluster_name } -head-svc'
28
29
29
- def update_names (yaml , item , appwrapper_name , cluster_name ):
30
+ def update_names (yaml , item , appwrapper_name , cluster_name , namespace ):
30
31
metadata = yaml .get ("metadata" )
31
32
metadata ["name" ] = appwrapper_name
33
+ metadata ["namespace" ] = namespace
32
34
lower_meta = item .get ("generictemplate" , {}).get ("metadata" )
33
35
lower_meta ["labels" ]["appwrapper.mcad.ibm.com" ] = appwrapper_name
34
36
lower_meta ["name" ] = cluster_name
37
+ lower_meta ["namespace" ] = namespace
35
38
36
39
def update_labels (yaml , instascale , instance_types ):
37
40
metadata = yaml .get ("metadata" )
@@ -140,17 +143,17 @@ def write_user_appwrapper(user_yaml, output_file_name):
140
143
yaml .dump (user_yaml , outfile , default_flow_style = False )
141
144
print (f"Written to: { output_file_name } " )
142
145
143
- def generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env ):
146
+ def generate_appwrapper (name , namespace , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env ):
144
147
user_yaml = read_template (template )
145
148
appwrapper_name , cluster_name = gen_names (name )
146
149
resources = user_yaml .get ("spec" ,"resources" )
147
150
item = resources ["resources" ].get ("GenericItems" )[0 ]
148
151
route_item = resources ["resources" ].get ("GenericItems" )[1 ]
149
- update_names (user_yaml , item , appwrapper_name , cluster_name )
152
+ update_names (user_yaml , item , appwrapper_name , cluster_name , namespace )
150
153
update_labels (user_yaml , instascale , instance_types )
151
154
update_custompodresources (item , min_cpu , max_cpu , min_memory , max_memory , gpu , workers )
152
155
update_nodes (item , appwrapper_name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , image , instascale , env )
153
- update_dashboard_route (route_item , cluster_name )
156
+ update_dashboard_route (route_item , cluster_name , namespace )
154
157
outfile = appwrapper_name + ".yaml"
155
158
write_user_appwrapper (user_yaml , outfile )
156
159
return outfile
@@ -169,6 +172,7 @@ def main():
169
172
parser .add_argument ("--image" , required = False , default = "rayproject/ray:latest" , help = "Ray image to be used (defaults to rayproject/ray:latest)" )
170
173
parser .add_argument ("--instascale" , default = False , required = False , action = 'store_true' , help = "Indicates that instascale is installed on the cluster" )
171
174
parser .add_argument ("--instance-types" , type = str , nargs = '+' , default = [], required = False , help = "Head,worker instance types (space separated)" )
175
+ 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" )
172
176
173
177
args = parser .parse_args ()
174
178
name = args .name
@@ -182,9 +186,10 @@ def main():
182
186
image = args .image
183
187
instascale = args .instascale
184
188
instance_types = args .instance_types
189
+ namespace = args .namespace
185
190
env = {}
186
191
187
- outfile = generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , env )
192
+ outfile = generate_appwrapper (name , min_cpu , max_cpu , min_memory , max_memory , gpu , workers , template , image , instascale , instance_types , namespace , env )
188
193
return outfile
189
194
190
195
if __name__ == "__main__" :
0 commit comments