From 10787ad7a117aec57bc451e1882c40beb8319794 Mon Sep 17 00:00:00 2001 From: itsankit-google Date: Mon, 15 Apr 2024 10:02:23 +0000 Subject: [PATCH] Reduce the length of pre-upgrade and pos-upgrade job names so that it does not exceed 63 char limit --- .github/workflows/go.yml | 2 +- controllers/testdata/post_upgrade_job.json | 6 ++--- controllers/testdata/pre_upgrade_job.json | 6 ++--- controllers/version_update.go | 31 ++++++++++++---------- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index d1d884a6..b229c750 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,7 +17,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v3 with: - go-version: 1.19 + go-version: 1.21 - name: Install Kubebuilder run: | diff --git a/controllers/testdata/post_upgrade_job.json b/controllers/testdata/post_upgrade_job.json index 8ddb9941..fbb59378 100644 --- a/controllers/testdata/post_upgrade_job.json +++ b/controllers/testdata/post_upgrade_job.json @@ -10,7 +10,7 @@ "custom-resource-namespace": "default", "using": "controllers.VersionUpdateHandler" }, - "name": "cdap-test-post-upgrade-job-1581238669880", + "name": "cdap-test-post-upgrade-job-1581238669", "namespace": "default", "ownerReferences": [ { @@ -30,7 +30,7 @@ } ], "resourceVersion": "1876398", - "selfLink": "/apis/batch/v1/namespaces/default/jobs/cdap-test-post-upgrade-job-1581233225335", + "selfLink": "/apis/batch/v1/namespaces/default/jobs/cdap-test-post-upgrade-job-1581233225", "uid": "a0afd92d-4b0d-11ea-8611-42010a800022" }, "spec": { @@ -51,7 +51,7 @@ "custom-resource": "v1alpha1.CDAPMaster", "custom-resource-name": "test", "custom-resource-namespace": "default", - "job-name": "cdap-test-post-upgrade-job-1581233225335", + "job-name": "cdap-test-post-upgrade-job-1581233225", "using": "controllers.VersionUpdateHandler" } }, diff --git a/controllers/testdata/pre_upgrade_job.json b/controllers/testdata/pre_upgrade_job.json index 8751b84b..b427f558 100644 --- a/controllers/testdata/pre_upgrade_job.json +++ b/controllers/testdata/pre_upgrade_job.json @@ -10,7 +10,7 @@ "custom-resource-namespace": "default", "using": "controllers.VersionUpdateHandler" }, - "name": "cdap-test-pre-upgrade-job-1581238669880", + "name": "cdap-test-pre-upgrade-job-1581238669", "namespace": "default", "ownerReferences": [ { @@ -30,7 +30,7 @@ } ], "resourceVersion": "1896807", - "selfLink": "/apis/batch/v1/namespaces/default/jobs/cdap-test-pre-upgrade-job-1581238669880", + "selfLink": "/apis/batch/v1/namespaces/default/jobs/cdap-test-pre-upgrade-job-1581238669", "uid": "401828eb-4b1a-11ea-8611-42010a800022" }, "spec": { @@ -51,7 +51,7 @@ "custom-resource": "v1alpha1.CDAPMaster", "custom-resource-name": "test", "custom-resource-namespace": "default", - "job-name": "cdap-test-pre-upgrade-job-1581238669880", + "job-name": "cdap-test-pre-upgrade-job-1581238669", "using": "controllers.VersionUpdateHandler" } }, diff --git a/controllers/version_update.go b/controllers/version_update.go index 41e431fd..59948f09 100644 --- a/controllers/version_update.go +++ b/controllers/version_update.go @@ -243,19 +243,22 @@ func upgradeForBackend(master *v1alpha1.CDAPMaster, labels map[string]string, ob // For upgrade: // - When succeeded: -// * PreUpgradeSucceeded, PostUpgradeSucceeded and UpgradeSucceeded are set -// * Status.ImageToUse (new image) == Spec.Image (new image) +// - PreUpgradeSucceeded, PostUpgradeSucceeded and UpgradeSucceeded are set +// - Status.ImageToUse (new image) == Spec.Image (new image) +// // - When failed, two cases -// 1) Preupgrade failed -// * PreUpgradeFailed and UpgradeFailed are set -// * Status.ImageToUse (new image) != Spec.Image (current image) -// 2) Postupgrade failed -// * PostUpgradeFailed and UpgradeFailed are set -// * Status.ImageToUse (new image) == Spec.Image (new image) +// 1. Preupgrade failed +// * PreUpgradeFailed and UpgradeFailed are set +// * Status.ImageToUse (new image) != Spec.Image (current image) +// 2. Postupgrade failed +// * PostUpgradeFailed and UpgradeFailed are set +// * Status.ImageToUse (new image) == Spec.Image (new image) +// // For downgrade: // - When succeeded: -// * DowngradeSucceeded is set -// * Status.ImageToUse (new image) == Spec.Image (new image) +// - DowngradeSucceeded is set +// - Status.ImageToUse (new image) == Spec.Image (new image) +// // - When failed (currently not possible, as we just set the new version directly) type VersionUpdateStatus struct { // common states @@ -404,8 +407,8 @@ func parseImageString(imageString string) (*Version, error) { // compare two parsed versions // -1: left < right -// 0: left = right -// 1: left > right +// 0: left = right +// 1: left > right func compareVersion(l, r *Version) int { if l.latest && r.latest { return 0 @@ -501,12 +504,12 @@ func getCurrentTimeMs() int64 { // The returned name is just the suffix of actual k8s object name, as we prepend it with const string + CR name func getPreUpgradeJobName(startTimeMs int64) string { - return fmt.Sprintf("pre-upgrade-job-%d", startTimeMs) + return fmt.Sprintf("pre-upgrade-job-%d", startTimeMs / 1000) } // The returned name is just the suffix of actual k8s object name, as we prepend it with const string + CR name func getPostUpgradeJobName(startTimeMs int64) string { - return fmt.Sprintf("post-upgrade-job-%d", startTimeMs) + return fmt.Sprintf("post-upgrade-job-%d", startTimeMs / 1000) } // Return pre-upgrade job spec