3.4. 認証された Git API でのリモートパイプライン、タスク、またはステップアクションの指定
Git リゾルバーを使用して、Git リポジトリーからリモートパイプライン、タスク、または StepAction 定義を指定できます。リポジトリーには、パイプラインまたはタスクを定義する YAML ファイルが含まれている必要があります。ユーザー認証をサポートする認証済み API を使用すると、リポジトリーにセキュアにアクセスできます。
3.4.1. 認証された API の Git リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
認証されたソースコントロール管理 (SCM) API の場合は、認証された Git 接続の設定を指定する必要があります。
go-scm ライブラリーでサポートされている Git リポジトリープロバイダーを使用できます。すべての go-scm 実装が Git リゾルバーでテストされているわけではありませんが、次のプロバイダーが動作することが確認されています。
-
github.comおよび GitHub Enterprise -
gitlab.comおよびセルフホスト Gitlab - Gitea
- Bitbucket Data Center
- 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.4.2. 複数の Git プロバイダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
複数の Git プロバイダーを設定するか、同じ Git プロバイダーに複数の設定を追加して、異なるタスク実行とパイプライン実行で使用できます。
一意の識別子鍵の接頭辞を使用して、TektonConfig カスタムリソース (CR) に詳細を追加します。
手順
次のコマンドを実行して、
TektonConfigCR を編集します。oc edit TektonConfig config
$ oc edit TektonConfig configCopy to Clipboard Copied! Toggle word wrap Toggle overflow TektonConfigCR で、pipeline.git-resolver-config仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告.記号が付いたconfigKey値はサポートされません。.シンボルを含むconfigKey値を渡そうとすると、値を渡したTaskRunまたはPipelineRunリソースの実行に失敗します。
3.4.3. 認証された SCM API で Git リゾルバーを使用したリモートパイプライン、タスク、またはステップアクションの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、認証された SCM API を使用して Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。タスク内でステップを作成するときに、Git リポジトリーからリモート StepAction 定義を参照できます。
前提条件
- 認証された SCM API を使用する場合は、Git リゾルバーに対して認証された Git 接続を設定する必要があります。
手順
Git リポジトリーからリモートパイプライン、タスク、または
StepAction定義を指定するには、pipelineRef、taskRef、またはstep.ref仕様で次の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表3.4 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 リポジトリーからリモートタスクを参照します。
以下のタスク例には、Git リポジトリーから StepAction 定義を参照するステップが含まれています。
3.4.4. 複数の Git プロバイダーの指定 リンクのコピーリンクがクリップボードにコピーされました!
TaskRun および PipelineRun リソースを作成するときに、一意の configKey パラメーターを渡すことで、複数の Git プロバイダーを指定できます。
configKey パラメーターが渡されない場合、デフォルト設定が使用されます。configKey の値を default に設定して、デフォルト設定を指定することもできます。
. 記号が付いた configKey 値はサポートされません。. シンボルを含む configKey 値を渡そうとすると、値を渡した TaskRun または PipelineRun リソースの実行に失敗します。
前提条件
-
Tektonconfigカスタムリソースを使用して複数の Git プロバイダーを設定します。詳細は、「複数の Git プロバイダーの設定」を参照してください。
手順
Git プロバイダーを指定するには、
pipelineRefおよびtaskRef仕様で以下の参照形式を使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 設定キーのいずれかに一致する一意のキー (例:
test1)。
3.4.5. Git リゾルバーの設定をオーバーライドする認証済み SCM API を使用した Git リゾルバーでのリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
特定のパイプライン実行またはタスクの初期設定をオーバーライドして、さまざまなユースケースに応じて動作をカスタマイズできます。この方法を使用して、TektonConfig カスタムリソース (CR) で設定されていない認証済みプロバイダーにアクセスできます。
次のタスク実行例では、以前のリゾルバー設定をオーバーライドする 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。 |
|