インストールおよび設定
OpenShift パイプラインのインストールと設定
概要
第1章 OpenShift Pipelines のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下では、クラスター管理者を対象に、Red Hat OpenShift Pipelines Operator の OpenShift Container Platform クラスターへのインストールプロセスを説明します。
前提条件
-
cluster-adminパーミッションを持つアカウントを使用して OpenShift Container Platform クラスターにアクセスできる。 -
ocCLI がインストールされている。 -
OpenShift Pipelines (
tkn) CLI がローカルシステムにインストールされている。 - クラスターで Marketplace 機能 が有効になっているか、Red Hat Operator カタログソースが手動で設定されている。
Windows ノードと Linux ノードの両方が含まれるクラスターでは、Red Hat OpenShift Pipelines は Linux ノードでのみ実行できます。
1.1. Web コンソールでの Red Hat OpenShift Pipelines Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform OperatorHub にリスト表示されている Operator を使用して Red Hat OpenShift Pipelines をインストールできます。Red Hat OpenShift Pipelines Operator をインストールする際に、パイプラインの設定に必要なカスタムリソース (CR) が Operator と共に自動的にインストールされます。
デフォルトの Operator カスタムリソース定義 (CRD) の config.operator.tekton.dev が tektonconfigs.operator.tekton.dev に置き換えられました。さらに、Operator は、個別に管理される OpenShift Pipelines コンポーネントに追加の CRD (tektonpipelines.operator.tekton.dev、tektontriggers.operator.tekton.dev および tektonaddons.operator.tekton.dev) を提供します。
OpenShift Pipelines がクラスターにインストールされていると、既存のインストールはシームレスにアップグレードされます。Operator は必要に応じて、クラスターの config.operator.tekton.dev のインスタンスを tektonconfigs.operator.tekton.dev のインスタンスと、その他の CRD の追加オブジェクトに置き換えます。
既存のインストールを手動で変更した場合 (resource name - cluster フィールドに変更を加えて config.operator.tekton.dev CRD インスタンスのターゲット namespace を変更する場合など) は、アップグレードパスがスムーズではありません。このような場合は、インストールをアンインストールして Red Hat OpenShift Pipelines Operator を再インストールするワークフローが推奨されます。
Red Hat OpenShift Pipelines Operator では、TektonConfig カスタムリソース (CR) の一部としてプロファイルを指定することで、インストールするコンポーネントを選択するオプションが提供されるようになりました。TektonConfig CR は Operator のインストール時に自動的にインストールされます。サポートされるプロファイルは以下のとおりです。
- Lite: このプロファイルは、Tekton Pipelines のみをインストールします。
- Basic: このプロファイルは、Tekton Pipelines、Tekton Triggers、Tekton Chains、および Tekton Results をインストールします。
-
All:
TektonConfigCR のインストール時に使用されるデフォルトプロファイルです。このプロファイルは、Tekton Pipelines、Tekton Triggers、Tekton Chains、Tekton Results、Pipelines as Code、Tekton Addons など、すべての Tekton コンポーネントをインストールします。Tekton Addons には、ClusterTriggerBindings、ConsoleCLIDownload、ConsoleQuickStart、ConsoleYAMLSampleリソースのほか、openshift-pipelinesnamespace のクラスターリゾルバーで利用できるタスクとステップアクション定義が含まれています。
手順
- Web コンソールの Administrator パースペクティブで、Operators → OperatorHub に移動します。
-
Filter by keyword ボックスを使用して、カタログで
Red Hat OpenShift PipelinesOperator を検索します。Red Hat OpenShift Pipelines Operator タイルをクリックします。 - Red Hat OpenShift Pipelines Operator ページで Operator に関する簡単な説明を参照してください。Install をクリックします。
Install Operator ページで以下を行います。
-
Installation Mode で All namespaces on the cluster (default) を選択します。このモードは、デフォルトの
openshift-operatorsnamespace に Operator をインストールします。これにより、Operator はクラスター内のすべての namespace を監視し、これらの namespace に対して利用可能になります。 - Approval Strategy で Automatic を選択します。これにより、Operator への今後のアップグレードは Operator Lifecycle Manager (OLM) に自動的に処理されます。Manual 承認ストラテジーを選択すると、OLM は更新要求を作成します。クラスター管理者は、Operator を新規バージョンに更新できるように OLM 更新要求を手動で承認する必要があります。
Update Channel を選択します。
-
latestチャネルにより、Red Hat OpenShift Pipelines Operator の最新の stable バージョンがインストール可能になります。これは、Red Hat OpenShift Pipelines Operator のインストールに使用する現在のデフォルトチャネルです。 Red Hat OpenShift Pipelines Operator の特定のバージョンをインストールする場合、クラスター管理者は対応する
pipelines-<version>チャネルを使用できます。たとえば、Red Hat OpenShift Pipelines Operator バージョン1.8.xをインストールするには、pipelines-1.8チャネルを使用できます。注記OpenShift Container Platform 4.11 以降、Red Hat OpenShift Pipelines Operator をインストールおよびアップグレードするための
previewおよびstableチャネルは利用できません。ただし、OpenShift Container Platform 4.10 以前のバージョンでは、previewおよびstableチャンネルを使用して Operator をインストールおよびアップグレードできます。
-
-
Installation Mode で All namespaces on the cluster (default) を選択します。このモードは、デフォルトの
Install をクリックします。Operator が Installed Operators ページにリスト表示されます。
注記Operator は
openshift-operatorsnamespace に自動的にインストールされます。Status が Succeeded Up to date に設定され、Red Hat OpenShift Pipelines Operator のインストールが正常に行われたことを確認します。
警告他のコンポーネントのインストールが進行中の場合でも、成功ステータスが Succeeded Up to date として表示される場合があります。したがって、ターミナルで手動でインストールを確認することが重要です。
Red Hat OpenShift Pipelines Operator のすべてのコンポーネントが正常にインストールされたことを確認します。ターミナルでクラスターにログインし、次のコマンドを実行します。
oc get tektonconfig config
$ oc get tektonconfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION READY REASON config 1.19.0 True
NAME VERSION READY REASON config 1.19.0 TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow READY 条件が True の場合は、Operator とそのコンポーネントが正常にインストールされています。
さらに、次のコマンドを実行して、コンポーネントのバージョンを確認します。
oc get tektonpipeline,tektontrigger,tektonchain,tektonaddon,pac
$ oc get tektonpipeline,tektontrigger,tektonchain,tektonaddon,pacCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. CLI を使用した OpenShift Pipelines Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイス (CLI) を使用して、OperatorHub から Red Hat OpenShift Pipelines Operator をインストールできます。
手順
Subscriptionオブジェクトの YAML ファイルを作成し、namespace を Red Hat OpenShift Pipelines Operator にサブスクライブします (例:sub.yaml)。サブスクリプションYAML の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- サブスクライブするチャネルの名前。デフォルトチャネルは
pipelines-<version>です。たとえば、Red Hat OpenShift Pipelines Operator バージョン1.7のデフォルトチャネルはpipelines-1.7です。latestチャネルにより、Red Hat OpenShift Pipelines Operator の最新の stable バージョンがインストール可能になります。 - 2
- サブスクライブする Operator の名前。
- 3
- Operator を提供する
CatalogSourceオブジェクトの名前。 - 4
CatalogSourceオブジェクトの namespace。デフォルトの OperatorHub カタログソースにはopenshift-marketplaceを使用します。
以下のコマンドを実行して
Subscriptionオブジェクトを作成します。oc apply -f sub.yaml
$ oc apply -f sub.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow サブスクリプションにより、Red Hat OpenShift Pipelines Operator が
openshift-operatorsnamespace にインストールされます。Operator は、OpenShift Pipelines をデフォルトのopenshift-pipelinesターゲット namespace に自動的にインストールします。
1.3. 制限された環境での Red Hat OpenShift Pipelines Operator リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines Operator は、ネットワークが制限された環境でのパイプラインのインストールに対するサポートを有効にします。
Operator は、cluster プロキシーオブジェクトに基づいて tekton-controllers が作成する Pod のコンテナーにプロキシー環境変数を設定するプロキシー Webhook をインストールします。また、プロキシー環境変数を TektonPipelines、TektonTriggers、Controllers、Webhooks、および Operator Proxy Webhook リソースに設定します。
デフォルトで、プロキシー Webhook は openshift-pipelines namespace に対して無効になります。他の namespace に対してこれを無効にするには、operator.tekton.dev/disable-proxy: true ラベルを namespace オブジェクトに追加します。
第2章 OpenShift Pipelines のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、以下のステップを実行することにより、Red Hat OpenShift Pipelines Operator をアンインストールできます。
オプションコンポーネント
TektonHubおよびTektonResultのカスタムリソース (CR) が存在する場合は削除し、その後にTektonConfigCR を削除します。Importantオプションコンポーネントの CR を削除せずに Operator をアンインストールすると、後でコンポーネントを削除できなくなります。
- Red Hat OpenShift Pipelines Operator をアンインストールします。
-
operator.tekton.devグループのカスタムリソース定義 (CRD) を削除します。
Operator のみをアンインストールしても、Operator のインストール時にデフォルトで作成される Red Hat OpenShift Pipelines コンポーネントは削除されません。
2.1. OpenShift Pipelines カスタムリソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
オプションコンポーネント TektonHub および TektonResult のカスタムリソース (CR) が存在する場合は、これらの CR を削除します。次に、TektonConfig CR を削除します。
手順
- Web コンソールの Administrator パースペクティブで、Administration → CustomResourceDefinitions に移動します。
-
Filter by name フィールドに
TektonHubと入力して、TektonHubカスタムリソース定義 (CRD) を検索します。 -
TektonHubCRD の名前をクリックし、CRD の詳細ページを表示します。 -
Instancesタブをクリックします。 -
インスタンスが表示されている場合は、表示されたインスタンスの Options メニュー
をクリックします。
- Delete TektonHub を選択します。
- Delete をクリックし、CR の削除を確定します。
-
これらの手順を繰り返して、Filter by name ボックスで
TektonResultを検索し、TektonConfigを検索します。これらの CRD のインスタンスが見つかった場合は、これらのインスタンスを削除します。
CR を削除すると、Red Hat OpenShift Pipelines コンポーネントと、クラスター上のすべてのタスクとパイプラインも削除されます。
TektonHub および TektonResult CR を削除せずに Operator をアンインストールすると、後で Tekton Hub および Tekton Results コンポーネントを削除できなくなります。
2.2. Red Hat OpenShift Pipelines Operator のアンインストール リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Administrator パースペクティブを使用して、Red Hat OpenShift Pipelines Operator をアンインストールできます。
手順
- Operators → OperatorHub ページから、Filter by keyword ボックスを使用して Red Hat OpenShift Pipelines Operator を検索します。
- Red Hat OpenShift Pipelines Operator タイルをクリックします。Operator タイルは、Operator がインストールされていることを示します。
- Red Hat OpenShift Pipelines Operator の説明ページで、Uninstall をクリックします。
- Uninstall Operator? ウィンドウで、Delete all operand instances for this operator を選択し、Uninstall をクリックします。
OpenShift Pipelines Operator をアンインストールすると、設定したシークレットを含め、OpenShift Pipelines がインストールされている openshift-pipelines ターゲット namespace に含まれるすべてのリソースが失われます。
2.3. operator.tekton.dev グループのカスタムリソース定義の削除 リンクのコピーリンクがクリップボードにコピーされました!
operator.tekton.dev グループのカスタムリソース定義 (CRD) を削除します。これらの CRD は、Red Hat OpenShift Pipelines Operator のインストール中にデフォルトで作成されます。
手順
- Web コンソールの Administrator パースペクティブで、Administration → CustomResourceDefinitions に移動します。
-
Filter by name ボックスに
operator.tekton.devと入力して、operator.tekton.devグループ内の CRD を検索します。 表示される各 CRD を削除するには、以下の手順を実行します。
-
Options メニュー (
) をクリックします。
- Delete CustomResourceDefinition を選択します。
- Delete をクリックし、CRD の削除を確定します。
-
Options メニュー (
第3章 TektonConfig カスタムリソース設定のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines では、TektonConfig カスタムリソース (CR) を使用して以下の設定をカスタマイズできます。
- OpenShift Pipelines コントローラーの高可用性モードを含む、OpenShift Pipelines パフォーマンスの最適化
- Red Hat OpenShift Pipelines コントロールプレーンの設定
- デフォルトサービスアカウントの変更
- サービスモニターの無効化
- パイプラインリゾルバーの設定
- パイプラインテンプレートの無効化
- Tekton Hub 統合の無効化
- RBAC リソースの自動作成の無効化
- タスク実行とパイプライン実行のプルーニング
3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat OpenShift Pipelines Operator がインストールされている。
3.2. TektonConfig CR を使用したパフォーマンスチューニング リンクのコピーリンクがクリップボードにコピーされました!
TektonConfig カスタムリソース (CR) の .spec.pipeline.performance パラメーターの下のフィールドを変更して、OpenShift Pipelines コントローラーの高可用性 (HA) サポートとパフォーマンス設定を変更できます。
TektonConfig パフォーマンスフィールドの例
すべてのフィールドは任意です。これらを設定すると、Red Hat OpenShift Pipelines Operator には、openshift-pipelines-controller コンテナーの下にある openshift-pipelines-controller デプロイメントにほとんどのフィールドが引数として含まれます。OpenShift Pipelines Operator は openshift-pipelines namespace の下の config-leader-election 設定マップの buckets フィールドも更新します。
値を指定しない場合、OpenShift Pipelines Operator はそれらのフィールドを更新せず、OpenShift Pipelines コントローラーのデフォルト値を適用します。
いずれかのパフォーマンスフィールドを変更または削除すると、OpenShift Pipelines Operator は openshift-pipelines-controller デプロイメントおよび config-leader-election 設定マップ (buckets フィールドが変更された場合) を更新し、openshift-pipelines-controller Pod を再作成します。
高可用性 (HA) モードは、パイプライン実行およびタスク実行定義に基づいて Pod を作成および開始する OpenShift Pipelines コントローラーに適用されます。HA モードを使用しない場合、単一の Pod がこれらの操作を実行するため、高負荷時には大幅な遅延が発生する可能性があります。
HA モードでは、OpenShift Pipelines は複数の Pod (レプリカ) を使用してこれらの操作を実行します。最初に、OpenShift Pipelines はすべてのコントローラー操作をバケットに割り当てます。各レプリカは 1 つ以上のバケットからオペレーションを選択します。2 つのレプリカが同時に同じ操作を選択できる場合、コントローラーはこの操作を実行する リーダー を内部で決定します。
HA モードは、Pod の作成後にタスク実行には影響しません。
| 名前 | 説明 | OpenShift Pipelines コントローラーのデフォルト値 |
|---|---|---|
|
| 高可用性 (HA) モードを有効または無効にします。デフォルトでは、HA モードが有効になっています。 |
|
|
|
HA モードの場合、コントローラー操作の処理に使用されるバケットの数。最大値は |
|
|
|
HA モードの場合、コントローラー操作を処理するために作成された Pod の数。この値は |
|
|
| OpenShift Pipelines コントローラーのワークキューが処理されるときに使用するスレッド (ワーカー) の数。 |
|
|
| REST クライアントからクラスターマスターへの 1 秒あたりの最大クエリー数 (QPS)。 |
|
|
| スロットルの最大バースト。 |
|
OpenShift Pipelines Operator は、OpenShift Pipelines コントローラーのレプリカの数を制御しません。デプロイメントの replica 設定により、レプリカの数が決まります。たとえば、レプリカの数を 3 に変更するには、次のコマンドを入力します。
oc --namespace openshift-pipelines scale deployment openshift-pipelines-controller --replicas=3
$ oc --namespace openshift-pipelines scale deployment openshift-pipelines-controller --replicas=3
kube-api-qps と kube-api-burst フィールドは、OpenShift Pipelines コントローラーで 2 倍にされます。たとえば、kube-api-qps および kube-api-burst の値が 10 の場合、実際の QPS およびバースト値は 20 になります。
3.3. Red Hat OpenShift Pipelines コントロールプレーンの設定 リンクのコピーリンクがクリップボードにコピーされました!
TektonConfig カスタムリソース (CR) の設定フィールドを編集して、OpenShift Pipelines コントロールプレーンをカスタマイズできます。Red Hat OpenShift Pipelines Operator は設定フィールドにデフォルト値を自動的に追加し、OpenShift Pipelines コントロールプレーンを使用可能な状態にします。
手順
- Web コンソールの Administrator パースペクティブで、Administration → CustomResourceDefinitions に移動します。
-
Search by name ボックスを使用して、
tektonconfigs.operator.tekton.devカスタムリソース定義 (CRD) を検索します。TektonConfig をクリックし、CRD の詳細ページを表示します。 - Instances タブをクリックします。
-
config インスタンスをクリックして、
TektonConfigCR の詳細を表示します。 - YAML タブをクリックします。
要件に応じて
TektonConfigYAML ファイルを編集します。デフォルト値が適用された
TektonConfigCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.1. デフォルト値が適用された変更可能フィールド リンクのコピーリンクがクリップボードにコピーされました!
次のリストには、デフォルト値が適用された TektonConfig CR の変更可能フィールドがすべて含まれています。
running-in-environment-with-injected-sidecars(デフォルト:true): Istio などの注入済みサイドカーを使用しないクラスターでパイプラインを実行する場合は、このフィールドをfalseに設定します。falseに設定すると、パイプラインがタスク実行を開始するまでにかかる時間が短縮されます。注記注入されたサイドカーを使用するクラスターの場合、このフィールドを
falseに設定すると、予期しない動作が発生する可能性があります。-
await-sidecar-readiness(デフォルト:true):TaskRunサイドカーコンテナーの実行を待たずに OpenShift が動作を開始するようにするには、このフィールドをfalseに設定します。これにより、downwardAPIボリュームタイプをサポートしない環境でのタスク実行が可能になります。 -
default-service-account(デフォルト:Pipeline): 特に指定されていない場合は、TaskRunおよびPipelineRunリソースに使用するデフォルトのサービスアカウント名がこのフィールドに設定されます。 require-git-ssh-secret-known-hosts(デフォルト:false): このフィールドをtrueに設定するには、Git SSH シークレットにknown_hostsフィールドが含まれている必要があります。- Git SSH シークレットの設定の詳細は、関連情報 セクションの Git の SSH 認証の設定 を参照してください。
-
enable-tekton-oci-bundles(デフォルト:false): このフィールドをtrueに設定すると、Tekton OCI バンドルという名前の実験的アルファ機能の使用が可能になります。 enable-api-fields(デフォルト:stable): このフィールドを設定すると、どの機能が有効になるかが決まります。使用できる値はstable、beta、またはalphaです。注記Red Hat OpenShift Pipelines で
alpha値はサポートされていません。-
enable-provenance-in-status(デフォルト:false): このフィールドをtrueに設定すると、TaskRunステータスおよびPipelineRunステータスのprovenanceフィールドへの入力が可能になります。provenanceフィールドには、リモートタスクまたはパイプライン定義の取得元などの、タスク実行およびパイプライン実行で使用されるリソースのメタデータが含まれます。 -
enable-custom-tasks(デフォルト:true): このフィールドをfalseに設定すると、パイプラインでのカスタムタスクの使用が無効になります。 -
disable-creds-init(デフォルト:false): OpenShift Pipelines が接続されたサービスアカウントをスキャンしてステップに認証情報を挿入しないようにするには、このフィールドをtrueに設定します。 -
disable-affinity-assistant(デフォルト:true): 永続ボリューム要求ワークスペースを共有する各TaskRunリソースに対してアフィニティーアシスタントを有効にするには、このフィールドをfalseに設定します。
メトリクスオプション
TektonConfig CR の次のメトリクスフィールドのデフォルト値を変更できます。
-
metrics.taskrun.duration-typeとmetrics.pipelinerun.duration-type(デフォルト:histogram): これらのフィールドを設定すると、タスクまたはパイプライン実行の期間のタイプが決まります。使用できる値は、gaugeまたはhistogramです。 -
metrics.taskrun.level(デフォルト:task): このフィールドにより、タスク実行メトリクスのレベルが決まります。使用できる値は、taskrun、task、またはnamespaceです。 -
metrics.pipelinerun.level(デフォルト:pipeline): このフィールドにより、パイプライン実行メトリクスのレベルが決まります。使用できる値は、pipelinerun、pipeline、またはnamespaceです。 -
Coschedule (デフォルト:'workspaces):このフラグは、PipelineRunPod がアフィニティーアシスタントでどのようにスケジュールされるかを決定します。使用できる値は workspaceまたはdisabledです。
3.3.2. 任意の設定フィールド リンクのコピーリンクがクリップボードにコピーされました!
次のフィールドにはデフォルト値がなく、設定した場合にのみ考慮されます。デフォルトでは、Operator はこれらのフィールドを TektonConfig カスタムリソース (CR) に追加も設定もしません。
-
default-timeout-minutes:TaskRunおよびPipelineRunリソースの作成時に指定していない場合は、このフィールドがデフォルトのタイムアウトを設定します。タスク実行またはパイプライン実行にかかる時間が設定された分数より長いと、タスク実行またはパイプライン実行はタイムアウトになり、キャンセルされます。たとえば、default-timeout-minutes: 60はデフォルトを 60 分に設定します。 -
default-managed-by-label-value: このフィールドには、app.kubernetes.io/managed-byラベルに指定されたデフォルト値が含まれます。このデフォルト値は、何も指定されていない場合にすべてのTaskRunPod に適用されます。たとえば、default-managed-by-label-value: tekton-pipelinesです。 -
default-pod-template: このフィールドは、指定されていない場合にデフォルトのTaskRunおよびPipelineRunPod テンプレートを設定します。 -
default-cloud-events-sink: このフィールドは、何も指定されていない場合に、TaskRunおよびPipelineRunリソースに使用されるデフォルトのCloudEventsシンクを設定します。 -
default-task-run-workspace-binding: このフィールドには、Taskリソースが宣言するワークスペースのデフォルトワークスペース設定が含まれますが、TaskRunリソースは明示的に宣言されません。 -
default-affinity-assistant-pod-template: このフィールドは、何も指定されていない場合にアフィニティーアシスタント Pod が使用するデフォルトのPipelineRunPod テンプレートを設定します。 -
default-max-matrix-combinations-count: このフィールドには、何も指定されていない場合の、マトリクスから生成される組み合わせの最大数のデフォルト値が含まれます。
3.4. OpenShift Pipelines のデフォルトサービスアカウントの変更 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Pipeline のデフォルトサービスアカウントは、.spec.pipeline および .spec.trigger 仕様の default-service-account フィールドを編集して変更できます。デフォルトのサービスアカウントの名前は pipeline です。
例
3.5. OpenShift Pipelines インストール namespace のラベルおよびアノテーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Operator が OpenShift Pipelines をインストールする openshift-pipelines namespace にラベルとアノテーションを設定できます。
openshift-pipelines namespace の名前の変更はサポートされていません。
TektonConfig カスタムリソース (CR) の spec.targetNamespaceMetadata 仕様にラベルとアノテーションを追加して指定します。
openshift-pipelines namespace のラベルとアノテーションを設定する例
3.6. パイプラインコントローラーの再同期期間の設定 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインコントローラーの再同期期間を設定できます。再同期期間ごとに、コントローラーはイベントに関係なく、すべてのパイプライン実行とタスク実行を調整します。
デフォルトの再同期期間は 10 時間です。パイプライン実行とタスク実行の数が多い場合は、10 時間ごとに完全な調整を行うと、リソースが過剰に消費される可能性があります。この場合は、より長い再同期期間を設定できます。
前提条件
-
cluster-admin権限で OpenShift Container Platform クラスターにログインしている。
手順
TektonConfigカスタムリソースで、次の例に示すように、パイプラインコントローラーの再同期期間を設定します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、再同期期間を 24 時間に設定します。
3.7. サービスモニターの無効化 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Pipeline の一部であるサービスモニターを無効にして、Telemetry データを公開できます。サービスモニターを無効にするには、TektonConfig カスタムリソース (CR) の .spec.pipeline 仕様で enableMetrics パラメーターを false に設定します。
例
3.8. パイプラインリゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
パイプラインリゾルバーは、TektonConfig カスタムリソース (CR) で設定できます。パイプラインリゾルバーは、有効または無効にできます。
-
enable-bundles-resolver -
enable-cluster-resolver -
enable-git-resolver -
enable-hub-resolver
例
TektonConfig CR でリゾルバー固有の設定も指定できます。たとえば、map[string]string 形式で以下のフィールドを定義し、各パイプラインリゾルバーを設定できます。
例
3.9. リゾルバータスクとパイプラインテンプレートの無効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、TektonAddon カスタムリソース (CR) は、クラスター上の OpenShift Pipelines と併せて resolverTasks および pipelineTemplates リソースをインストールします。
リゾルバータスクおよびパイプラインテンプレートのインストールを無効にするには、.spec.addon 仕様でパラメーター値を false に設定します。
手順
次のコマンドを実行して、
TektonConfigCR を編集します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigCR で、.addon.params仕様のresolverTasksおよびpipelineTemplatesパラメーター値をfalseに設定します。リゾルバータスクおよびパイプラインテンプレートリソースの無効化例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要pipelinesTemplatesパラメーターの値は、resolverTasksパラメーターの値がtrueの場合にのみtrueに設定できます。
3.10. Tekton Hub 統合の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Developer パースペクティブで Tekton Hub の統合を無効にするには、TektonConfig カスタムリソース (CR) の enable-devconsole-integration パラメーターを false に設定します。
Tekton Hub 無効化の例
3.11. RBAC リソースの自動作成の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines Operator のデフォルトインストールは、^(openshift|kube)-* 正規表現パターンに一致する namespace を除き、クラスター内のすべての namespace に複数のロールベースアクセス制御 (RBAC) リソースを作成します。これらの RBAC リソースの中で、pipelines-scc-rolebinding SCC (security context constraint) のロールバインディングリソースは、関連する pipelines-scc SCC に RunAsAny 権限があるため、セキュリティー上の問題となる可能性があります。
Red Hat OpenShift Pipelines Operator のインストール後にクラスター全体の RBAC リソースの自動作成を無効にするには、クラスター管理者は、クラスターレベルの TektonConfig カスタムリソース (CR) で createRbacResource パラメーターを false に設定します。
手順
次のコマンドを実行して、
TektonConfigCR を編集します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
TektonConfigCR で、createRbacResourceパラメーターの値をfalseに設定します。
TektonConfig CR の例
3.12. パイプラインとタスクのインライン仕様の無効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift Pipelines は、次の場合にパイプラインとタスクのインライン仕様をサポートします。
次の例のように、1 つ以上のタスク仕様を含む
パイプラインCR を作成できます。PipelineCR のインライン仕様の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のように、パイプライン仕様を含む
PipelineRunカスタムリソース (CR) を作成できます。PipelineRunCR のインライン仕様の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のように、タスク仕様を含む
TaskRunカスタムリソース (CR) を作成できます。TaskRunCR のインライン仕様の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これらのケースの一部またはすべてでインライン仕様を無効にできます。インライン仕様を無効にするには、次の例のように、TektonConfig CR の .spec.pipeline 仕様の disable-inline-spec フィールドを設定します。
インライン仕様を無効にする設定例
disable-inline-spec パラメーターを、単一値または複数値をコンマ区切りのリストに設定できます。パラメーターの値は以下のとおりです。
| 値 | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
3.13. タスク実行とパイプライン実行の自動プルーニング リンクのコピーリンクがクリップボードにコピーされました!
古い TaskRun オブジェクトと PipelineRun オブジェクト、およびそれらの実行されたインスタンスは、アクティブな実行に使用できる物理リソースを占有します。これらのリソースを最適に利用するために、Red Hat OpenShift Pipelines は、さまざまな namespace 内の未使用のオブジェクトとそのインスタンスを自動的に削除するプルーナーコンポーネントを提供します。
TektonConfig カスタムリソースを使用してインストール全体のプルーナーを設定し、namespace のアノテーションを使用して namespace の設定を変更できます。ただし、namespace で個々のタスク実行とパイプライン実行を選択的に自動プルーニングすることはできません。
3.13.1. プルーナーの設定 リンクのコピーリンクがクリップボードにコピーされました!
TektonConfig カスタムリソースを使用して、パイプラインの実行とタスクの実行に関連付けられたリソースの定期的なプルーニングを設定できます。
次の例は、デフォルト設定に対応します。
プルーナー設定の例
| パラメーター | 説明 |
|---|---|
|
| プルーナープロセスを実行するための Cron スケジュール。デフォルトのスケジュールでは、プロセスは毎日 08:00 に実行されます。Cron スケジュール構文の詳細は、Kubernetes ドキュメントの Cron schedule syntax を参照してください。 |
|
|
プルーナーが適用されるリソースのタイプ。使用可能なリソースの種類は、 |
|
| 保持するすべてのタイプの最新のリソースの数。 |
|
|
|
|
|
リソースを保持する最大時間 (分単位)。たとえば、6 日以上前に作成されたリソースを保持するには、 |
|
| このパラメーターは任意です。何らかの理由でプルーナージョブがスケジュールされたタイミングで開始しない場合、この設定でジョブを開始できる最大時間を秒単位で設定します。指定された時間内にジョブが開始されないと、OpenShift Pipelines はこのジョブが失敗したと見なし、次のスケジュールされた時間にプルーナーを開始します。このパラメーターを指定せず、プルーナージョブがスケジュールされたタイミングで開始されないと、可能な限り、OpenShift Pipelines は後からジョブを開始しようとします。 |
keep パラメーターと keep-since パラメーターは相互に排他的です。設定ではそのうちの 1 つだけを使用してください。
3.13.2. タスク実行とパイプライン実行を自動的にプルーニングするためのアノテーション リンクのコピーリンクがクリップボードにコピーされました!
ネームスペース内のタスク実行とパイプライン実行の自動プルーニングの設定を変更するには、namespace にアノテーションを設定します。
次の namespace のアノテーションは、TektonConfig カスタムリソースの対応するキーと同じ意味を持ちます。
-
operator.tekton.dev/prune.schedule -
operator.tekton.dev/prune.resources -
operator.tekton.dev/prune.keep -
operator.tekton.dev/prune.prune-per-resource -
operator.tekton.dev/prune.keep-since
Operator.tekton.dev/prune.resources アノテーションは、コンマ区切りのリストを受け入れます。タスク実行とパイプライン実行の両方をプルーニングするには、このアノテーションを "taskrun, pipelinerun" に設定します。
次の追加の namespace アノテーションを使用できます。
-
Operator.tekton.dev/prune.skip:trueに設定すると、アノテーションが設定されている namespace はプルーニングされません。 -
operator.tekton.dev/prune.strategy: このアノテーションの値をkeepまたはkeep-sinceのいずれかに設定します。
たとえば、次のアノテーションは、過去 5 日間に作成されたすべてのタスク実行とパイプライン実行を保持し、古いリソースを削除します。
自動プルーニングアノテーションの例
3.13.3. イベントベースのプルーナーの有効化 リンクのコピーリンクがクリップボードにコピーされました!
イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
イベントベースの tektonpruner コントローラーを使用すると、設定可能なポリシーに基づいて、PipelineRuns や TaskRuns などの完了したリソースを自動的に削除できます。デフォルトのジョブベースのプルーナーとは異なり、イベントベースのプルーナーはリソースイベントをリッスンし、ほぼリアルタイムでリソースをプルーニングします。
イベントベースのプルーナーは以下と一緒に使用できます。
リソースアノテーション Tekton Results パイプライン as Code
Operator はイベントベースのプルーナーでのこれらの機能の使用を制限しません。ただし、将来のリリースでは、競合が検出されると検証が導入される可能性があります。
イベントベースのプルーナーを有効にする前に、TektonConfig カスタムリソース(CR)でデフォルトのプルーナーを無効にする必要があります。プルーナータイプの両方が有効になっている場合、デプロイメントの readiness ステータスが False に変更され、以下のエラーメッセージが出力に表示されます。
Components not in ready state: Invalid Pruner Configuration!! Both pruners, tektonpruner(event based) and pruner(job based) cannot be enabled simultaneously. Please disable one of them.
Components not in ready state: Invalid Pruner Configuration!! Both pruners, tektonpruner(event based) and pruner(job based) cannot be enabled simultaneously. Please disable one of them.
手順
TektonConfig CR で、
spec.pruner.disabledフィールドをtrueに設定してデフォルトのプルーナーを無効にし、spec.tektonpruner.disabledフィールドをfalseに設定してイベントベースのプルーナーを有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新された CR を適用すると、Operator は
tekton-pruner-controllerPod をopenshift-pipelinesnamespace にデプロイします。以下の設定マップが
openshift-pipelinesnamespace に表示されることを確認します。Expand ConfigMap 目的 tekton-pruner-default-specデフォルトのプルーニング動作を定義する
pruner-infoコントローラーが使用する内部ランタイムデータを保存する
config-logging-tekton-prunerプルーナーのロギング設定を行う
config-observability-tekton-prunerメトリクスやトレーシングなどの可観測性機能を有効にする
デフォルトのプルーナーとは異なり、TektonConfig CR を変更することによってのみイベントベースのプルーナーを有効または無効にすることができます。tekton-pruner-default-spec 設定マップを変更して他のすべてのプルーニング動作を設定します。
検証
tekton-pruner-controllerPod が実行中であることを確認するには、次のコマンドを実行します。oc get pods -n openshift-pipelines
$ oc get pods -n openshift-pipelinesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に
Running状態のtekton-pruner-controllerPod が含まれていることを確認します。出力例:tekton-pruner-controller-<id> Running
$ tekton-pruner-controller-<id> RunningCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13.4. イベントベースのプルーナーの設定 リンクのコピーリンクがクリップボードにコピーされました!
イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
イベントベースのプルーナーのプルーニング動作を設定するには、openshift-pipelines namespace の tekton-pruner-default-spec 設定マップを変更します。この設定マップは、グローバルプルーニングポリシーとオプションの namespace 固有のオーバーライドの両方をサポートします。
以下の例は、グローバルプルーニングルールを使用するデフォルトの tekton-pruner-default-spec 設定マップを示しています。
-
ttlSecondsAfterFinished: 300: リソース 300 秒(5 分)を削除します。 -
successfulHistoryLimit: 3Retain 3 successful の実行。 -
failedHistoryLimit: 3: Retain 3 failed runs. -
historyLimit: 5: 保持を 5 の実行に制限します。この設定は、ステータス固有の制限が定義されていない場合に使用されます。
enforcedConfigLevel を namespace に設定し、namespaces セクションでポリシーを設定することで、個々の namespace のプルーニングルールを定義できます。次の例では、dev-project namespace 内のリソースに 60 秒の有効期間 (TTL) が適用されます。
以下のパラメーターは、tekton-pruner-default-spec Config Map の global-config セクションで使用できます。
| パラメーター | 説明 |
|---|---|
|
| 完了後の固定期間(秒数)後にリソースを削除します。 |
|
| 最近成功した実行の指定数を保持し、以前に成功した実行を削除します。 |
|
| 最近失敗した実行の指定数を保持し、以前に失敗した実行を削除します。 |
|
| ステータス固有の制限が定義されていない場合は、一般的な履歴制限を適用します。 |
|
|
プルーナーが設定を適用するレベルを指定します。受け入れられる値: |
|
| namespace ごとのプルーニングルールを定義します。 |
3.14. Webhook の追加オプションの設定 リンクのコピーリンクがクリップボードにコピーされました!
オプションとして、OpenShift Pipelines 内の複数のコントローラーが作成した Webhook に対して、failurePolicy、timeoutSeconds、または sideEffects オプションを設定できます。これらのオプションの詳細は、Kubernetes のドキュメント を参照してください。
前提条件
-
ocコマンドラインユーティリティーをインストールしている。 -
OpenShift Pipelines がインストールされている namespace (通常は
openshift-pipelinesnamespace) の管理者権限で OpenShift Container Platform クラスターにログインしている。
手順
OpenShift パイプラインコントローラーが作成した Webhook の一覧を表示します。Webhook には、変更用 Webhook と検証 Webhook の 2 つのタイプがあります。
変更用の Webhook のリストを表示するには、以下のコマンドを入力します。
oc get MutatingWebhookConfiguration
$ oc get MutatingWebhookConfigurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 検証用 Webhook の一覧を表示するには、以下のコマンドを入力します。
oc get ValidatingWebhookConfiguration
$ oc get ValidatingWebhookConfigurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
TektonConfigカスタムリソース (CR) で、次の例に示すように、必要に応じて各コントローラーのセクションの下に、Webhook を変更および検証するための設定を追加します。検証用の Webhook にはvalidation.webhook.pipeline.tekton.dev仕様、変更用の Webhook にはwebhook.pipeline.tekton.dev仕様を使用します。重要-
OperatorWebhook の設定を指定できません。 -
すべての設定はオプションです。たとえば、
timeoutSecondsパラメーターを設定し、failurePolicyおよびsideEffectsパラメーターを省略できます。
Pipelines コントローラーの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トリガーコントローラーの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pipelines as Code コントローラーの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Tekton Hub コントローラーの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -