exutil "github.com/openshift/origin/test/extended/util" "github.com/openshift/origin/test/extended/util/db" ) var _ = g.Describe("[images][mongodb] openshift mongodb image", func() { defer g.GinkgoRecover() templatePath := exutil.FixturePath("..", "..", "examples", "db-templates", "mongodb-ephemeral-template.json") oc := exutil.NewCLI("mongodb-create", exutil.KubeConfigPath()).Verbose() g.Describe("creating from a template", func() { g.It(fmt.Sprintf("should process and create the %q template", templatePath), func() { g.By("creating a new app") o.Expect(oc.Run("new-app").Args("-f", templatePath).Execute()).Should(o.Succeed()) g.By("waiting for the deployment to complete") err := exutil.WaitForADeploymentToComplete(oc.KubeREST().ReplicationControllers(oc.Namespace()), "mongodb") if err != nil { exutil.DumpDeploymentLogs("mongodb", oc) } o.Expect(err).ShouldNot(o.HaveOccurred()) g.By("expecting the mongodb pod is running") podNames, err := exutil.WaitForPods( oc.KubeREST().Pods(oc.Namespace()), exutil.ParseLabelsOrDie("name=mongodb"), exutil.CheckPodIsRunningFn, 1, 1*time.Minute,
err := exutil.CleanupHostPathVolumes(oc.AdminKubeREST().PersistentVolumes(), oc.Namespace()) if err != nil { fmt.Fprintf(g.GinkgoWriter, "WARNING: couldn't cleanup persistent volumes: %v", err) } }() g.By("creating a new app") o.Expect( oc.Run("new-app").Args( "-f", templatePath, "-p", "VOLUME_CAPACITY=256Mi", "-p", "MEMORY_LIMIT=512Mi", "-p", "MONGODB_IMAGE=centos/mongodb-32-centos7", "-p", "MONGODB_SERVICE_NAME=mongodb-replicaset", ).Execute(), ).Should(o.Succeed()) g.By("waiting for pods to running") podNames, err := exutil.WaitForPods( oc.KubeREST().Pods(oc.Namespace()), exutil.ParseLabelsOrDie("name=mongodb-replicaset"), exutil.CheckPodIsRunningFn, 3, 2*time.Minute, ) o.Expect(err).NotTo(o.HaveOccurred()) o.Expect(podNames).Should(o.HaveLen(3)) g.By("expecting that we can insert a new record on primary node") mongo := dbutil.NewMongoDB(podNames[0]) replicaSet := mongo.(exutil.ReplicaSet)
expectedValue = `{ "status" : "passed" }` insertCmd = "db.bar.save(" + expectedValue + ")" ) const ( expectedReplicasAfterDeployment = 3 expectedReplicasAfterScalingUp = expectedReplicasAfterDeployment + 2 ) oc := exutil.NewCLI("mongodb-replica", exutil.KubeConfigPath()).Verbose() g.Describe("creating from a template", func() { g.It(fmt.Sprintf("should process and create the %q template", templatePath), func() { g.By("creating a new app") o.Expect(oc.Run("new-app").Args("-f", templatePath).Execute()).Should(o.Succeed()) g.By("waiting for the deployment to complete") o.Expect(exutil.WaitForADeploymentToComplete(oc.KubeREST().ReplicationControllers(oc.Namespace()), deploymentConfigName)).Should(o.Succeed()) podNames := waitForNumberOfPodsWithLabel(oc, expectedReplicasAfterDeployment, "mongodb-replica") mongo := db.NewMongoDB(podNames[0]) g.By(fmt.Sprintf("expecting that replica set have %d members", expectedReplicasAfterDeployment)) assertMembersInReplica(oc, mongo, expectedReplicasAfterDeployment) g.By("expecting that we can insert a new record on primary node") replicaSet := mongo.(exutil.ReplicaSet) _, err := replicaSet.QueryPrimary(oc, insertCmd) o.Expect(err).ShouldNot(o.HaveOccurred())
exutil "github.com/openshift/origin/test/extended/util" "github.com/openshift/origin/test/extended/util/db" ) var _ = g.Describe("[images][mongodb] openshift mongodb image", func() { defer g.GinkgoRecover() templatePath := exutil.FixturePath("..", "..", "examples", "db-templates", "mongodb-ephemeral-template.json") oc := exutil.NewCLI("mongodb-create", exutil.KubeConfigPath()).Verbose() g.Describe("creating from a template", func() { g.It(fmt.Sprintf("should process and create the %q template", templatePath), func() { g.By("creating a new app") o.Expect(oc.Run("new-app").Args("-f", templatePath).Execute()).Should(o.Succeed()) g.By("expecting the mongodb service get endpoints") o.Expect(oc.KubeFramework().WaitForAnEndpoint("mongodb")).Should(o.Succeed()) g.By("expecting the mongodb pod is running") podNames, err := exutil.WaitForPods( oc.KubeREST().Pods(oc.Namespace()), exutil.ParseLabelsOrDie("name=mongodb"), exutil.CheckPodIsRunningFn, 1, 1*time.Minute, ) o.Expect(err).ShouldNot(o.HaveOccurred()) o.Expect(podNames).Should(o.HaveLen(1))