インストールおよび設定
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.20.0 True
NAME VERSION READY REASON config 1.20.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)。SubscriptionYAML の例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 コントローラーのレプリカの数を制御しません。デプロイメントの replicas 設定により、レプリカの数が決まります。たとえば、レプリカの数を 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です。
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 Triggers のインストールの無効化 リンクのコピーリンクがクリップボードにコピーされました!
Operator を介して OpenShift Pipelines をデプロイするときに Tekton Triggers の自動インストールを無効化すると、トリガーが個別に管理される環境の柔軟性が高まります。Tekton Triggers のインストールを無効にするには、TektonConfig カスタムリソース (CR) の spec.trigger 仕様で、disabled パラメーターを true に設定します。
デフォルトの設定は false です。
3.11. Tekton Hub 統合の無効化 リンクのコピーリンクがクリップボードにコピーされました!
Web コンソールの Developer パースペクティブで Tekton Hub の統合を無効にするには、TektonConfig カスタムリソース (CR) の enable-devconsole-integration パラメーターを false に設定します。
Tekton Hub 無効化の例
3.12. 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.13. パイプラインとタスクのインライン仕様の無効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、OpenShift Pipelines は、次の場合にパイプラインとタスクのインライン仕様をサポートします。
次の例のように、1 つ以上のタスク仕様を含む
PipelineCR を作成できます。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.14. RBAC と信頼済み CA フラグの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Pipelines Operator は、createRbacResource と createCABundleConfigMaps という 2 つの別個のフラグを通じて、RBAC リソースの作成と信頼済み CA バンドル config map に対する独立した制御を提供します。
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
|
| RBAC リソースの作成のみを制御します。このフラグは、信頼済み CA バンドル config map には影響しません。 |
|
|
|
信頼済み CA バンドル config map とサービス CA バンドル config map の作成を制御します。config map の作成を無効にするには、このフラグを |
|
3.15. タスク実行とパイプライン実行の自動プルーニング リンクのコピーリンクがクリップボードにコピーされました!
古い TaskRun オブジェクトと PipelineRun オブジェクト、およびそれらの実行されたインスタンスは、アクティブな実行に使用できる物理リソースを占有します。これらのリソースを最適に利用するために、Red Hat OpenShift Pipelines は、さまざまな namespace 内の未使用のオブジェクトとそのインスタンスを自動的に削除するプルーナーコンポーネントを提供します。
TektonConfig カスタムリソースを使用してインストール全体のプルーナーを設定し、namespace のアノテーションを使用して namespace の設定を変更できます。ただし、namespace で個々のタスク実行とパイプライン実行を選択的に自動プルーニングすることはできません。
3.15.1. プルーナーの設定 リンクのコピーリンクがクリップボードにコピーされました!
TektonConfig カスタムリソースを使用して、パイプラインの実行とタスクの実行に関連付けられたリソースの定期的なプルーニングを設定できます。
次の例は、デフォルト設定に対応します。
プルーナー設定の例
| パラメーター | 説明 |
|---|---|
|
| プルーナープロセスを実行するための Cron スケジュール。デフォルトのスケジュールでは、プロセスは毎日 08:00 に実行されます。Cron スケジュール構文の詳細は、Kubernetes ドキュメントの Cron schedule syntax を参照してください。 |
|
|
プルーナーが適用されるリソースのタイプ。使用可能なリソースの種類は、 |
|
| 保持するすべてのタイプの最新のリソースの数。 |
|
|
|
|
|
リソースを保持する最大時間 (分単位)。たとえば、作成から 5 日以内のリソースを保持するには、 |
|
| このパラメーターは任意です。何らかの理由でプルーナージョブがスケジュールされたタイミングで開始しない場合、この設定でジョブを開始できる最大時間を秒単位で設定します。指定された時間内にジョブが開始されないと、OpenShift Pipelines はこのジョブが失敗したと見なし、次のスケジュールされた時間にプルーナーを開始します。このパラメーターを指定せず、プルーナージョブがスケジュールされたタイミングで開始されないと、可能な限り、OpenShift Pipelines は後からジョブを開始しようとします。 |
keep パラメーターと keep-since パラメーターは相互に排他的です。設定ではそのうちの 1 つだけを使用してください。
3.15.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.16. イベントベースのプルーナーの有効化 リンクのコピーリンクがクリップボードにコピーされました!
イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
イベントベースの tektonpruner コントローラーを使用すると、設定可能なポリシーに基づいて、PipelineRuns や TaskRuns などの完了したリソースを自動的に削除できます。デフォルトのジョブベースのプルーナーとは異なり、イベントベースのプルーナーはリソースイベントをリッスンし、ほぼリアルタイムでリソースをプルーニングします。
イベントベースのプルーナーを有効にする前に、TektonConfig カスタムリソース (CR) のデフォルトのプルーナーを無効にする必要があります。両方のプルーナータイプが有効になっている場合、デプロイメントの準備ステータスが 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 に次の config map が存在することを確認します。Expand config map 目的 tekton-pruner-default-specデフォルトのプルーニング動作を定義する
pruner-infoコントローラーが使用する内部ランタイムデータを保存する
config-logging-tekton-prunerプルーナーのロギング設定を行う
config-observability-tekton-prunerメトリクスやトレーシングなどの可観測性機能を有効にする
検証
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.16.1. イベントベースのプルーナーの設定 リンクのコピーリンクがクリップボードにコピーされました!
イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
TektonConfig カスタムリソース (CR) を変更することで、イベントベースプルーナーのプルーニング動作を設定できます。
以下は、グローバルプルーニングルールを使用するデフォルト設定の TektonConfig CR の例です。
-
failedHistoryLimit: 保持される失敗した実行の量。 -
historyLimit: 保持する実行の量。ステータス固有の制限が定義されていない場合、Pruner はこの設定を使用します。 -
namespaces:enforcedConfigLevelをnamespaceに設定した場合の、namespace ごとのプルーニングポリシーの定義。 -
successfulHistoryLimit: 保持される成功した実行の量。 -
ttlSecondsAfterFinished: 完了後、プルーナーがリソースを削除するまでの時間 (秒)。
enforcedConfigLevel を namespace に設定し、namespaces セクションでポリシーを設定することで、個々の namespace のプルーニングルールを定義できます。次の例では、dev-project namespace 内のリソースに 60 秒の有効期間 (TTL) が適用されます。
TektonConfig CR tektonpruner では次のパラメーターを使用できます。
| パラメーター | 説明 |
|---|---|
|
| 完了から一定秒数が経過したリソースを削除します。 |
|
| 最新の成功した実行を指定された数だけ保持します。古い成功した実行を削除します。 |
|
| 最新の失敗した実行を指定された数だけ保持します。古い失敗した実行を削除します。 |
|
|
|
|
|
プルーナーが設定を適用するレベルを指定します。受け入れられる値: |
|
| namespace ごとのプルーニングポリシーを定義します。 |
TTL ベースのプルーニングを使用して、設定された有効期限を超えたリソースをプルーニングできます。履歴ベースのプルーニングを使用して、設定された historyLimit を超えるリソースをプルーニングします。
3.16.2. イベントベースのプルーナーの観測可能性メトリクス リンクのコピーリンクがクリップボードにコピーされました!
イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
イベントベースのプルーナーは、監視、トラブルシューティング、および容量計画のために、OpenTelemetry 形式でポート 9090 の tekton-pruner-controller コントローラー Service 定義を通じて、詳細なメトリクスを公開します。
公開されるメトリクスのカテゴリーは次のとおりです。
- リソース処理
- パフォーマンスのタイミング
- 状態追跡
- エラー監視
ほとんどのプルーナーメトリクスでは、追加のコンテキストを提供するためにラベルが使用されます。PromQL クエリーまたはダッシュボードでこれらのラベルを使用して、メトリクスをフィルタリングおよびグループ化できます。
| Label | 説明 |
|---|---|
|
|
|
|
| Tekton リソースタイプ。 |
|
| リソースの処理の結果。 |
|
| リソースを削除したプルーニング方法。 |
|
| スキップまたはエラー結果の具体的な原因。 |
- リソース処理メトリクス
イベントベースのプルーナーによって、次のリソース処理メトリクスが公開されます。
Expand 名前 型 説明 ラベル tekton_pruner_controller_resources_processed_totalCounter
処理されたリソースの合計
namespace, resource_type, status
tekton_pruner_controller_resources_deleted_totalCounter
削除されたリソースの合計
namespace, resource_type, operation
- パフォーマンスタイミングメトリクス
イベントベースのプルーナーによって、次のパフォーマンスタイミングメトリクスが公開されます。
Expand 名前 型 説明 ラベル Bucket tekton_pruner_controller_reconciliation_duration_secondsヒストグラム
リコンシリエーションに費やした時間
namespace, resource_type
0.1 から 30 秒
tekton_pruner_controller_ttl_processing_duration_secondsヒストグラム
TTL の処理に費やされた時間
namespace, resource_type
0.1 から 30 秒
tekton_pruner_controller_history_processing_duration_secondsヒストグラム
履歴の処理時間に関する制限
namespace, resource_type
0.1 から 30 秒
- 状態追跡メトリクス
イベントベースのプルーナーによって、次の状態追跡メトリクスが公開されます。
Expand 名前 型 説明 kn_workqueue_adds_totalCounter
キューに入れられたリソースの合計
kn_workqueue_depthゲージ
キュー内の現在のアイテム数
- エラー監視メトリクス
イベントベースのプルーナーによって、次のエラー監視メトリクスが公開されます。
Expand 名前 型 説明 ラベル tekton_pruner_controller_resources_errors_totalCounter
処理エラーの合計
namespace, resource_type, reason
3.17. 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 -