apiVersion: tekton.dev/v1
kind: Task
metadata:
  annotations:
    artifacthub.io/category: integration-delivery
    artifacthub.io/maintainers: |
      - name: OpenShift Pipeline task maintainers
        email: pipelines-extcomm@redhat.com
    artifacthub.io/provider: Red Hat
    artifacthub.io/recommendations: |
      - url: https://tekton.dev/
    operator.tekton.dev/last-applied-hash: 2ffd368036d89bd2dcc8aed1b96cdcc783c7c2d5f2b95f4faae7eda355d8acee
    tekton.dev/categories: containers
    tekton.dev/pipelines.minVersion: 0.41.0
    tekton.dev/source: https://github.com/openshift-pipelines/task-containers
    tekton.dev/tags: containers
  creationTimestamp: "2024-06-10T13:45:46Z"
  generation: 1
  labels:
    app.kubernetes.io/version: 0.3.1
    operator.tekton.dev/operand-name: openshift-pipelines-addons
    operator.tekton.dev/provider-type: redhat
  name: buildah
  namespace: openshift-pipelines
  ownerReferences:
  - apiVersion: operator.tekton.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: TektonInstallerSet
    name: addon-custom-resolvertask-4w7k4
    uid: 44cc2eb3-48d8-4e6c-82ef-203759a9a88b
  resourceVersion: "38822"
  uid: a8e2ee35-b10b-4860-bd5d-8e326ea357cc
