1.2. Tekton の結果の設定
OpenShift Pipelines をインストールすると、Tekton Results がデフォルトで有効になります。
ただし、パイプライン実行とタスク実行のログ情報を保存してアクセスする場合は、この情報を LokiStack に転送するように設定する必要があります。
オプションで、Tekton Results の追加設定を完了できます。
1.2.1. ログ情報の LokiStack 転送の設定 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results を使用してタスク実行のログ情報を照会する場合は、OpenShift Container Platform クラスターに LokiStack と OpenShift ロギングをインストールし、ログ情報を LokiStack に転送するように設定する必要があります。
ログ情報の LokiStack 転送が設定されていない場合、Tekton Results でこの情報は保存されず、コマンドラインインターフェイスまたは API からも提供されません。
前提条件
-
OpenShift CLI (
oc) ユーティリティーがインストールされている。 - クラスター管理者ユーザーとして OpenShift Container Platform クラスターにログインした。
手順
LokiStack 転送を設定するには、次の手順を実行します。
- OpenShift Container Platform クラスターで、Loki Operator を使用して LokiStack をインストールし、さらに OpenShift Logging Operator もインストールします。
OpenShift Logging バージョン 6 またはバージョン 5 のどちらをインストールしたかに応じて、次のいずれかの YAML マニフェストを使用して、
ClusterLogForwarderカスタムリソース (CR) のClusterLogForwarder.yamlマニフェストファイルを作成します。OpenShift Logging バージョン 6 をインストールしている場合の
ClusterLogForwarderCR の YAML マニフェストapiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: collector namespace: openshift-logging spec: inputs: - application: selector: matchExpressions: - key: app.kubernetes.io/managed-by operator: In values: ["tekton-pipelines", "pipelinesascode.tekton.dev"] name: only-tekton type: application managementState: Managed outputs: - lokiStack: labelKeys: application: ignoreGlobal: true labelKeys: - log_type - kubernetes.namespace_name - openshift_cluster_id authentication: token: from: serviceAccount target: name: logging-loki namespace: openshift-logging name: default-lokistack tls: ca: configMapName: openshift-service-ca.crt key: service-ca.crt type: lokiStack pipelines: - inputRefs: - only-tekton name: default-logstore outputRefs: - default-lokistack serviceAccount: name: collectorOpenShift Logging バージョン 5 をインストールしている場合の
ClusterLogForwarderCR の YAML マニフェストapiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: inputs: - name: only-tekton application: selector: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines pipelines: - name: enable-default-log-store inputRefs: [ only-tekton ] outputRefs: [ default ]次のコマンドを入力して、
openshift-loggingnamespace にClusterLogForwarderCR を作成します。$ oc apply -n openshift-logging ClusterLogForwarder.yaml次のコマンドを使用して、
TektonConfigカスタムリソース (CR) を編集します。$ oc edit TektonConfig configresult仕様に次の変更を加えます。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: loki_stack_name: logging-loki1 loki_stack_namespace: openshift-logging2
1.2.2. 外部データベースサーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、PostgreSQL データベースを使用してデータを保存します。デフォルトでは、インストールには内部 PostgreSQL インスタンスが含まれます。デプロイメント内にすでに存在する外部 PostgreSQL サーバーを使用するようにインストールを設定できます。
手順
次のコマンドを入力して、PostgreSQL サーバーに接続するための認証情報を含むシークレットを作成します。
$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=<user> \ --from-literal=POSTGRES_PASSWORD=<password>次のコマンドを使用して、
TektonConfigカスタムリソース (CR) を編集します。$ oc edit TektonConfig configresult仕様に次の変更を加えます。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: is_external_db: true db_host: database.example.com1 db_port: 53422
1.2.3. Tekton Results の保持ポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Tekton Results はパイプラインの実行、タスクの実行、イベント、およびログを無期限に保存します。これにより、ストレージリソースが不必要に使用され、データベースのパフォーマンスに影響する可能性があります。
クラスターレベルで Tekton Results の保持ポリシーを設定して、古い結果とそれに関連するレコードおよびログを削除できます。
手順
次のコマンドを使用して、
TektonConfigカスタムリソース (CR) を編集します。$ oc edit TektonConfig configresult仕様に次の変更を加えます。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: result: options: configMaps: config-results-retention-policy: data: runAt: "3 5 * * 0"1 maxRetention: "30"2