Skip to content

Commit d016d6c

Browse files
authored
fix(controller): secret mistakenly deleted when force deploy (#179)
1 parent e899bcf commit d016d6c

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

rootfs/api/models/release.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,9 @@ def clean(self, ptypes=None):
293293
replica_sets = []
294294
for replica_set in replica_sets:
295295
current_version_name = replica_set['metadata']['labels']['version']
296-
# skip the latest release
297-
if current_version_name == self.version_name:
296+
# skip the later release
297+
current_version = int(current_version_name[1:])
298+
if current_version >= self.version:
298299
continue
299300

300301
# aggregate versions together to removal all at once
@@ -313,9 +314,9 @@ def clean(self, ptypes=None):
313314
# handle Deployments specific cleanups
314315
self._cleanup_deployment_secrets_and_configs(self.app.id, ptypes)
315316
# Remove stray pods
316-
self._cleanup_stray_pods(self.app.id, ptypes, self.version_name)
317+
self._cleanup_stray_pods(self.app.id, ptypes, self.version)
317318

318-
def _cleanup_stray_pods(self, namespace, ptypes, latest_version_name):
319+
def _cleanup_stray_pods(self, namespace, ptypes, latest_version):
319320
labels = {'heritage': 'drycc'}
320321
if ptypes is not None:
321322
labels['type__in'] = ptypes
@@ -326,9 +327,9 @@ def _cleanup_stray_pods(self, namespace, ptypes, latest_version_name):
326327
if self.scheduler().pod.deleted(pod):
327328
continue
328329

329-
current_version_name = pod['metadata']['labels']['version']
330-
# skip the latest release
331-
if current_version_name == latest_version_name:
330+
current_version = int(pod['metadata']['labels']['version'][1:])
331+
# skip the later release
332+
if current_version >= latest_version:
332333
continue
333334

334335
try:
@@ -355,8 +356,11 @@ def _cleanup_deployment_secrets_and_configs(self, namespace, ptypes=None):
355356
if not replicasets:
356357
replicasets = []
357358
for replicaset in replicasets:
359+
replica_version = int(replicaset['metadata']['labels']['version'][1:])
360+
# only remove the older releases secret
358361
if (
359362
'version' not in replicaset['metadata']['labels'] or
363+
replica_version < self.version or
360364
replicaset['metadata']['labels']['version'] in version_names
361365
):
362366
continue

0 commit comments

Comments
 (0)