@@ -183,8 +183,11 @@ def cleanup_old(self):
183183 )
184184
185185 # Cleanup controllers
186+ labels = {
187+ 'heritage' : 'deis'
188+ }
186189 controller_removal = []
187- controllers = self ._scheduler ._get_rcs (self .app .id ).json ()
190+ controllers = self ._scheduler ._get_rcs (self .app .id , labels = labels ).json ()
188191 for controller in controllers ['items' ]:
189192 current_version = controller ['metadata' ]['labels' ]['version' ]
190193 # skip the latest release
@@ -208,6 +211,7 @@ def cleanup_old(self):
208211 # find stray env secrets to remove that may have been missed
209212 log_event (self .app , 'Cleaning up orphaned environment var secrets' , level = logging .DEBUG )
210213 labels = {
214+ 'heritage' : 'deis' ,
211215 'app' : self .app .id ,
212216 'type' : 'env'
213217 }
@@ -220,6 +224,22 @@ def cleanup_old(self):
220224
221225 self ._scheduler ._delete_secret (self .app .id , secret ['metadata' ]['name' ])
222226
227+ # Remove stray pods
228+ labels = {
229+ 'heritage' : 'deis'
230+ }
231+ pods = self ._scheduler ._get_pods (self .app .id , labels = labels ).json ()
232+ for pod in pods ['items' ]:
233+ if self ._scheduler ._pod_deleted (pod ):
234+ continue
235+
236+ current_version = pod ['metadata' ]['labels' ]['version' ]
237+ # skip the latest release
238+ if current_version == latest_version :
239+ continue
240+
241+ self ._scheduler ._delete_pod (self .app .id , pod ['metadata' ]['name' ])
242+
223243 def _delete_release_in_scheduler (self , namespace , version ):
224244 """
225245 Deletes a specific release in k8s
@@ -228,13 +248,22 @@ def _delete_release_in_scheduler(self, namespace, version):
228248 secret that container the env var
229249 """
230250 labels = {
251+ 'heritage' : 'deis' ,
231252 'app' : namespace ,
232253 'version' : 'v{}' .format (version )
233254 }
234- controllers = self ._scheduler ._get_rcs (namespace , labels = labels )
235- for controller in controllers . json () ['items' ]:
255+ controllers = self ._scheduler ._get_rcs (namespace , labels = labels ). json ()
256+ for controller in controllers ['items' ]:
236257 self ._scheduler ._scale_rc (namespace , controller ['metadata' ]['name' ], 0 )
237258 self ._scheduler ._delete_rc (namespace , controller ['metadata' ]['name' ])
259+ # Remove stray pods
260+ labels = controller ['metadata' ]['labels' ]
261+ pods = self ._scheduler ._get_pods (namespace , labels = labels ).json ()
262+ for pod in pods ['items' ]:
263+ if self ._scheduler ._pod_deleted (pod ):
264+ continue
265+
266+ self ._scheduler ._delete_pod (namespace , pod ['metadata' ]['name' ])
238267
239268 # remove secret that contains env vars for the release
240269 try :
0 commit comments