diff --git a/pkg/reconciler/buildrun/resources/taskrun.go b/pkg/reconciler/buildrun/resources/taskrun.go index 9d853a93f..125f2ed2a 100644 --- a/pkg/reconciler/buildrun/resources/taskrun.go +++ b/pkg/reconciler/buildrun/resources/taskrun.go @@ -155,6 +155,7 @@ func GenerateTaskSpec( step := v1beta1.Step{ Container: corev1.Container{ Image: taskImage, + ImagePullPolicy: containerValue.ImagePullPolicy, Name: containerValue.Name, VolumeMounts: containerValue.VolumeMounts, Command: taskCommand, diff --git a/pkg/reconciler/buildrun/resources/taskrun_test.go b/pkg/reconciler/buildrun/resources/taskrun_test.go index dda5f62b9..9c393156f 100644 --- a/pkg/reconciler/buildrun/resources/taskrun_test.go +++ b/pkg/reconciler/buildrun/resources/taskrun_test.go @@ -62,6 +62,7 @@ var _ = Describe("GenerateTaskrun", func() { buildStrategy, err = ctl.LoadBuildStrategyFromBytes([]byte(test.MinimalBuildahBuildStrategy)) Expect(err).To(BeNil()) + buildStrategy.Spec.BuildSteps[0].ImagePullPolicy = "Always" expectedCommandOrArg = []string{ "bud", "--tag=$(params.shp-output-image)", fmt.Sprintf("--file=$(inputs.params.%s)", "DOCKERFILE"), "$(params.shp-source-context)", @@ -99,6 +100,10 @@ var _ = Describe("GenerateTaskrun", func() { Expect(got.Steps[1].Container.Image).To(Equal("quay.io/containers/buildah:v1.20.1")) }) + It("should ensure ImagePullPolicy can be set by the build strategy author.", func() { + Expect(got.Steps[1].Container.ImagePullPolicy).To(Equal(corev1.PullPolicy("Always"))) + }) + It("should ensure command replacements happen when needed", func() { Expect(got.Steps[1].Container.Command[0]).To(Equal("/usr/bin/buildah")) }) diff --git a/samples/buildstrategy/buildkit/buildstrategy_buildkit_cr.yaml b/samples/buildstrategy/buildkit/buildstrategy_buildkit_cr.yaml index fdc1ad955..1abc482ac 100644 --- a/samples/buildstrategy/buildkit/buildstrategy_buildkit_cr.yaml +++ b/samples/buildstrategy/buildkit/buildstrategy_buildkit_cr.yaml @@ -26,6 +26,7 @@ spec: - /tekton/home - name: build-and-push image: moby/buildkit:master-rootless + imagePullPolicy: Always securityContext: allowPrivilegeEscalation: true runAsUser: 1000 diff --git a/samples/buildstrategy/buildkit/buildstrategy_buildkit_insecure_cr.yaml b/samples/buildstrategy/buildkit/buildstrategy_buildkit_insecure_cr.yaml index f34c3e2e8..a1f80f685 100644 --- a/samples/buildstrategy/buildkit/buildstrategy_buildkit_insecure_cr.yaml +++ b/samples/buildstrategy/buildkit/buildstrategy_buildkit_insecure_cr.yaml @@ -26,6 +26,7 @@ spec: - /tekton/home - name: build-and-push image: moby/buildkit:master-rootless + imagePullPolicy: Always securityContext: allowPrivilegeEscalation: true runAsUser: 1000 diff --git a/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_cr.yaml b/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_cr.yaml index de59553c8..484f719cb 100644 --- a/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_cr.yaml +++ b/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_cr.yaml @@ -7,6 +7,7 @@ spec: buildSteps: - name: prepare image: docker.io/paketobuildpacks/builder:full + imagePullPolicy: Always securityContext: runAsUser: 0 capabilities: @@ -27,6 +28,7 @@ spec: memory: 65Mi - name: build-and-push image: docker.io/paketobuildpacks/builder:full + imagePullPolicy: Always securityContext: runAsUser: 1000 runAsGroup: 1000 diff --git a/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_namespaced_cr.yaml b/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_namespaced_cr.yaml index 54972e9f6..8f6d6a9e3 100644 --- a/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_namespaced_cr.yaml +++ b/samples/buildstrategy/buildpacks-v3/buildstrategy_buildpacks-v3_namespaced_cr.yaml @@ -7,6 +7,7 @@ spec: buildSteps: - name: prepare image: docker.io/paketobuildpacks/builder:full + imagePullPolicy: Always securityContext: runAsUser: 0 capabilities: @@ -27,6 +28,7 @@ spec: memory: 65Mi - name: build-and-push image: docker.io/paketobuildpacks/builder:full + imagePullPolicy: Always securityContext: runAsUser: 1000 runAsGroup: 1000 diff --git a/samples/buildstrategy/ko/buildstrategy_ko_cr.yaml b/samples/buildstrategy/ko/buildstrategy_ko_cr.yaml index b709d426b..e85a4b9f4 100644 --- a/samples/buildstrategy/ko/buildstrategy_ko_cr.yaml +++ b/samples/buildstrategy/ko/buildstrategy_ko_cr.yaml @@ -7,6 +7,7 @@ spec: buildSteps: - name: prepare image: golang:1.15 + imagePullPolicy: Always securityContext: runAsUser: 0 capabilities: diff --git a/samples/buildstrategy/source-to-image/buildstrategy_source-to-image_cr.yaml b/samples/buildstrategy/source-to-image/buildstrategy_source-to-image_cr.yaml index f9b97cf89..c16a90590 100644 --- a/samples/buildstrategy/source-to-image/buildstrategy_source-to-image_cr.yaml +++ b/samples/buildstrategy/source-to-image/buildstrategy_source-to-image_cr.yaml @@ -11,7 +11,8 @@ spec: - $(build.builder.image) - '--as-dockerfile' - /gen-source/Dockerfile.gen - image: 'quay.io/openshift-pipeline/s2i:nightly' + image: quay.io/openshift-pipeline/s2i:nightly + imagePullPolicy: Always name: s2i-build-as-dockerfile volumeMounts: - mountPath: /gen-source