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
この 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 以降などの一般的に利用可能なバージョンにアップグレードすることを検討してください。