diff --git a/constants/constants.go b/constants/constants.go index c3cd934..1032fbe 100644 --- a/constants/constants.go +++ b/constants/constants.go @@ -26,6 +26,7 @@ const ( ReleaseNameEnvVar = "RELEASE_NAME" TykBootstrapLabel = "tyk.tyk.io/k8s-bootstrap" + TykBootstrapPreDeleteLabel = "tyk-k8s-bootstrap-pre-delete" TykBootstrapDashboardDeployLabel = "tyk-dashboard" TykBootstrapDashboardSvcLabel = "tyk-dashboard" TykBootstrapReleaseLabel = "release" diff --git a/predelete/predelete.go b/predelete/predelete.go index f55da65..949b2e4 100644 --- a/predelete/predelete.go +++ b/predelete/predelete.go @@ -103,36 +103,40 @@ func PreDeleteEnterprisePortalSecret(clientset *kubernetes.Clientset) error { // PreDeleteBootstrappingJobs deletes all jobs within the release namespace, that has specific label. func PreDeleteBootstrappingJobs(clientset *kubernetes.Clientset) error { + // Usually, the raw strings in label selectors are not recommended. jobs, err := clientset. BatchV1(). Jobs(data.AppConfig.TykPodNamespace). - List(context.TODO(), metav1.ListOptions{}) + List( + context.TODO(), + metav1.ListOptions{ + LabelSelector: fmt.Sprintf("%s", constants.TykBootstrapLabel), + }, + ) if err != nil { return err } - found := false + var errCascading error for _, job := range jobs.Items { - _, exists := job.Labels[constants.TykBootstrapLabel] - if exists { + jobLabel, exists := job.ObjectMeta.Labels[constants.TykBootstrapLabel] + if !exists { + continue + } + + // Do not need to delete pre-delete job. It will be deleted by Helm. + if jobLabel != constants.TykBootstrapPreDeleteLabel { deletePropagationType := metav1.DeletePropagationBackground - err = clientset. + err2 := clientset. BatchV1(). Jobs(data.AppConfig.TykPodNamespace). Delete(context.TODO(), job.Name, metav1.DeleteOptions{PropagationPolicy: &deletePropagationType}) - if err != nil { - return err + if err2 != nil { + errCascading = err2 } - - found = true } } - if !found { - fmt.Println("A previously created bootstrapping job has not been identified") - } else { - fmt.Println("A previously created bootstrapping job was identified and deleted") - } - return nil + return errCascading }