From 48069394bf2f774895050a405e4517c5e9a2c0e0 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:12:03 +0530 Subject: [PATCH 01/20] Refactor upgrade logic to exclude WORKERS in patch upgrades --- controllers/constants.go | 1 + controllers/spec.go | 10 ++++++ controllers/version_update.go | 57 ++++++++++++++++++++---------- controllers/version_update_test.go | 17 ++++++++- templates/upgrade-job.yaml | 2 +- 5 files changed, 66 insertions(+), 21 deletions(-) diff --git a/controllers/constants.go b/controllers/constants.go index c512f91b..42ad9c6e 100644 --- a/controllers/constants.go +++ b/controllers/constants.go @@ -68,6 +68,7 @@ const ( confTwillSecurityWorkerSecretDiskPath = "twill.security.worker.secret.disk.path" confJMXServerPort = "jmx.metrics.collector.server.port" confSecretMountDefaultMode = "secret.mount.default.mode" + confSkipPreUpgradeFlag = "cdap-operator.skip.preupgrade-job" // default values defaultImage = "gcr.io/cdapio/cdap:latest" diff --git a/controllers/spec.go b/controllers/spec.go index 49150582..77a32831 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -576,6 +576,8 @@ type VersionUpgradeJobSpec struct { HConf string `json:"hadoopConf,omitempty"` PreUpgrade bool `json:"preUpgrade,omitempty"` PostUpgrade bool `json:"postUpgrade,omitempty"` + SkipPreUpgradeFlag bool `json:"skipPreUpgrade,omitempty"` + SkipPreUpgrade bool `json:"skipPreUpgrade,omitempty"` } func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[string]string, startTimeMs int64, cconf, hconf string) *VersionUpgradeJobSpec { @@ -594,6 +596,8 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.StartTimeMs = startTimeMs s.CConf = cconf s.HConf = hconf + s.SkipPreUpgradeFlag = (master.Spec.Config[confSkipPreUpgradeFlag] == "true") + s.SkipPreUpgrade = false return s } @@ -606,3 +610,9 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra s.PostUpgrade = isPostUpgrade return s } + +func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { + // If it is a patch revision and the flag is true, skip the pre upgrade job + s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag + return s +} \ No newline at end of file diff --git a/controllers/version_update.go b/controllers/version_update.go index 59948f09..61b9e5b6 100644 --- a/controllers/version_update.go +++ b/controllers/version_update.go @@ -32,10 +32,21 @@ func init() { ///////////////////////////////////////////////////////////// func handleVersionUpdate(master *v1alpha1.CDAPMaster, labels map[string]string, observed []reconciler.Object) ([]reconciler.Object, error) { + curVersion, err := getCurrentImageVersion(master) + if err != nil { + return nil, err + } + newVersion, err := getNewImageVersion(master) + if err != nil { + return nil, err + } + versionComparison := compareVersion(curVersion, newVersion) + isPatchUpgrade := versionComparison == -2 + // Let the current update complete if there is any if isConditionTrue(master, updateStatus.Inprogress) { log.Printf("Version update ingress. Continue... ") - return upgradeForBackend(master, labels, observed) + return upgradeForBackend(master, labels, observed, isPatchUpgrade) } if objs, versionUpdated, err := updateForUserInterface(master); err != nil { @@ -45,21 +56,13 @@ func handleVersionUpdate(master *v1alpha1.CDAPMaster, labels map[string]string, } // Update backend service image version - curVersion, err := getCurrentImageVersion(master) - if err != nil { - return nil, err - } - newVersion, err := getNewImageVersion(master) - if err != nil { - return nil, err - } if len(curVersion.rawString) == 0 { setImageToUse(master) return []reconciler.Object{}, nil } - switch compareVersion(curVersion, newVersion) { - case -1: + switch versionComparison { + case -2, -1: // Upgrade case // Don't retry upgrade if it failed. @@ -73,7 +76,7 @@ func handleVersionUpdate(master *v1alpha1.CDAPMaster, labels map[string]string, setCondition(master, updateStatus.Inprogress) master.Status.UpgradeStartTimeMillis = getCurrentTimeMs() log.Printf("Version update: start upgrading %s -> %s ", curVersion.rawString, newVersion.rawString) - return upgradeForBackend(master, labels, observed) + return upgradeForBackend(master, labels, observed, isPatchUpgrade) case 0: // Reset all condition so that failed upgraded/downgrade can be retried later if needed. // This is needed when last upgrade failed and user has reset the version in spec. @@ -120,7 +123,7 @@ func downgradeForBackend(master *v1alpha1.CDAPMaster) ([]reconciler.Object, erro return []reconciler.Object{}, nil } -func upgradeForBackend(master *v1alpha1.CDAPMaster, labels map[string]string, observed []reconciler.Object) ([]reconciler.Object, error) { +func upgradeForBackend(master *v1alpha1.CDAPMaster, labels map[string]string, observed []reconciler.Object, isPatchUpgrade bool) ([]reconciler.Object, error) { // Find either pre- or post- upgrade job findJob := func(jobName string) *batchv1.Job { var job *batchv1.Job = nil @@ -163,7 +166,7 @@ func upgradeForBackend(master *v1alpha1.CDAPMaster, labels map[string]string, ob if !isConditionTrue(master, updateStatus.PreUpgradeSucceeded) { log.Printf("Version update: pre-upgrade job not completed") preJobName := getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis) - preJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, labels) + preJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, labels, isPatchUpgrade) job := findJob(preJobName) if job == nil { obj, err := createJob(preJobSpec) @@ -406,6 +409,7 @@ func parseImageString(imageString string) (*Version, error) { } // compare two parsed versions +// -2: left < right, patch upgrade // -1: left < right // 0: left = right // 1: left > right @@ -418,9 +422,24 @@ func compareVersion(l, r *Version) int { return -1 } + lenL, lenR := len(l.components), len(r.components) + // Check if it only a patch upgrade + if lenL == lenR && lenL > 0 && l.components[lenL-1] < r.components[lenL-1] { + allEqual := true + for i := 0; i < lenL-1; i++ { + if l.components[i] != r.components[i] { + allEqual = false + break + } + } + if allEqual { + return -2 + } + } + i := 0 j := 0 - for i < len(l.components) && j < len(r.components) { + for i < lenL && j < lenR { if l.components[i] > r.components[j] { return 1 } else if l.components[i] < r.components[j] { @@ -429,13 +448,13 @@ func compareVersion(l, r *Version) int { i++ j++ } - for i < len(l.components) { + for i < lenL { if l.components[i] > 0 { return 1 } i++ } - for j < len(r.components) { + for j < lenR { if r.components[j] > 0 { return 1 } @@ -513,12 +532,12 @@ func getPostUpgradeJobName(startTimeMs int64) string { } // Return pre-upgrade job spec -func buildPreUpgradeJobSpec(jobName string, master *v1alpha1.CDAPMaster, labels map[string]string) *VersionUpgradeJobSpec { +func buildPreUpgradeJobSpec(jobName string, master *v1alpha1.CDAPMaster, labels map[string]string, isPatchUpgrade bool) *VersionUpgradeJobSpec { startTimeMs := master.Status.UpgradeStartTimeMillis cconf := getObjName(master, configMapCConf) hconf := getObjName(master, configMapHConf) name := getObjName(master, jobName) - return newUpgradeJobSpec(master, name, labels, startTimeMs, cconf, hconf).SetPreUpgrade(true) + return newUpgradeJobSpec(master, name, labels, startTimeMs, cconf, hconf).SetPreUpgrade(true).SetSkipPreUpgrade(isPatchUpgrade) } // Return post-upgrade job spec diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 1c91934d..43b77de8 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -42,7 +42,7 @@ var _ = Describe("Controller Suite", func() { It("Compare image versions", func() { imagePairs := []Pair{ Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:latest"}, - Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:6.0.0.1"}, + Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:6.0.1.0"}, Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:6.1.0"}, Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:7"}, } @@ -55,6 +55,21 @@ var _ = Describe("Controller Suite", func() { Expect(compareVersion(high, low)).To(Equal(1)) } }) + It("Compare image versions in patch upgrade", func() { + imagePairs := []Pair{ + Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:6.0.0.1"}, + Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:6.0.0.3"}, + Pair{"gcr.io/cdapio/cdap:6.0.0.0", "gcr.io/cdapio/cdap:6.0.0.9"}, + } + for _, imagePair := range imagePairs { + low, err := parseImageString(imagePair.first.(string)) + Expect(err).To(BeNil()) + high, err := parseImageString(imagePair.second.(string)) + Expect(err).To(BeNil()) + Expect(compareVersion(low, high)).To(Equal(-2)) + Expect(compareVersion(high, low)).To(Equal(1)) + } + }) It("Compare same image versions", func() { imagePairs := []Pair{ Pair{"gcr.io/cdapio/cdap:latest", "gcr.io/cdapio/cdap:latest"}, diff --git a/templates/upgrade-job.yaml b/templates/upgrade-job.yaml index d0e7404b..86113bc0 100644 --- a/templates/upgrade-job.yaml +++ b/templates/upgrade-job.yaml @@ -45,7 +45,7 @@ spec: {{end}} {{if .PreUpgrade}} - name: pre-upgrade - args: ["io.cdap.cdap.master.upgrade.UpgradeJobMain", "{{.HostName}}", "11015"] + args: ["io.cdap.cdap.master.upgrade.UpgradeJobMain", "{{.HostName}}", "11015", "{{.SkipPreUpgrade}}"] {{end}} image: {{.Image}} volumeMounts: From 055eb92d3d5e1c721a55e515e510a13a100093a7 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:16:05 +0530 Subject: [PATCH 02/20] Fixed tests --- controllers/version_update_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 43b77de8..3957173f 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -214,7 +214,7 @@ var _ = Describe("Controller Suite", func() { ImageToUse: curUIImage, }, } - postJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, emptyLabels) + postJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, emptyLabels, false) object, err := buildUpgradeJobObject(postJobSpec) Expect(err).To(BeNil()) From 017e3d1113af40e1f952bcd83a91984fff730328 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:19:04 +0530 Subject: [PATCH 03/20] Minor fix --- controllers/spec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/spec.go b/controllers/spec.go index 77a32831..803b34c3 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -576,7 +576,7 @@ type VersionUpgradeJobSpec struct { HConf string `json:"hadoopConf,omitempty"` PreUpgrade bool `json:"preUpgrade,omitempty"` PostUpgrade bool `json:"postUpgrade,omitempty"` - SkipPreUpgradeFlag bool `json:"skipPreUpgrade,omitempty"` + SkipPreUpgradeFlag bool `json:"skipPreUpgradeFlag,omitempty"` SkipPreUpgrade bool `json:"skipPreUpgrade,omitempty"` } From 5ba8d44b78fa7fef92e8ee1f037551a3499b40d5 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:26:14 +0530 Subject: [PATCH 04/20] Fixed tests: null value handled --- controllers/spec.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/controllers/spec.go b/controllers/spec.go index 803b34c3..be424a8a 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -596,8 +596,14 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.StartTimeMs = startTimeMs s.CConf = cconf s.HConf = hconf - s.SkipPreUpgradeFlag = (master.Spec.Config[confSkipPreUpgradeFlag] == "true") + + if val, exists := master.Spec.Config[confSkipPreUpgradeFlag]; exists { + s.SkipPreUpgradeFlag = (val == "true") + } else { + s.SkipPreUpgradeFlag = false + } s.SkipPreUpgrade = false + return s } From 691ff3f928354f45c88cb51b9caa64b366e6ab50 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:36:45 +0530 Subject: [PATCH 05/20] Fixed tests? --- controllers/version_update_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 3957173f..f87bf991 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -214,7 +214,7 @@ var _ = Describe("Controller Suite", func() { ImageToUse: curUIImage, }, } - postJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, emptyLabels, false) + postJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, emptyLabels, true) object, err := buildUpgradeJobObject(postJobSpec) Expect(err).To(BeNil()) From f645b35ddfb17ac1d852e08dca2dcb5ae1aade58 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:45:58 +0530 Subject: [PATCH 06/20] Tests tets --- controllers/spec.go | 4 ++-- controllers/version_update_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/controllers/spec.go b/controllers/spec.go index be424a8a..4f4f0555 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -603,7 +603,7 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.SkipPreUpgradeFlag = false } s.SkipPreUpgrade = false - + return s } @@ -619,6 +619,6 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { // If it is a patch revision and the flag is true, skip the pre upgrade job - s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag + s.SkipPreUpgrade = false return s } \ No newline at end of file diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index f87bf991..3957173f 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -214,7 +214,7 @@ var _ = Describe("Controller Suite", func() { ImageToUse: curUIImage, }, } - postJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, emptyLabels, true) + postJobSpec := buildPreUpgradeJobSpec(getPreUpgradeJobName(master.Status.UpgradeStartTimeMillis), master, emptyLabels, false) object, err := buildUpgradeJobObject(postJobSpec) Expect(err).To(BeNil()) From 30658802aec1b714584914b774995d80c4e7e824 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:55:12 +0530 Subject: [PATCH 07/20] ? --- controllers/spec.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/controllers/spec.go b/controllers/spec.go index 4f4f0555..b9e05648 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -597,11 +597,11 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.CConf = cconf s.HConf = hconf - if val, exists := master.Spec.Config[confSkipPreUpgradeFlag]; exists { - s.SkipPreUpgradeFlag = (val == "true") - } else { - s.SkipPreUpgradeFlag = false - } +// if val, exists := master.Spec.Config[confSkipPreUpgradeFlag]; exists { +// s.SkipPreUpgradeFlag = (val == "true") +// } else { + s.SkipPreUpgradeFlag = false +// } s.SkipPreUpgrade = false return s @@ -619,6 +619,6 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { // If it is a patch revision and the flag is true, skip the pre upgrade job - s.SkipPreUpgrade = false + s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag return s } \ No newline at end of file From 54d8ba7cf395726095244a27d28311279fd05319 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 18:59:04 +0530 Subject: [PATCH 08/20] as --- controllers/spec.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/controllers/spec.go b/controllers/spec.go index b9e05648..e6df8aa0 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -620,5 +620,8 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { // If it is a patch revision and the flag is true, skip the pre upgrade job s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag + fmt.Println("LOGS:") + fmt.Println(isPatchUpgrade) + fmt.Println(s.SkipPreUpgradeFlag) return s } \ No newline at end of file From 996a2b537b5133b5b270bcc58b0cef272264c551 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:04:20 +0530 Subject: [PATCH 09/20] asd --- controllers/spec.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/controllers/spec.go b/controllers/spec.go index e6df8aa0..b347dabd 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -597,11 +597,11 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.CConf = cconf s.HConf = hconf -// if val, exists := master.Spec.Config[confSkipPreUpgradeFlag]; exists { -// s.SkipPreUpgradeFlag = (val == "true") -// } else { - s.SkipPreUpgradeFlag = false -// } + if val, exists := master.Spec.Config[confSkipPreUpgradeFlag]; exists { + s.SkipPreUpgradeFlag = (val == "true") + } else { + s.SkipPreUpgradeFlag = false + } s.SkipPreUpgrade = false return s @@ -619,9 +619,12 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { // If it is a patch revision and the flag is true, skip the pre upgrade job + fmt.Println("SkipPreUpgradeFlag:") + fmt.Println(s.SkipPreUpgradeFlag) s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag - fmt.Println("LOGS:") + fmt.Println("isPatchUpgrade:") fmt.Println(isPatchUpgrade) + fmt.Println("SkipPreUpgradeFlag:") fmt.Println(s.SkipPreUpgradeFlag) return s } \ No newline at end of file From 90dd96eb7285665f5c84139301fb6c11b4b5a2f8 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:07:31 +0530 Subject: [PATCH 10/20] asdf --- controllers/spec.go | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/controllers/spec.go b/controllers/spec.go index b347dabd..55ac7444 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -596,14 +596,8 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.StartTimeMs = startTimeMs s.CConf = cconf s.HConf = hconf - - if val, exists := master.Spec.Config[confSkipPreUpgradeFlag]; exists { - s.SkipPreUpgradeFlag = (val == "true") - } else { - s.SkipPreUpgradeFlag = false - } + s.SkipPreUpgradeFlag = master.Spec.Config[confSkipPreUpgradeFlag] s.SkipPreUpgrade = false - return s } @@ -619,12 +613,6 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { // If it is a patch revision and the flag is true, skip the pre upgrade job - fmt.Println("SkipPreUpgradeFlag:") - fmt.Println(s.SkipPreUpgradeFlag) s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag - fmt.Println("isPatchUpgrade:") - fmt.Println(isPatchUpgrade) - fmt.Println("SkipPreUpgradeFlag:") - fmt.Println(s.SkipPreUpgradeFlag) return s } \ No newline at end of file From b0740db6a95a5f8e120ebd95f455b717c1068157 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:08:19 +0530 Subject: [PATCH 11/20] asdfg --- controllers/spec.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/controllers/spec.go b/controllers/spec.go index 55ac7444..e37e2eea 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -613,6 +613,14 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { // If it is a patch revision and the flag is true, skip the pre upgrade job + fmt.Println("isPatchUpgrade:") + fmt.Println(isPatchUpgrade) + fmt.Println("s.SkipPreUpgradeFlag:") + fmt.Println(s.SkipPreUpgradeFlag) s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag + fmt.Println("isPatchUpgrade:") + fmt.Println(isPatchUpgrade) + fmt.Println("s.SkipPreUpgradeFlag:") + fmt.Println(s.SkipPreUpgradeFlag) return s } \ No newline at end of file From 2039b0fdc76014b31fb794ed10f920ac92df2887 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:10:22 +0530 Subject: [PATCH 12/20] asdfgh --- controllers/spec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/spec.go b/controllers/spec.go index e37e2eea..30b8e469 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -596,7 +596,7 @@ func newUpgradeJobSpec(master *v1alpha1.CDAPMaster, name string, labels map[stri s.StartTimeMs = startTimeMs s.CConf = cconf s.HConf = hconf - s.SkipPreUpgradeFlag = master.Spec.Config[confSkipPreUpgradeFlag] + s.SkipPreUpgradeFlag = (master.Spec.Config[confSkipPreUpgradeFlag] == "true") s.SkipPreUpgrade = false return s } From 2214388f02e867b5dc29abf53858bdb0ed9d0159 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:14:46 +0530 Subject: [PATCH 13/20] 1 --- controllers/version_update_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 3957173f..281b9226 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -220,6 +220,8 @@ var _ = Describe("Controller Suite", func() { json, _ := json.Marshal(object.Obj.(*k8s.Object).Obj.(*batchv1.Job)) expectedJson, err := ioutil.ReadFile("testdata/pre_upgrade_job.json") + fmt.Println("🔹 EXPECTED JOB JSON FILE CONTENT:") + fmt.Println(string(expectedJson)) opts := jsondiff.DefaultConsoleOptions() diff, text := jsondiff.Compare(expectedJson, json, &opts) Expect(diff.String()).To(Equal(jsondiff.SupersetMatch.String()), text) From 43e5b2042ffa6cd2a7254afdfe71a592b59c71a1 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:17:53 +0530 Subject: [PATCH 14/20] 2 --- controllers/version_update_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 281b9226..da2a8210 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -220,8 +220,8 @@ var _ = Describe("Controller Suite", func() { json, _ := json.Marshal(object.Obj.(*k8s.Object).Obj.(*batchv1.Job)) expectedJson, err := ioutil.ReadFile("testdata/pre_upgrade_job.json") - fmt.Println("🔹 EXPECTED JOB JSON FILE CONTENT:") - fmt.Println(string(expectedJson)) + GinkgoWriter.Println("EXPECTED JOB JSON FILE CONTENT:") + GinkgoWriter.Println(string(expectedJson)) opts := jsondiff.DefaultConsoleOptions() diff, text := jsondiff.Compare(expectedJson, json, &opts) Expect(diff.String()).To(Equal(jsondiff.SupersetMatch.String()), text) From 763bbd21fa899ecba22bc23953d372b3c344da45 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:20:49 +0530 Subject: [PATCH 15/20] 3 --- controllers/version_update_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index da2a8210..881e1a19 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -1,6 +1,7 @@ package controllers import ( + "fmt" "cdap.io/cdap-operator/api/v1alpha1" "encoding/json" "github.com/nsf/jsondiff" @@ -220,8 +221,8 @@ var _ = Describe("Controller Suite", func() { json, _ := json.Marshal(object.Obj.(*k8s.Object).Obj.(*batchv1.Job)) expectedJson, err := ioutil.ReadFile("testdata/pre_upgrade_job.json") - GinkgoWriter.Println("EXPECTED JOB JSON FILE CONTENT:") - GinkgoWriter.Println(string(expectedJson)) + fmt.Println("EXPECTED JOB JSON FILE CONTENT:") + fmt.Println(string(expectedJson)) opts := jsondiff.DefaultConsoleOptions() diff, text := jsondiff.Compare(expectedJson, json, &opts) Expect(diff.String()).To(Equal(jsondiff.SupersetMatch.String()), text) From 8ab8464d9f870cae1edf95c98a4f359e05fd930a Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:34:34 +0530 Subject: [PATCH 16/20] 4 --- controllers/spec.go | 11 +---------- controllers/testdata/pre_upgrade_job.json | 3 ++- controllers/version_update_test.go | 2 -- 3 files changed, 3 insertions(+), 13 deletions(-) diff --git a/controllers/spec.go b/controllers/spec.go index 30b8e469..c38d630a 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -611,16 +611,7 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra return s } -func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { - // If it is a patch revision and the flag is true, skip the pre upgrade job - fmt.Println("isPatchUpgrade:") - fmt.Println(isPatchUpgrade) - fmt.Println("s.SkipPreUpgradeFlag:") - fmt.Println(s.SkipPreUpgradeFlag) +func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgrade s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag - fmt.Println("isPatchUpgrade:") - fmt.Println(isPatchUpgrade) - fmt.Println("s.SkipPreUpgradeFlag:") - fmt.Println(s.SkipPreUpgradeFlag) return s } \ No newline at end of file diff --git a/controllers/testdata/pre_upgrade_job.json b/controllers/testdata/pre_upgrade_job.json index b427f558..242072e7 100644 --- a/controllers/testdata/pre_upgrade_job.json +++ b/controllers/testdata/pre_upgrade_job.json @@ -61,7 +61,8 @@ "args": [ "io.cdap.cdap.master.upgrade.UpgradeJobMain", "cdap-test-router", - "11015" + "11015", + "false", ], "image": "gcr.io/cloud-data-fusion-images/cloud-data-fusion:6.1.0.5", "imagePullPolicy": "IfNotPresent", diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 881e1a19..5390fcae 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -221,8 +221,6 @@ var _ = Describe("Controller Suite", func() { json, _ := json.Marshal(object.Obj.(*k8s.Object).Obj.(*batchv1.Job)) expectedJson, err := ioutil.ReadFile("testdata/pre_upgrade_job.json") - fmt.Println("EXPECTED JOB JSON FILE CONTENT:") - fmt.Println(string(expectedJson)) opts := jsondiff.DefaultConsoleOptions() diff, text := jsondiff.Compare(expectedJson, json, &opts) Expect(diff.String()).To(Equal(jsondiff.SupersetMatch.String()), text) From 3877da9399d71e9aaaae4af25492c63c9c51afca Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:37:39 +0530 Subject: [PATCH 17/20] 5 --- controllers/spec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/spec.go b/controllers/spec.go index c38d630a..7a9d1506 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -611,7 +611,7 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra return s } -func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgrade +func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgrade { s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag return s } \ No newline at end of file From 89f3cb4efe29f154f0db8b94887273622944a9ce Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:39:37 +0530 Subject: [PATCH 18/20] 6 --- controllers/spec.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/spec.go b/controllers/spec.go index 7a9d1506..e8f68085 100644 --- a/controllers/spec.go +++ b/controllers/spec.go @@ -611,7 +611,7 @@ func (s *VersionUpgradeJobSpec) SetPostUpgrade(isPostUpgrade bool) *VersionUpgra return s } -func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgrade { +func (s *VersionUpgradeJobSpec) SetSkipPreUpgrade(isPatchUpgrade bool) *VersionUpgradeJobSpec { s.SkipPreUpgrade = isPatchUpgrade && s.SkipPreUpgradeFlag return s } \ No newline at end of file From b9444a6b6ba79b10a7e34481eb32d8ade6eb8725 Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:41:41 +0530 Subject: [PATCH 19/20] 7 --- controllers/version_update_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/controllers/version_update_test.go b/controllers/version_update_test.go index 5390fcae..3957173f 100644 --- a/controllers/version_update_test.go +++ b/controllers/version_update_test.go @@ -1,7 +1,6 @@ package controllers import ( - "fmt" "cdap.io/cdap-operator/api/v1alpha1" "encoding/json" "github.com/nsf/jsondiff" From f69265220eecbb828d58905b18793fb586c2a65f Mon Sep 17 00:00:00 2001 From: Anshuman Date: Fri, 7 Feb 2025 19:45:17 +0530 Subject: [PATCH 20/20] 8 --- controllers/testdata/pre_upgrade_job.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/testdata/pre_upgrade_job.json b/controllers/testdata/pre_upgrade_job.json index 242072e7..81907a18 100644 --- a/controllers/testdata/pre_upgrade_job.json +++ b/controllers/testdata/pre_upgrade_job.json @@ -62,7 +62,7 @@ "io.cdap.cdap.master.upgrade.UpgradeJobMain", "cdap-test-router", "11015", - "false", + "false" ], "image": "gcr.io/cloud-data-fusion-images/cloud-data-fusion:6.1.0.5", "imagePullPolicy": "IfNotPresent",