第4章 Repository カスタムリソースの使用
Repository
カスタムリソース (CR) には、次の主要な機能があります。
- URL からのイベントの処理について Pipelines as Code に通知します。
- Pipeline 実行の namespace について Pipelines as Code に通知します。
- Webhook メソッドを使用する場合、Git プロバイダープラットフォームに必要な API シークレット、ユーザー名、または API URL を参照します。
- リポジトリーの最後のパイプライン実行ステータスを指定します。
4.1. Repository カスタムリソースの作成
tkn pac
CLI または他の代替方法を使用して、ターゲット名前空間内に Repository
カスタムリソース (CR) を作成できます。以下に例を示します。
cat <<EOF|kubectl create -n my-pipeline-ci -f- 1
apiVersion: "pipelinesascode.tekton.dev/v1alpha1"
kind: Repository
metadata:
name: project-repository
spec:
url: "https://github.com/<repository>/<project>"
EOF
- 1
my-pipeline-ci
はターゲット namespace です。
https://github.com/<repository>/<project>
などの URL からイベントが発生すると、Pipelines as Code はその URL とマッチさせ、<repository>/<project>
リポジトリーのコンテンツのチェックアウトを開始し、パイプラインを実行して .tekton/
ディレクトリーのコンテンツとマッチさせます。
注記
-
ソースコードリポジトリーに関連付けられたパイプラインが実行されるのと同じ namespace に
Repository
CR を作成する必要があります。これは別の namespace をターゲットにすることはできません。 -
複数の
Repository
CR が同じイベントと一致する場合、コードとしてのパイプラインは最も古い CR のみを処理します。特定の namespace と同じにする必要がある場合は、pipelinesascode.tekton.dev/target-namespace: "<mynamespace>"
アノテーションを追加します。このような明示的なターゲティングにより、悪意のあるアクターがアクセス権のない namespace でパイプラインの実行を防ぎます。