3.4. Git リポジトリーからのリモートパイプラインまたはタスクの指定
Git リゾルバーを使用して、Git リポジトリーからリモートパイプラインまたはタスクを指定できます。リポジトリーには、パイプラインまたはタスクを定義する YAML ファイルが含まれている必要があります。Git リゾルバーは、匿名でクローンを作成するか、認証された SCM API を使用してリポジトリーにアクセスできます。
3.4.1. 匿名 Git クローン作成用の Git リゾルバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
匿名 Git クローン作成を使用する場合は、Git リポジトリーからリモートパイプラインとタスクをプルするためのデフォルトの Git リビジョン、フェッチタイムアウト、およびデフォルトのリポジトリー URL を設定できます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。$ oc edit TektonConfig configTektonConfigカスタムリソースで、pipeline.git-resolver-config仕様を編集します。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: git-resolver-config: default-revision: main1 fetch-timeout: 1m2 default-url: https://github.com/tektoncd/catalog.git3
3.4.2. 認証された SCM 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 API を使用するように Git リゾルバーを設定すると、匿名の Git クローン参照を使用してパイプラインとタスクを取得することもできます。
手順
TektonConfigカスタムリソースを編集するには、次のコマンドを入力します。$ oc edit TektonConfig configTektonConfigカスタムリソースで、pipeline.git-resolver-config仕様を編集します。apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: pipeline: git-resolver-config: default-revision: main1 fetch-timeout: 1m2 scm-type: github3 server-url: api.internal-github.com4 api-token-secret-name: github-auth-secret5 api-token-secret-key: github-auth-key6 api-token-secret-namespace: github-auth-namespace7 default-org: tektoncd8 - 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
- トークンシークレットを含む名前空間 (
defaultでない場合)。 - 8
- オプション: 認証された API を使用する場合のリポジトリーのデフォルトの組織。この組織は、リゾルバーパラメーターで組織を指定しない場合に使用されます。
認証された SCM API を使用するには、scm-type、api-token-secret-name、および api-token-secret-key 設定が必要です。
3.4.3. Git リゾルバーを使用したリモートパイプラインまたはタスクの指定 リンクのコピーリンクがクリップボードにコピーされました!
パイプライン実行を作成するときに、Git リポジトリーからリモートパイプラインを指定できます。パイプラインまたはタスク実行を作成するときに、Git リポジトリーからリモートタスクを指定できます。
前提条件
- 認証された SCM API を使用する場合は、Git リゾルバーに対して認証された Git 接続を設定する必要があります。
手順
Git リポジトリーからリモートパイプラインまたはタスクを指定するには、
pipelineRefまたはtaskRef仕様で次の参照形式を使用します。# ... resolver: git params: - name: url value: <git_repository_url> - name: revision value: <branch_name> - name: pathInRepo value: <path_in_repository> # ...Expand 表3.4 Git リゾルバーでサポートされているパラメーター パラメーター 説明 値の例 url匿名クローン作成を使用する場合のリポジトリーの URL。
https://github.com/tektoncd/catalog.gitrepo認証された SCM API を使用する場合のリポジトリー名。
test-infraorg認証された SCM API を使用する場合のリポジトリーの組織。
tektoncdrevisionリポジトリー内の 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 リポジトリーからリモートパイプラインを参照します。
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: git-pipeline-reference-demo
spec:
pipelineRef:
resolver: git
params:
- name: url
value: https://github.com/tektoncd/catalog.git
- name: revision
value: main
- name: pathInRepo
value: pipeline/simple/0.1/simple.yaml
params:
- name: name
value: "testPipelineRun"
- name: sample-pipeline-parameter
value: test
次のパイプラインの例では、Git リポジトリーからリモートタスクを参照します。
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: pipeline-with-git-task-reference-demo
spec:
tasks:
- name: "git-task-reference-demo"
taskRef:
resolver: git
params:
- name: url
value: https://github.com/tektoncd/catalog.git
- name: revision
value: main
- name: pathInRepo
value: task/git-clone/0.6/git-clone.yaml
params:
- name: sample-task-parameter
value: test
次のタスク実行例では、Git リポジトリーからリモートタスクを参照します。
apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
name: git-task-reference-demo
spec:
taskRef:
resolver: git
params:
- name: url
value: https://github.com/tektoncd/catalog.git
- name: revision
value: main
- name: pathInRepo
value: task/git-clone/0.6/git-clone.yaml
params:
- name: sample-task-parameter
value: test