1.2. Tekton Results のインストールの準備
Tekton Results をインストールする前に、いくつかの準備手順を完了する必要があります。
1.2.1. SSL 証明書を使用したシークレットの準備 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、SSL 証明書を必要とする HTTPS プロトコルを使用した REST API を提供します。この証明書にシークレットを指定します。認証局 (CA) から提供された既存の証明書がある場合はその証明書を使用し、それ以外の場合は自己署名証明書を作成します。
前提条件
-
opensslコマンドラインユーティリティーがインストールされている。
手順
CA から提供された証明書がない場合は、次のコマンドを入力して自己署名証明書を作成します。
$ openssl req -x509 \ -newkey rsa:4096 \ -keyout key.pem \ -out cert.pem \ -days 365 \ -nodes \ -subj "/CN=tekton-results-api-service.openshift-pipelines.svc.cluster.local" \ -addext "subjectAltName = DNS:tekton-results-api-service.openshift-pipelines.svc.cluster.local"tekton-results-api-service.openshift-pipelines.svc.cluster.localは、Tekton Results API に使用する予定のルートエンドポイントに置き換えます。次のコマンドを入力して、証明書からトランスポートセキュリティー層 (TLS) シークレットを作成します。
$ oc create secret tls -n openshift-pipelines tekton-results-tls --cert=cert.pem --key=key.pemCA によって提供された既存の証明書を使用する場合は、
cert.pemをこの証明書を含むファイルの名前に置き換えます。
1.2.2. データベース認証情報を使用したシークレットの準備 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、PostgreSQL データベースを使用してデータを保存します。Tekton Results とともに自動的にインストールされる PostgreSQL サーバー、またはデプロイメント内にすでに存在する外部 PostgreSQL サーバーのいずれかを使用するようにインストールを設定できます。どちらの場合も、データベースの認証情報にシークレットを指定します。
手順
次のいずれかの手順を実行します。
外部 PostgreSQL サーバーを使用する必要がない場合は、次のコマンドを入力して、
openshift-pipelinesnamespace にresultという名前のデータベースユーザーと任意のパスワードを使用してシークレットを作成します。$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=result \ --from-literal=POSTGRES_PASSWORD=$(openssl rand -base64 20)注記このコマンドおよび後続のコマンドで、OpenShift Pipelines のカスタムターゲット namespace を設定した場合は、
openshift-pipelinesの代わりにこの namespace の名前を使用します。外部 PostgreSQL データベースサーバーを使用して Tekton Results データを保存する場合は、次のコマンドを入力して、このサーバーの認証情報を使用してシークレットを作成します。
$ oc create secret generic tekton-results-postgres \ --namespace=openshift-pipelines \ --from-literal=POSTGRES_USER=<user> \1 --from-literal=POSTGRES_PASSWORD=<password>2 <user>は、Tekton Results が使用する必要がある PostgreSQL ユーザーのユーザー名に置き換えます。<password>は、同じアカウントのパスワードに置き換えます。
1.2.3. ログ情報用のストレージまたは LokiStack 転送の準備 リンクのコピーリンクがクリップボードにコピーされました!
Tekton Results は、パイプラインの実行とタスクの実行に関連する情報をログに記録するために別のストレージを使用します。次のいずれかのタイプのストレージを設定できます。
- Red Hat OpenShift Pipelines クラスター上の永続ボリューム要求
- Google Cloud Storage
- S3 バケットストレージ
または、OpenShift Container Platform クラスターに LokiStack と OpenShift ロギングをインストールし、ログ情報を LokiStack に転送するように設定することもできます。このオプションは、より高い負荷に対して、スケーラビリティーを向上させることができます。
OpenShift Pipelines 1.16 では、PVC、Google Cloud Storage、および S3 バケットストレージにログ情報をネイティブに保存する Tekton Results 機能は非推奨となり、今後のリリースで削除される予定です。
ログ情報は、設定するログ情報の保存または LokiStack 転送のタイプに関係なく、Tekton Results コマンドラインインターフェイスと API を使用して提供されます。
手順
以下の手順のいずれかを実行します。
PVC を使用するには、次の手順を実行します。
次の定義を含む
pvc.yamlという名前のファイルを PVC に作成します。apiVersion: v1 kind: PersistentVolumeClaim metadata: name: tekton-logs spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi次のコマンドを入力して定義を適用します。
$ oc apply -n openshift-pipelines -f pvc.yaml
Google Cloud Storage を使用するには、次の手順を実行します。
-
gcloudコマンドを使用して、アプリケーション認証情報ファイルを作成します。ファイルでアプリケーション認証情報を指定する手順は、Google Cloud ドキュメントの gcloud CLI を使用して提供されるユーザー認証情報 を参照してください。 次のコマンドを入力して、アプリケーション認証情報ファイルからシークレットを作成します。
$ oc create secret generic gcs-credentials \ --from-file=$HOME/.config/gcloud/application_default_credentials.json \ -n openshift-pipelines必要に応じて、アプリケーション認証情報ファイルのパスとファイル名を調整します。
-
S3 バケットストレージを使用するには、次の手順を実行します。
次の内容を含む
s3_secret.yamlという名前のファイルを作成します。apiVersion: v1 kind: Secret metadata: name: my_custom_secret namespace: tekton-pipelines type: Opaque stringData: S3_BUCKET_NAME: bucket11 S3_ENDPOINT: https://example.localhost.com2 S3_HOSTNAME_IMMUTABLE: "false" S3_REGION: region-13 S3_ACCESS_KEY_ID: "1234"4 S3_SECRET_ACCESS_KEY: secret_key5 S3_MULTI_PART_SIZE: "5242880"次のコマンドを入力して、ファイルからシークレットを作成します。
$ oc create secret generic s3-credentials \ --from-file=s3_secret.yaml -n openshift-pipelines
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: matchLabels: app.kubernetes.io/managed-by: tekton-pipelines 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 を作成するには、クラスター管理者ユーザーとして OpenShift CLI (oc) を使用して OpenShift Container Platform クラスターにログインし、以下のコマンドを入力します。$ oc apply -n openshift-logging ClusterLogForwarder.yaml