1.3. 詳細な OpenShift Pipelines の概念

本書では、Pipeline の各種概念を詳述します。

1.3.1. Task

Task は Pipeline のビルディングブロックであり、順次実行される Step で設定されます。これらは再利用可能であり、複数の Pipeline で使用することができます。

Steps は、イメージのビルドなど、特定の目的を達成するための一連のコマンドです。各 Task は Pod として実行され、各 Step は同じ Pod 内の独自のコンテナーで実行されます。Step は同じ Pod 内で実行されるため、ファイル、ConfigMap、およびシークレットをキャッシュするために同じボリュームにアクセスできます。

以下の例は、apply-manifests Task を示しています。

apiVersion: tekton.dev/v1beta1 1
kind: Task 2
metadata:
  name: apply-manifests 3
spec: 4
  params:
  - default: k8s
    description: The directory in source that contains yaml manifests
    name: manifest_dir
    type: string
  steps:
  - args:
    - |-
      echo Applying manifests in $(inputs.params.manifest_dir) directory
      oc apply -f $(inputs.params.manifest_dir)
      echo -----------------------------------
    command:
    - /bin/bash
    - -c
    image: quay.io/openshift/origin-cli:latest
    name: apply
    workingDir: /workspace/source
  workspaces:
  - name: source
1
Task API バージョン v1beta1
2
Kubernetes オブジェクトのタイプを指定します。この例では、Task です。
3
この Task の一意の名前。
4
Task のパラメーターおよびステップと、Task によって使用される Workspace を一覧表示します。

この Task は Pod を開始し、maven:3.6.0-jdk-8-slim イメージ内でコンテナーを実行して指定されたコマンドを実行します。アプリケーションのソースコードが含まれる workspace-git という入力ディレクトリーを受信します。

Task は Git リポジトリーのプレースホルダーのみを宣言し、使用する Git リポジトリーを指定しません。これにより、Task を複数の Pipeline および目的のために再利用可能にできます。

警告

テクノロジープレビュー (TP) の Red Hat OpenShift Pipelines 1.3 以前のバージョンでは、ユーザーは Security Context Constraint (SCC) を確認せずにタスクを作成できました。したがって、認証されたユーザーは、特権付き SCC で実行されるコンテナーを使用してタスクを作成できます。

実稼働シナリオでこのようなセキュリティーの問題を回避するには、TP にある Pipelines バージョンを使用しないでください。代わりに、Operator を Pipelines 1.4 以降などの一般的に利用可能なバージョンにアップグレードすることを検討してください。