3.6. 認証された API でのリモートパイプラインまたはタスクの指定
Git リポジトリーからリモートパイプラインまたはタスクを指定するには、Git リゾルバーを使用します。リポジトリーには、パイプラインまたはタスクを定義する YAML ファイルが含まれている必要があります。ユーザー認証をサポートする認証済み API を使用すると、リポジトリーに安全にアクセスできます。
3.6.1. 認証された API の Git リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
認証されたソースコントロール管理 (SCM) API の場合は、認証された Git 接続の設定を指定する必要があります。
go-scm ライブラリーでサポートされている Git リポジトリープロバイダーを使用できます。すべての go-scm 実装が Git リゾルバーでテストされているわけではありませんが、次のプロバイダーが動作することが確認されています。
-
github.comおよび GitHub Enterprise -
gitlab.comおよびセルフホスト Gitlab - Gitea
- BitBucket Server
- BitBucket Cloud
- 認証された SCM API を使用して Git 接続を設定できます。クラスター上のすべてのユーザーが 1 つのリポジトリーにアクセスできるようにセキュリティートークンを提供できます。さらに、特定のパイプラインまたはタスクに対して異なる SCM プロバイダーとトークンを指定することもできます。
- 認証された SCM API を使用するように Git リゾルバーを設定すると、匿名の Git クローン参照を使用してパイプラインとタスクを取得することもできます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigカスタムリソースで、pipeline.git-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 何も指定されていない場合に使用するデフォルトの Git リビジョン。
- 2
- 単一の Git クローン解決にかかる最大時間は、たとえば、
1m、2s、700msです。Red Hat OpenShift Pipelines は、すべての解決リクエストに対して 1 分のグローバル最大タイムアウトも適用します。 - 3
- SCM プロバイダーのタイプ。
- 4
- 認証された SCM API で使用するベース URL。
github.com、gitlab.com、または BitBucket Cloud を使用している場合、この設定は必要ありません。 - 5
- SCM プロバイダー API トークンを含むシークレットの名前。
- 6
- トークンを含むトークンシークレット内のキー。
- 7
- トークンシークレットを含む namespace (
defaultでない場合)。 - 8
- オプション: 認証された API を使用する場合のリポジトリーのデフォルトの組織。この組織は、リゾルバーパラメーターで組織を指定しない場合に使用されます。
認証された SCM API を使用するには、scm-type、api-token-secret-name、および api-token-secret-key 設定が必要です。
3.6.2. 認証された SCM API で Git リゾルバーを使用したリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、認証された SCM API を使用して Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。
前提条件
- 認証された SCM API を使用する場合は、Git リゾルバーに対して認証された Git 接続を設定する必要があります。
手順
Git リポジトリーからリモートパイプラインまたはタスクを指定するには、
pipelineRefまたはtaskRef仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.49 Git リゾルバーでサポートされているパラメーター パラメーター 説明 値の例 org認証された SCM API を使用する場合のリポジトリーの組織。
tektoncdrepo認証された SCM API を使用する場合のリポジトリー名。
test-infrarevisionリポジトリー内の Git リビジョン。ブランチ名、タグ名、またはコミット SHA ハッシュを指定できます。
aeb957601cf41c012be462827053a21a420befcamainv0.38.2pathInRepoリポジトリー内の YAML ファイルのパス名。
task/golang-build/0.3/golang-build.yaml注記リポジトリーのクローンを作成して匿名で取得するには、
urlパラメーターを使用します。認証された SCM API を使用するには、repoパラメーターを使用します。urlパラメーターとrepoパラメーターを同時に指定しないでください。パイプラインまたはタスクに追加のパラメーターが必要な場合は、パイプライン、パイプライン実行、またはタスク実行の仕様の
paramsセクションでこれらのパラメーターの値を指定します。pipelineRefまたはtaskRef仕様のparamsセクションには、リゾルバーがサポートするパラメーターのみを含める必要があります。
次のパイプライン実行の例では、Git リポジトリーからリモートパイプラインを参照します。
次のパイプラインの例では、Git リポジトリーからリモートタスクを参照します。
次のタスク実行例では、Git リポジトリーからリモートタスクを参照します。
3.6.3. Git リゾルバーの設定を上書きする認証済み SCM API を使用した Git リゾルバーでのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、認証された SCM API を使用して Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。特定のパイプライン実行またはタスクの初期設定をオーバーライドして、さまざまなユースケースに応じて動作をカスタマイズできます。
次のタスク実行例では、以前のリゾルバー設定をオーバーライドする Git リポジトリーからのリモートタスクを参照します。
| パラメーター | 説明 | 値の例 |
|---|---|---|
|
| リポジトリーの組織。 |
|
| repo | リポジトリー名。 | catalog |
| revision | リポジトリー内の Git リビジョン。ブランチ名、タグ名、またはコミット SHA ハッシュを指定できます。 | main |
| pathInRepo | リポジトリー内の YAML ファイルのパス名。 | task/git-clone/0.6/git-clone.yaml |
| トークン (token) | 認証に使用されるシークレット名。 | my-secret-token |
| tokenKey | トークンのキー名。 | トークン (token) |
| scmType | SCM (ソースコントロール管理) システムのタイプ。 | github |
| serverURL | リポジトリーをホストしているサーバーの URL。 |
|