--- apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: buildah labels: app.kubernetes.io/version: "0.1" annotations: tekton.dev/categories: Image Build tekton.dev/pipelines.minVersion: "0.12.1" tekton.dev/tags: image-build tekton.dev/platforms: "linux/amd64" spec: description: >- Buildah task builds source into a container image and then pushes it to a container registry. Buildah Task builds source into a container image using Project Atomic's Buildah build tool.It uses Buildah's support for building from Dockerfiles, using its buildah bud command.This command executes the directives in the Dockerfile to assemble a container image, then pushes that image to a container registry. params: - name: IMAGE description: Reference of the image buildah will produce. - name: BUILDER_IMAGE description: The location of the buildah builder image. default: quay.io/buildah/stable:v1.17.0 - name: STORAGE_DRIVER description: Set buildah storage driver default: overlay - name: DOCKERFILE description: Path to the Dockerfile to build. default: ./Dockerfile - name: CONTEXT description: Path to the directory to use as context. default: . - name: TLSVERIFY description: Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry) default: "true" - name: FORMAT description: The format of the built container, oci or docker default: "oci" - name: BUILD_EXTRA_ARGS description: Extra parameters passed for the build command when building images. default: "" - name: PUSH_EXTRA_ARGS description: Extra parameters passed for the push command when pushing images. type: string default: "" workspaces: - name: source results: - name: IMAGE_DIGEST description: Digest of the image just built. steps: - name: build image: $(params.BUILDER_IMAGE) workingDir: $(workspaces.source.path) script: | buildah --storage-driver=$(params.STORAGE_DRIVER) bud \ $(params.BUILD_EXTRA_ARGS) --format=$(params.FORMAT) \ --tls-verify=$(params.TLSVERIFY) --no-cache \ -f $(params.DOCKERFILE) -t $(params.IMAGE) $(params.CONTEXT) volumeMounts: - name: varlibcontainers mountPath: /var/lib/containers securityContext: privileged: true - name: push image: $(params.BUILDER_IMAGE) workingDir: $(workspaces.source.path) script: | buildah --storage-driver=$(params.STORAGE_DRIVER) push \ $(params.PUSH_EXTRA_ARGS) --tls-verify=$(params.TLSVERIFY) \ --digestfile $(workspaces.source.path)/image-digest $(params.IMAGE) \ docker://$(params.IMAGE) volumeMounts: - name: varlibcontainers mountPath: /var/lib/containers securityContext: privileged: true - name: digest-to-results image: $(params.BUILDER_IMAGE) script: cat $(workspaces.source.path)/image-digest | tee $(results.IMAGE_DIGEST.path) volumes: - name: varlibcontainers emptyDir: {}