diff --git a/e2e/addon/addon_test.go b/e2e/addon/addon_test.go index 9042c2d38..cd91d3996 100644 --- a/e2e/addon/addon_test.go +++ b/e2e/addon/addon_test.go @@ -196,13 +196,6 @@ var _ = Describe("Addon Test", func() { } Expect(topologyPolicyValue["clusterLabelSelector"]).Should(Equal(map[string]interface{}{})) }, 30*time.Second).Should(Succeed()) - // disable mock-dependence-rely and mock-dependence addon - /*output1, err := e2e.LongTimeExec("vela addon disable mock-dependence-rely", 600*time.Second) - Expect(err).NotTo(HaveOccurred()) - Expect(output1).To(ContainSubstring("Successfully disable addon")) - output2, err := e2e.LongTimeExec("vela addon disable mock-dependence", 600*time.Second) - Expect(err).NotTo(HaveOccurred()) - Expect(output2).To(ContainSubstring("Successfully disable addon"))*/ }) It("enable mock-dependence-rely without specified clusters when mock-dependence addon was enabled with specified clusters", func() { @@ -248,13 +241,6 @@ var _ = Describe("Addon Test", func() { Expect(topologyPolicyValue["clusterLabelSelector"]).Should(Equal(map[string]interface{}{})) Expect(topologyPolicyValue["clusters"]).Should(BeNil()) }, 30*time.Second).Should(Succeed()) - // 4. disable mock-dependence-rely and mock-dependence addon - /*output2, err := e2e.LongTimeExec("vela addon disable mock-dependence-rely", 600*time.Second) - Expect(err).NotTo(HaveOccurred()) - Expect(output2).To(ContainSubstring("Successfully disable addon")) - output3, err := e2e.LongTimeExec("vela addon disable mock-dependence", 600*time.Second) - Expect(err).NotTo(HaveOccurred()) - Expect(output3).To(ContainSubstring("Successfully disable addon"))*/ }) It("Test addon dependency with specified clusters", func() { diff --git a/pkg/addon/addon_suite_test.go b/pkg/addon/addon_suite_test.go index 6104199e5..18bf40000 100644 --- a/pkg/addon/addon_suite_test.go +++ b/pkg/addon/addon_suite_test.go @@ -200,6 +200,30 @@ var _ = Describe("Addon test", func() { Expect(needInstallAddonDep2).Should(BeFalse()) Expect(depClusters2).Should(BeNil()) Expect(err).Should(BeNil()) + + // case4: addonClusters is nil, and app has topology policy + app = v1beta1.Application{} + Expect(yaml.Unmarshal([]byte(legacy2AppYaml), &app)).Should(BeNil()) + app.SetNamespace(testns) + Expect(k8sClient.Create(ctx, &app)).Should(BeNil()) + Eventually(func(g Gomega) { + needInstallAddonDep, depClusters, err := checkDependencyNeedInstall(ctx, k8sClient, "legacy-addon2", nil) + Expect(err).Should(BeNil()) + Expect(needInstallAddonDep).Should(BeTrue()) + Expect(depClusters).Should(BeNil()) + }, 60*time.Second).Should(Succeed()) + + // case5: addonClusters is nil, and app has topology policy, and clusterLabelSelector is not nil + app = v1beta1.Application{} + Expect(yaml.Unmarshal([]byte(legacy3AppYaml), &app)).Should(BeNil()) + app.SetNamespace(testns) + Expect(k8sClient.Create(ctx, &app)).Should(BeNil()) + Eventually(func(g Gomega) { + needInstallAddonDep, depClusters, err := checkDependencyNeedInstall(ctx, k8sClient, "legacy-addon3", nil) + Expect(err).Should(BeNil()) + Expect(needInstallAddonDep).Should(BeFalse()) + Expect(depClusters).Should(BeNil()) + }, 60*time.Second).Should(Succeed()) }) It("getDependencyArgs func test", func() { @@ -213,11 +237,28 @@ var _ = Describe("Addon test", func() { app = v1beta1.Application{} Expect(yaml.Unmarshal([]byte(legacyAppYaml), &app)).Should(BeNil()) app.SetNamespace(testns) - Expect(k8sClient.Create(ctx, &app)).Should(BeNil()) + //Expect(k8sClient.Create(ctx, &app)).Should(BeNil()) depClusters := []string{"cluster1", "cluster2"} depArgs2, err := getDependencyArgs(ctx, k8sClient, depAddonName, depClusters) Expect(depArgs2["clusters"]).Should(Equal(depClusters)) Expect(err).Should(BeNil()) + + // clusters exist, depClusters is nil + sec := v1.Secret{} + Expect(yaml.Unmarshal([]byte(secretYaml), &sec)).Should(BeNil()) + Expect(k8sClient.Create(ctx, &sec)).Should(BeNil()) + depArgs3, err := getDependencyArgs(ctx, k8sClient, "fluxcd", nil) + Expect(depArgs3).ToNot(BeNil()) + Expect(depArgs3["clusters"]).Should(BeNil()) + Expect(err).Should(BeNil()) + + // getArgs throw exception + sec1 := v1.Secret{} + Expect(yaml.Unmarshal([]byte(secretErrorYaml), &sec1)).Should(BeNil()) + Expect(k8sClient.Create(ctx, &sec1)).Should(BeNil()) + depArgs4, err := getDependencyArgs(ctx, k8sClient, "fluxcd1", nil) + Expect(depArgs4).Should(BeNil()) + Expect(err).ToNot(BeNil()) }) It(" determineAddonAppName func test", func() { @@ -623,6 +664,60 @@ spec: properties: image: crccheck/hello-world port: 8000 +` + legacy2AppYaml = `apiVersion: core.oam.dev/v1beta1 +kind: Application +metadata: + name: legacy-addon2 +spec: + components: + - name: express-server + type: webservice + properties: + image: crccheck/hello-world + port: 8000 + policies: + - name: target-default + type: topology + properties: + clusters: ["local"] + namespace: "default" +` + legacy3AppYaml = `apiVersion: core.oam.dev/v1beta1 +kind: Application +metadata: + name: legacy-addon3 +spec: + components: + - name: express-server + type: webservice + properties: + image: crccheck/hello-world + port: 8000 + policies: + - name: target-default + type: topology + properties: + clusterLabelSelector: {} + namespace: "default" +` + secretYaml = `apiVersion: v1 +data: + addonParameterDataKey: eyJjbHVzdGVycyI6WyJsb2NhbCIsInZlbGEtbTEiXX0K +kind: Secret +metadata: + name: addon-secret-fluxcd + namespace: vela-system +type: Opaque +` + secretErrorYaml = `apiVersion: v1 +data: + addonParameterDataKey: eyJjbHVzdGVycyI6WyJsb2NhbCIsInZlbGEtbTEiXQo= +kind: Secret +metadata: + name: addon-secret-fluxcd1 + namespace: vela-system +type: Opaque ` deployYaml = `apiVersion: apps/v1 kind: Deployment