spec:
  description: |
    Buildah task builds source into a container image and
    then pushes it to a container registry.
  params:
  - description: |
      Fully qualified container image name to be built by buildah.
    name: IMAGE
    type: string
  - default: ./Dockerfile
    description: |
      Path to the `Dockerfile` (or `Containerfile`) relative to the `source` workspace.
    name: DOCKERFILE
    type: string
  - default: .
    description: |
      Path to the directory to use as context.
    name: CONTEXT
    type: string
  - default: vfs
    description: |
      Set buildah storage driver to reflect the currrent cluster node's
      settings.
    name: STORAGE_DRIVER
    type: string
  - default: oci
    description: The format of the built container, oci or docker
    name: FORMAT
    type: string
  - default: ""
    description: |
      Extra parameters passed for the build command when building images.
    name: BUILD_EXTRA_ARGS
    type: string
  - default: ""
    description: |
      Extra parameters passed for the push command when pushing images.
    name: PUSH_EXTRA_ARGS
    type: string
  - default: "false"
    description: |
      Skip pushing the image to the container registry.
    name: SKIP_PUSH
    type: string
  - default: "true"
    description: |
      Sets the TLS verification flag, `true` is recommended.
    name: TLS_VERIFY
    type: string
  - default: "false"
    description: |
      Turns on verbose logging, all commands executed will be printed out.
    name: VERBOSE
    type: string
  results:
  - description: |
      Fully qualified image name.
    name: IMAGE_URL
    type: string
  - description: |
      Digest of the image just built.
    name: IMAGE_DIGEST
    type: string
  stepTemplate:
    computeResources: {}
    env:
    - name: PARAMS_IMAGE
      value: $(params.IMAGE)
    - name: PARAMS_CONTEXT
      value: $(params.CONTEXT)
    - name: PARAMS_DOCKERFILE
      value: $(params.DOCKERFILE)
    - name: PARAMS_FORMAT
      value: $(params.FORMAT)
    - name: PARAMS_STORAGE_DRIVER
      value: $(params.STORAGE_DRIVER)
    - name: PARAMS_BUILD_EXTRA_ARGS
      value: $(params.BUILD_EXTRA_ARGS)
    - name: PARAMS_PUSH_EXTRA_ARGS
      value: $(params.PUSH_EXTRA_ARGS)
    - name: PARAMS_SKIP_PUSH
      value: $(params.SKIP_PUSH)
    - name: PARAMS_TLS_VERIFY
      value: $(params.TLS_VERIFY)
    - name: PARAMS_VERBOSE
      value: $(params.VERBOSE)
    - name: WORKSPACES_SOURCE_BOUND
      value: $(workspaces.source.bound)
    - name: WORKSPACES_SOURCE_PATH
      value: $(workspaces.source.path)
    - name: WORKSPACES_DOCKERCONFIG_BOUND
      value: $(workspaces.dockerconfig.bound)
    - name: WORKSPACES_DOCKERCONFIG_PATH
      value: $(workspaces.dockerconfig.path)
    - name: WORKSPACES_RHEL_ENTITLEMENT_BOUND
      value: $(workspaces.rhel-entitlement.bound)
    - name: WORKSPACES_RHEL_ENTITLEMENT_PATH
      value: $(workspaces.rhel-entitlement.path)
    - name: RESULTS_IMAGE_URL_PATH
      value: $(results.IMAGE_URL.path)
    - name: RESULTS_IMAGE_DIGEST_PATH
      value: $(results.IMAGE_DIGEST.path)
  steps:
  - computeResources: {}
    image: registry.access.redhat.com/ubi8-minimal:8.9
    name: load-scripts
    script: |
      set -e
      printf '%s' "IyEvdXNyL2Jpbi9lbnYgYmFzaAojCiMgV3JhcHBlciBhcm91bmQgImJ1aWxkYWggYnVkIiB0byBidWlsZCBhbmQgcHVzaCBhIGNvbnRhaW5lciBpbWFnZSBiYXNlZCBvbiBhIERvY2tlcmZpbGUuCiMKCnNob3B0IC1zIGluaGVyaXRfZXJyZXhpdApzZXQgLWV1IC1vIHBpcGVmYWlsCgpzb3VyY2UgIiQoZGlybmFtZSAke0JBU0hfU09VUkNFWzBdfSkvY29tbW9uLnNoIgpzb3VyY2UgIiQoZGlybmFtZSAke0JBU0hfU09VUkNFWzBdfSkvYnVpbGRhaC1jb21tb24uc2giCgpmdW5jdGlvbiBfYnVpbGRhaCgpIHsKICAgIGJ1aWxkYWggXAogICAgICAgIC0tc3RvcmFnZS1kcml2ZXI9IiR7UEFSQU1TX1NUT1JBR0VfRFJJVkVSfSIgXAogICAgICAgIC0tdGxzLXZlcmlmeT0iJHtQQVJBTVNfVExTX1ZFUklGWX0iIFwKICAgICAgICAkeyp9Cn0KCiMKIyBQcmVwYXJlCiMKCiMgbWFraW5nIHN1cmUgdGhlIHJlcXVpcmVkIHdvcmtzcGFjZSAic291cmNlIiBpcyBib3VuZGVkLCB3aGljaCBtZWFucyBpdHMgdm9sdW1lIGlzIGN1cnJlbnRseSBtb3VudGVkCiMgYW5kIHJlYWR5IHRvIHVzZQpwaGFzZSAiSW5zcGVjdGluZyBzb3VyY2Ugd29ya3NwYWNlICcke1dPUktTUEFDRVNfU09VUkNFX1BBVEh9JyAoUFdEPScke1BXRH0nKSIKW1sgIiR7V09SS1NQQUNFU19TT1VSQ0VfQk9VTkR9IiAhPSAidHJ1ZSIgXV0gJiYKICAgIGZhaWwgIldvcmtzcGFjZSAnc291cmNlJyBpcyBub3QgYm91bmRlZCIKCnBoYXNlICJBc3NlcnRpbmcgdGhlIGRvY2tlcmZpbGUvY29udGFpbmVyZmlsZSAnJHtET0NLRVJGSUxFX0ZVTEx9JyBleGlzdHMiCltbICEgLWYgIiR7RE9DS0VSRklMRV9GVUxMfSIgXV0gJiYKICAgIGZhaWwgIkRvY2tlcmZpbGUgbm90IGZvdW5kIGF0OiAnJHtET0NLRVJGSUxFX0ZVTEx9JyIKCnBoYXNlICJJbnNwZWN0aW5nIGNvbnRleHQgJyR7UEFSQU1TX0NPTlRFWFR9JyIKW1sgISAtZCAiJHtQQVJBTVNfQ09OVEVYVH0iIF1dICYmCiAgICBmYWlsICJDT05URVhUIHBhcmFtIGlzIG5vdCBmb3VuZCBhdCAnJHtQQVJBTVNfQ09OVEVYVH0nLCBvbiBzb3VyY2Ugd29ya3NwYWNlIgoKIyBIYW5kbGUgb3B0aW9uYWwgZG9ja2VyY29uZmlnIHNlY3JldAppZiBbWyAiJHtXT1JLU1BBQ0VTX0RPQ0tFUkNPTkZJR19CT1VORH0iID09ICJ0cnVlIiBdXTsgdGhlbgoKICAgICMgaWYgY29uZmlnLmpzb24gZXhpc3RzIGF0IHdvcmtzcGFjZSByb290LCB3ZSB1c2UgdGhhdAogICAgaWYgdGVzdCAtZiAiJHtXT1JLU1BBQ0VTX0RPQ0tFUkNPTkZJR19QQVRIfS9jb25maWcuanNvbiI7IHRoZW4KICAgICAgICBleHBvcnQgRE9DS0VSX0NPTkZJRz0iJHtXT1JLU1BBQ0VTX0RPQ0tFUkNPTkZJR19QQVRIfSIKCiAgICAgICAgIyBlbHNlIHdlIGxvb2sgZm9yIC5kb2NrZXJjb25maWdqc29uIGF0IHRoZSByb290CiAgICBlbGlmIHRlc3QgLWYgIiR7V09SS1NQQUNFU19ET0NLRVJDT05GSUdfUEFUSH0vLmRvY2tlcmNvbmZpZ2pzb24iOyB0aGVuCiAgICAgICAgIyBlbnN1cmUgLmRvY2tlciBleGlzdCBiZWZvcmUgdGhlIGNvcHlpbmcgdGhlIGNvbnRlbnQKICAgICAgICBpZiBbICEgLWQgIiRIT01FLy5kb2NrZXIiIF07IHRoZW4KICAgICAgICAgICBta2RpciAtcCAiJEhPTUUvLmRvY2tlciIKICAgICAgICBmaQogICAgICAgIGNwICIke1dPUktTUEFDRVNfRE9DS0VSQ09ORklHX1BBVEh9Ly5kb2NrZXJjb25maWdqc29uIiAiJEhPTUUvLmRvY2tlci9jb25maWcuanNvbiIKICAgICAgICBleHBvcnQgRE9DS0VSX0NPTkZJRz0iJEhPTUUvLmRvY2tlciIKCiAgICAgICAgIyBuZWVkIHRvIGVycm9yIG91dCBpZiBuZWl0aGVyIGZpbGVzIGFyZSBwcmVzZW50CiAgICBlbHNlCiAgICAgICAgZWNobyAibmVpdGhlciAnY29uZmlnLmpzb24nIG5vciAnLmRvY2tlcmNvbmZpZ2pzb24nIGZvdW5kIGF0IHdvcmtzcGFjZSByb290IgogICAgICAgIGV4aXQgMQogICAgZmkKZmkKCkVOVElUTEVNRU5UX1ZPTFVNRT0iIgppZiBbWyAiJHtXT1JLU1BBQ0VTX1JIRUxfRU5USVRMRU1FTlRfQk9VTkR9IiA9PSAidHJ1ZSIgXV07IHRoZW4KICAgIEVOVElUTEVNRU5UX1ZPTFVNRT0iLS12b2x1bWUgJHtXT1JLU1BBQ0VTX1JIRUxfRU5USVRMRU1FTlRfUEFUSH06L2V0Yy9wa2kvZW50aXRsZW1lbnQiCmZpCgojCiMgQnVpbGQKIwoKcGhhc2UgIkJ1aWxkaW5nICcke1BBUkFNU19JTUFHRX0nIGJhc2VkIG9uICcke0RPQ0tFUkZJTEVfRlVMTH0nIgoKW1sgLW4gIiR7UEFSQU1TX0JVSUxEX0VYVFJBX0FSR1N9IiBdXSAmJgogICAgcGhhc2UgIkV4dHJhICdidWlsZGFoIGJ1ZCcgYXJndW1lbnRzIGluZm9ybWVkOiAnJHtQQVJBTVNfQlVJTERfRVhUUkFfQVJHU30nIgoKX2J1aWxkYWggYnVkICR7UEFSQU1TX0JVSUxEX0VYVFJBX0FSR1N9IFwKICAgICRFTlRJVExFTUVOVF9WT0xVTUUgXAogICAgLS1uby1jYWNoZSBcCiAgICAtLWZpbGU9IiR7RE9DS0VSRklMRV9GVUxMfSIgXAogICAgLS10YWc9IiR7UEFSQU1TX0lNQUdFfSIgXAogICAgJHtQQVJBTVNfQ09OVEVYVH0KCmlmIFtbICIke1BBUkFNU19TS0lQX1BVU0h9IiA9PSAidHJ1ZSIgXV07IHRoZW4KICAgIHBoYXNlICJTa2lwcGluZyBwdXNoaW5nICcke1BBUkFNU19JTUFHRX0nIHRvIHRoZSBjb250YWluZXIgcmVnaXN0cnkhIgogICAgZXhpdCAwCmZpCgojCiMgUHVzaAojCgpwaGFzZSAiUHVzaGluZyAnJHtQQVJBTVNfSU1BR0V9JyB0byB0aGUgY29udGFpbmVyIHJlZ2lzdHJ5IgoKW1sgLW4gIiR7UEFSQU1TX1BVU0hfRVhUUkFfQVJHU30iIF1dICYmCiAgICBwaGFzZSAiRXh0cmEgJ2J1aWxkYWggYnVkJyBhcmd1bWVudHMgaW5mb3JtZWQ6ICcke1BBUkFNU19QVVNIX0VYVFJBX0FSR1N9JyIKCiMgdGVtcG9yYXJ5IGZpbGUgdG8gc3RvcmUgdGhlIGltYWdlIGRpZ2VzdCwgaW5mb3JtYXRpb24gb25seSBvYnRhaW5lZCBhZnRlciBwdXNoaW5nIHRoZSBpbWFnZSB0byB0aGUKIyBjb250YWluZXIgcmVnaXN0cnkKZGVjbGFyZSAtciBkaWdlc3RfZmlsZT0iL3RtcC9idWlsZGFoLWRpZ2VzdC50eHQiCgpfYnVpbGRhaCBwdXNoICR7UEFSQU1TX1BVU0hfRVhUUkFfQVJHU30gXAogICAgLS1kaWdlc3RmaWxlPSIke2RpZ2VzdF9maWxlfSIgXAogICAgJHtQQVJBTVNfSU1BR0V9IFwKICAgIGRvY2tlcjovLyR7UEFSQU1TX0lNQUdFfQoKIwojIFJlc3VsdHMKIwoKcGhhc2UgIkluc3BlY3RpbmcgZGlnZXN0IHJlcG9ydCAoJyR7ZGlnZXN0X2ZpbGV9JykiCgpbWyAhIC1yICIke2RpZ2VzdF9maWxlfSIgXV0gJiYKICAgIGZhaWwgIlVuYWJsZSB0byBmaW5kIGRpZ2VzdC1maWxlIGF0ICcke2RpZ2VzdF9maWxlfSciCgpkZWNsYXJlIC1yIGRpZ2VzdF9zdW09IiQoY2F0ICR7ZGlnZXN0X2ZpbGV9KSIKCltbIC16ICIke2RpZ2VzdF9zdW19IiBdXSAmJgogICAgZmFpbCAiRGlnZXN0IGZpbGUgJyR7ZGlnZXN0X2ZpbGV9JyBpcyBlbXB0eSEiCgpwaGFzZSAiU3VjY2Vzc2Z1bHkgYnVpbHQgY29udGFpbmVyIGltYWdlICcke1BBUkFNU19JTUFHRX0nICgnJHtkaWdlc3Rfc3VtfScpIgplY2hvIC1uICIke1BBUkFNU19JTUFHRX0iIHwgdGVlICR7UkVTVUxUU19JTUFHRV9VUkxfUEFUSH0KZWNobyAtbiAiJHtkaWdlc3Rfc3VtfSIgfCB0ZWUgJHtSRVNVTFRTX0lNQUdFX0RJR0VTVF9QQVRIfQo=" |base64 -d >buildah-bud.sh
      printf '%s' "IyEvdXNyL2Jpbi9lbnYgYmFzaAoKZGVjbGFyZSAtcnggUEFSQU1TX0lNQUdFPSIke1BBUkFNU19JTUFHRTotfSIKZGVjbGFyZSAtcnggUEFSQU1TX0RPQ0tFUkZJTEU9IiR7UEFSQU1TX0RPQ0tFUkZJTEU6LX0iCmRlY2xhcmUgLXJ4IFBBUkFNU19DT05URVhUPSIke1BBUkFNU19DT05URVhUOi19IgpkZWNsYXJlIC1yeCBQQVJBTVNfU1RPUkFHRV9EUklWRVI9IiR7UEFSQU1TX1NUT1JBR0VfRFJJVkVSOi19IgpkZWNsYXJlIC1yeCBQQVJBTVNfQlVJTERfRVhUUkFfQVJHUz0iJHtQQVJBTVNfQlVJTERfRVhUUkFfQVJHUzotfSIKZGVjbGFyZSAtcnggUEFSQU1TX1BVU0hfRVhUUkFfQVJHUz0iJHtQQVJBTVNfUFVTSF9FWFRSQV9BUkdTOi19IgpkZWNsYXJlIC1yeCBQQVJBTVNfU0tJUF9QVVNIPSIke1BBUkFNU19TS0lQX1BVU0g6LX0iCmRlY2xhcmUgLXJ4IFBBUkFNU19UTFNfVkVSSUZZPSIke1BBUkFNU19UTFNfVkVSSUZZOi19IgpkZWNsYXJlIC1yeCBQQVJBTVNfVkVSQk9TRT0iJHtQQVJBTVNfVkVSQk9TRTotfSIKCmRlY2xhcmUgLXJ4IFdPUktTUEFDRVNfU09VUkNFX1BBVEg9IiR7V09SS1NQQUNFU19TT1VSQ0VfUEFUSDotfSIKZGVjbGFyZSAtcnggV09SS1NQQUNFU19TT1VSQ0VfQk9VTkQ9IiR7V09SS1NQQUNFU19TT1VSQ0VfQk9VTkQ6LX0iCmRlY2xhcmUgLXJ4IFdPUktTUEFDRVNfRE9DS0VSQ09ORklHX1BBVEg9IiR7V09SS1NQQUNFU19ET0NLRVJDT05GSUdfUEFUSDotfSIKZGVjbGFyZSAtcnggV09SS1NQQUNFU19ET0NLRVJDT05GSUdfQk9VTkQ9IiR7V09SS1NQQUNFU19ET0NLRVJDT05GSUdfQk9VTkQ6LX0iCmRlY2xhcmUgLXJ4IFdPUktTUEFDRVNfUkhFTF9FTlRJVExFTUVOVF9QQVRIPSIke1dPUktTUEFDRVNfUkhFTF9FTlRJVExFTUVOVF9QQVRIOi19IgpkZWNsYXJlIC1yeCBXT1JLU1BBQ0VTX1JIRUxfRU5USVRMRU1FTlRfQk9VTkQ9IiR7V09SS1NQQUNFU19SSEVMX0VOVElUTEVNRU5UX0JPVU5EOi19IgoKZGVjbGFyZSAtcnggUkVTVUxUU19JTUFHRV9ESUdFU1RfUEFUSD0iJHtSRVNVTFRTX0lNQUdFX0RJR0VTVF9QQVRIOi19IgpkZWNsYXJlIC1yeCBSRVNVTFRTX0lNQUdFX1VSTF9QQVRIPSIke1JFU1VMVFNfSU1BR0VfVVJMX1BBVEg6LX0iCgojCiMgRG9ja2VyZmlsZQojCgojIGV4cG9zaW5nIHRoZSBmdWxsIHBhdGggdG8gdGhlIGNvbnRhaW5lciBmaWxlLCB3aGljaCBieSBkZWZhdWx0IHNob3VsZCBiZSByZWxhdGl2ZSB0byB0aGUgcHJpbWFyeQojIHdvcmtzcGFjZSwgdG8gcmVjZWl2ZSBhIGRpZmZlcmVudCBjb250YWluZXItZmlsZSBsb2NhdGlvbgpkZWNsYXJlIC1yIGRvY2tlcmZpbGVfb25fd3M9IiR7V09SS1NQQUNFU19TT1VSQ0VfUEFUSH0vJHtQQVJBTVNfRE9DS0VSRklMRX0iCmRlY2xhcmUgLXggRE9DS0VSRklMRV9GVUxMPSIke0RPQ0tFUkZJTEVfRlVMTDotJHtkb2NrZXJmaWxlX29uX3dzfX0iCgojCiMgQXNzZXJ0aW5nIEVudmlyb25tZW50CiMKCltbIC16ICIke0RPQ0tFUkZJTEVfRlVMTH0iIF1dICYmCiAgICBmYWlsICJ1bmFibGUgdG8gZmluZCB0aGUgRG9ja2VyZmlsZSwgRE9DS0VSRklMRSBtYXkgaGF2ZSBhbiBpbmNvcnJlY3QgbG9jYXRpb24iCgpleHBvcnRlZF9vcl9mYWlsIFwKICAgIFdPUktTUEFDRVNfU09VUkNFX1BBVEggXAogICAgUEFSQU1TX0lNQUdFCgojCiMgVmVyYm9zZSBPdXRwdXQKIwoKaWYgW1sgIiR7UEFSQU1TX1ZFUkJPU0V9IiA9PSAidHJ1ZSIgXV07IHRoZW4KICAgIHNldCAteApmaQo=" |base64 -d >buildah-common.sh
      printf '%s' "IyEvdXNyL2Jpbi9lbnYgYmFzaAoKIyB0ZWt0b24ncyBob21lIGRpcmVjdG9yeQpkZWNsYXJlIC1yeCBURUtUT05fSE9NRT0iJHtURUtUT05fSE9NRTotL3Rla3Rvbi9ob21lfSIKCiMKIyBGdW5jdGlvbnMKIwoKZnVuY3Rpb24gZmFpbCgpIHsKICAgIGVjaG8gIkVSUk9SOiAkeyp9IiAyPiYxCiAgICBleGl0IDEKfQoKZnVuY3Rpb24gcGhhc2UoKSB7CiAgICBlY2hvICItLS0+IFBoYXNlOiAkeyp9Li4uIgp9CgojIGFzc2VydCBsb2NhbCB2YXJpYWJsZXMgYXJlIGV4cG9yZXRlZCBvbiB0aGUgZW52aXJvbm1lbnQKZnVuY3Rpb24gZXhwb3J0ZWRfb3JfZmFpbCgpIHsKICAgIGRlY2xhcmUgLWEgX3JlcXVpcmVkX3ZhcnM9IiR7QH0iCgogICAgZm9yIHYgaW4gJHtfcmVxdWlyZWRfdmFyc1tAXX07IGRvCiAgICAgICAgW1sgLXogIiR7IXZ9IiBdXSAmJgogICAgICAgICAgICBmYWlsICInJHt2fScgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCEiCiAgICBkb25lCgogICAgcmV0dXJuIDAKfQo=" |base64 -d >common.sh
      chmod +x buildah-*.sh
    volumeMounts:
    - mountPath: /scripts
      name: scripts-dir
    workingDir: /scripts
  - command:
    - /scripts/buildah-bud.sh
    computeResources: {}
    image: registry.access.redhat.com/ubi8/buildah:8.9
    name: build
    securityContext:
      capabilities:
        add:
        - SETFCAP
    volumeMounts:
    - mountPath: /scripts
      name: scripts-dir
    workingDir: /workspace/source
  volumes:
  - emptyDir: {}
    name: scripts-dir
  workspaces:
  - description: |
      Container build context, like for instnace a application source code
      followed by a `Dockerfile`.
    name: source
  - description: An optional workspace that allows providing a .docker/config.json
      file for Buildah to access the container registry. The file should be placed
      at the root of the Workspace with name config.json or .dockerconfigjson.
    name: dockerconfig
    optional: true
  - description: An optional workspace that allows providing the entitlement keys
      for Buildah to access subscription. The mounted workspace contains entitlement.pem
      and entitlement-key.pem.
    mountPath: /tmp/entitlement
    name: rhel-entitlement
    optional: true
