11import asyncio
2+ import copy
23import time
34from collections import defaultdict
45from contextlib import suppress
@@ -79,14 +80,15 @@ def build_scheduler_deployment_spec(
7980 "labels" : labels ,
8081 "annotations" : annotations ,
8182 }
82- spec = {}
83- spec ["replicas" ] = 1
84- spec ["selector" ] = {
85- "matchLabels" : labels ,
86- }
87- spec ["template" ] = {
88- "metadata" : metadata ,
89- "spec" : pod_spec ,
83+ spec = {
84+ "replicas" : 1 ,
85+ "selector" : {
86+ "matchLabels" : labels ,
87+ },
88+ "template" : {
89+ "metadata" : metadata ,
90+ "spec" : pod_spec ,
91+ },
9092 }
9193 return {
9294 "apiVersion" : "apps/v1" ,
@@ -132,14 +134,15 @@ def build_worker_deployment_spec(
132134 "labels" : labels ,
133135 "annotations" : annotations ,
134136 }
135- spec = {}
136- spec ["replicas" ] = 1 # make_worker_spec returns dict with a replicas key?
137- spec ["selector" ] = {
138- "matchLabels" : labels ,
139- }
140- spec ["template" ] = {
141- "metadata" : metadata ,
142- "spec" : pod_spec ,
137+ spec = {
138+ "replicas" : 1 ,
139+ "selector" : {
140+ "matchLabels" : labels ,
141+ },
142+ "template" : {
143+ "metadata" : metadata ,
144+ "spec" : copy .deepcopy (pod_spec ),
145+ },
143146 }
144147 deployment_spec = {
145148 "apiVersion" : "apps/v1" ,
@@ -157,13 +160,11 @@ def build_worker_deployment_spec(
157160 "value" : f"tcp://{ cluster_name } -scheduler.{ namespace } .svc.cluster.local:8786" ,
158161 },
159162 ]
160- for i in range (len (deployment_spec ["spec" ]["template" ]["spec" ]["containers" ])):
161- if "env" in deployment_spec ["spec" ]["template" ]["spec" ]["containers" ][i ]:
162- deployment_spec ["spec" ]["template" ]["spec" ]["containers" ][i ]["env" ].extend (
163- env
164- )
163+ for container in deployment_spec ["spec" ]["template" ]["spec" ]["containers" ]:
164+ if "env" in container :
165+ container ["env" ].extend (env )
165166 else :
166- deployment_spec [ "spec" ][ "template" ][ "spec" ][ "containers" ][ i ] ["env" ] = env
167+ container ["env" ] = env
167168 return deployment_spec
168169
169170
@@ -187,19 +188,19 @@ def build_job_pod_spec(job_name, cluster_name, namespace, spec, annotations, lab
187188 "labels" : labels ,
188189 "annotations" : annotations ,
189190 },
190- "spec" : spec ,
191+ "spec" : copy . deepcopy ( spec ) ,
191192 }
192193 env = [
193194 {
194195 "name" : "DASK_SCHEDULER_ADDRESS" ,
195196 "value" : f"tcp://{ cluster_name } -scheduler.{ namespace } .svc.cluster.local:8786" ,
196197 },
197198 ]
198- for i in range ( len ( pod_spec ["spec" ]["containers" ])) :
199- if "env" in pod_spec [ "spec" ][ "containers" ][ i ] :
200- pod_spec [ "spec" ][ "containers" ][ i ] ["env" ].extend (env )
199+ for container in pod_spec ["spec" ]["containers" ]:
200+ if "env" in container :
201+ container ["env" ].extend (env )
201202 else :
202- pod_spec [ "spec" ][ "containers" ][ i ] ["env" ] = env
203+ container ["env" ] = env
203204 return pod_spec
204205
205206
0 commit comments