Tekton Pipelines クイズ
- Kubernetes 環境において、Tekton は Jenkins や GitHub Actions と比べてどのような利点がありますか?
- A) Tekton はより多くの plugins を提供する
- B) CRD ベースの pipelines は Kubernetes resources として管理され、GitOps、RBAC、namespace isolation を可能にする
- C) Tekton はより高速な実行速度を提供する
- D) Tekton は無料だが、他のツールは有料である
答えを表示
回答: B) CRD ベースの pipelines は Kubernetes resources として管理され、GitOps、RBAC、namespace isolation を可能にする
解説: Tekton は Tasks、Pipelines、PipelineRuns を Kubernetes CRDs として定義します。これにより、Git での宣言的な pipeline 管理(GitOps)、Kubernetes RBAC によるアクセス制御、namespace レベルの isolation、kubectl による管理が可能になります。各 Step は個別の container で実行され、強力な isolation を実現します。
- Tekton Pipeline で Tasks 間でデータを共有するにはどうしますか?
- A) environment variables 経由で渡す
- B) Workspaces(PVC)を通じて file systems を共有し、小さなデータは Results 経由で渡す
- C) ConfigMaps に保存する
- D) Tasks 間で直接 network communication を行う
答えを表示
回答: B) Workspaces(PVC)を通じて file systems を共有し、小さなデータは Results 経由で渡す
解説: Workspaces は Tasks 間で PVC ベースの file system 共有を提供し、source code を clone してから build するような patterns に適しています。Results は小さな string データ(image tags、commit SHAs など)を Tasks 間で渡し、$(tasks.task-name.results.result-name) として参照されます。
- Tekton Triggers の EventListener は何をしますか?
- A) events を生成して外部 systems に送信する
- B) webhook requests を受信し、TriggerBinding/TriggerTemplate 経由で PipelineRuns を自動的に作成する
- C) pipeline execution results を監視する
- D) 定期的に Git repositories を poll する
答えを表示
回答: B) webhook requests を受信し、TriggerBinding/TriggerTemplate 経由で PipelineRuns を自動的に作成する
解説: EventListener は webhook requests(GitHub Push、PR events など)を受信する HTTP endpoint です。Interceptors が request を検証/フィルタリングし、TriggerBinding が payload から parameters を抽出し、TriggerTemplate がそれらの parameters を使って PipelineRun を作成します。
- Tekton Chains はどの Supply Chain Security 機能を提供しますか?
- A) container images の vulnerabilities を scan する
- B) TaskRun/PipelineRun artifacts(images)に自動的に署名し、SLSA Provenance を生成する
- C) network traffic を暗号化する
- D) RBAC policies を自動生成する
答えを表示
回答: B) TaskRun/PipelineRun artifacts(images)に自動的に署名し、SLSA Provenance を生成する
解説: Tekton Chains は TaskRun 完了後に Cosign/Sigstore を使って OCI images に自動的に署名し、SLSA Provenance(build metadata、source information、build steps など)を生成します。これにより software supply chain security が強化され、image の出所と integrity の検証が可能になります。
- Tekton Pipeline における
finallyTasks の目的は何ですか?- A) pipeline の最初の Task として実行する
- B) pipeline の成功/失敗に関係なく常に最後に実行される cleanup tasks
- C) 条件付きで実行される Tasks
- D) parallel に実行される Tasks
答えを表示
回答: B) pipeline の成功/失敗に関係なく常に最後に実行される cleanup tasks
解説:finally Tasks は、pipeline 内の他のすべての Tasks が完了した後、成功または失敗に関係なく実行されます。build 失敗時にも実行されるため、一時 resources の cleanup、notifications の送信、test results の reporting に適しています。try-catch-finally pattern に似ています。
- ArgoCD + Tekton の integration architecture で CI/CD を分離する理由は何ですか?
- A) Tekton は CD を support していないため
- B) CI(build/test)と CD(deploy)の関心事を分離すると、security、auditing、rollback が向上する
- C) ArgoCD は CI を support していないため
- D) ツールの licenses が異なるため
答えを表示
回答: B) CI(build/test)と CD(deploy)の関心事を分離すると、security、auditing、rollback が向上する
解説: Tekton は CI(source clone、test、build、image push)を処理し、ArgoCD は CD(Git ベースの宣言的 deployment)を処理します。CI は image tag を Git に commit し、ArgoCD がこの変更を検出して deploy します。これにより deployment 権限の分離、Git ベースの audit trails、宣言的 rollback が可能になります。
- Tekton における CEL Interceptor のユースケースは何ですか?
- A) GitHub signatures を検証する
- B) CEL expressions(特定の branches、file paths など)を使用して webhook payloads をフィルタリングおよび変換する
- C) GitLab tokens を検証する
- D) Bitbucket events を処理する
答えを表示
回答: B) CEL expressions(特定の branches、file paths など)を使用して webhook payloads をフィルタリングおよび変換する
解説: CEL(Common Expression Language)Interceptor は、CEL expressions を使用して webhook payloads に対するフィルタリングと変換を行います。たとえば、body.ref == 'refs/heads/main' は main branch の pushes のみをフィルタリングし、body.commits.exists(c, c.modified.exists(f, f.startsWith('src/'))) は特定の path 変更時のみ trigger します。
- Tekton PipelineRuns に適した cleanup strategy は何ですか?
- A) すべての PipelineRuns を永続的に保持する
- B) resources を管理するため、成功/失敗ごとに異なる retention periods を設定した TTL ベースの自動削除を行う
- C) 手動でのみ削除する
- D) PipelineRuns は自動的に削除される
答えを表示
回答: B) resources を管理するため、成功/失敗ごとに異なる retention periods を設定した TTL ベースの自動削除を行う
解説: PipelineRuns と TaskRuns は実行後も etcd に残り、storage を消費します。Tekton の cleanup settings(keep、keep-since)または CronJob ベースの cleanup scripts を使用して、古い execution records を自動的に削除します。Failed runs は通常、debugging のためにより長く保持されます。