func doTest(bldPrefix, bldName, debugStr string, same bool, oc *exutil.CLI) { // corrupt the builder image exutil.CorruptImage(fullImageName, corruptor) // kick off the app/lang build and verify the builder image accordingly exutil.StartBuild(bldPrefix, oc) exutil.WaitForBuild(debugStr, bldName, oc) if same { exutil.VerifyImagesSame(fullImageName, corruptor, debugStr) } else { exutil.VerifyImagesDifferent(fullImageName, corruptor, debugStr) } // reset corrupted tagging for next test exutil.ResetImage(resetData) // dump tags/hexids for debug exutil.DumpAndReturnTagging(tags) }
}) g.JustBeforeEach(func() { g.By("waiting for builder service account") err := exutil.WaitForBuilderAccount(oc.KubeREST().ServiceAccounts(oc.Namespace())) o.Expect(err).NotTo(o.HaveOccurred()) }) g.Context("\n FORCE PULL TEST: when s2i force pull is false and the image is bad", func() { g.It("\n FORCE PULL TEST s2i false", func() { fpFalseS2I := exutil.FixturePath("fixtures", "forcepull-false-s2i.json") g.By(fmt.Sprintf("\n%s FORCE PULL TEST s2i false: calling create on %s", time.Now().Format(time.RFC850), fpFalseS2I)) exutil.StartBuild(fpFalseS2I, buildPrefix, oc) exutil.WaitForBuild("FORCE PULL TEST s2i false: ", buildName, oc) exutil.VerifyImagesSame(s2iDockBldr, custBldr, "FORCE PULL TEST s2i false: ") }) }) g.Context("\n FORCE PULL TEST: when s2i force pull is true and the image is bad", func() { g.It("\n FORCE PULL TEST s2i true", func() { fpTrueS2I := exutil.FixturePath("fixtures", "forcepull-true-s2i.json") g.By(fmt.Sprintf("\n%s FORCE PULL TEST s2i true: calling create on %s", time.Now().Format(time.RFC850), fpTrueS2I)) exutil.StartBuild(fpTrueS2I, buildPrefix, oc) exutil.WaitForBuild("FORCE PULL TEST s2i true: ", buildName, oc) exutil.VerifyImagesDifferent(s2iDockBldr, custBldr, "FORCE PULL TEST s2i true: ")
g.BeforeEach(func() { g.By("refresh corruptor, prep forcepull builder") exutil.PullImage(corruptor, dockerClient.AuthConfiguration{}) exutil.DumpImage(corruptor) // create the image streams and build configs for a test case specific builders setupPath := exutil.FixturePath("testdata", "forcepull-setup.json") err := exutil.CreateResource(setupPath, oc) // kick off the build for the new builder image just for force pull so we can corrupt them without conflicting with // any other tests potentially running in parallel exutil.StartBuild(bldrPrefix, oc) err = exutil.WaitForBuild("bldr build: ", bldrPrefix, bldrPrefix+"-1", oc) o.Expect(err).NotTo(o.HaveOccurred()) serviceIP, err := oc.Run("get").Args("svc", "docker-registry", "-n", "default", "--config", exutil.KubeConfigPath()).Template("{{.spec.clusterIP}}").Output() o.Expect(err).NotTo(o.HaveOccurred()) port, err := oc.Run("get").Args("svc", "docker-registry", "-n", "default", "--config", exutil.KubeConfigPath()).Template("{{ $x := index .spec.ports 0}}{{$x.port}}").Output() o.Expect(err).NotTo(o.HaveOccurred()) g.By(fmt.Sprintf("docker-registry service IP is %s and port %s ", serviceIP, port)) // get the auth so we can pull the build image from the internal docker registry since the builder controller will remove it // from the docker daemon cache when the docker build completes; authCfg, err = exutil.BuildAuthConfiguration(serviceIP+":"+port, oc) // now actually pull the image back in from the openshift internal docker registry fullImageName = authCfg.ServerAddress + "/" + oc.Namespace() + "/" + bldr err = exutil.PullImage(fullImageName, *authCfg)