Tekton Trigger exampleを眺める
はじめに
先日Tektonに入門した記事を公開しましたが、TektonにはTask Pipeline以外にもTriggerという重要な機能が存在します。Triggerを利用することで、git pushなどのイベントを契機にパイプラインを実行することが可能となり、CI/CDパイプラインを構築するうえで重要なものです。
今回はTekton Triggerの第一歩として、git pushなどの実践的なイベントを利用する前に、Tekton Triggerの概要と簡単な例について紹介します。
Tekton Triggerとは
Tekton Triggerは、外部からのイベントを契機にパイプラインの実行を開始する機能です。イベントのペイロードから受け取ったfield値をTektonリソースにマップすることが可能です。

Tekton Triggerに関するCustom Resourceには、以下のようなものがあります。
- TriggerTemplate:Triggerによって実行するリソースを定義します。
resourceTemplateというフィールドでTektonリソース(PipelineRunなど)を定義し、イベント発生後に定義したリソースを実行します。 - TriggerBinding:イベントとトリガーとを紐づけます。具体的には、イベントからfield値を取得し、それをパラメータとして保存します。保存したパラメータは
TriggerTemplateなどで利用することができます。 - EventListener:外部からのイベントに関するデータを受け付けます。利用できるデータはHTTPベースのJSONペイロードです。
EventListenerでは、イベントから受け取ったデータを渡すTriggerBindingと、それを適用するTriggerTemplateを指定します。またEventListenerではinterceptorという項目があり、受け取るイベントの種類やデータに含まれる値などを指定することが可能です。
検証内容
今回はTektonのGitHubリポジトリに含まれるこちらのexampleを実行し、そこで利用する定義ファイルやその動きについて調べました。
Triggerの構成
まずは今回の検証内容を簡単に紹介します。大まかな流れは、以下の図の通りです。

上図の左側から辿っていくと、
- クライアントが特定のFieldを含むPOSTリクエストを送信
EventListenerが通信を受け取り、Field値をTriggerBindingへ渡すTriggerBindingで定義されたパラメータをTriggerTemplateへ渡し、PipelineResourceが開始されるPipelineRunにより、指定のPipelineTaskを実行する- 上記リソースは、専用の
Service Accountによって実行される
各定義ファイルの構成
次に、パイプラインで利用する各定義ファイルの内容を見ていきます。今回のパイプラインで利用するリソースとその名前は以下の通りです。
| リソース種別 | リソース名 | 用途 |
|---|---|---|
| EventListener | listener |
イベントを受け取り、Trigger関連のリソースに情報を渡す |
| TriggerBinding | pipeline-binding |
EventListenerから値を受け取りTriggerTemplateへ渡す |
message-binding |
TriggerTemplateへ値を渡す |
|
| TriggerTemplate | pipeline-template |
TriggerBindingからパラメータ値を受け取り、定義したPipelineRunを実行する |
| Pipeline | simple-pipeline |
PipelineRunで実行するパイプラインを定義する |
| Task | say-hello |
Pipelineに含むタスクの一つ。Content-Typeを表示する |
say-message |
Pipelineに含むタスクの一つ。messageを表示する |
|
say-bye |
Pipelineに含むタスクの一つ。指定の文字を表示する |
上記定義ファイル間のつながりは、以下のようになります。画像では小さくて読めないと思うので、画像をクリックして見てください。

こまごまと書いていますが、主なポイントは以下の通りです。
curlでのPOSTリクエスト中に設定するContent-Typehead_commitrepositoryの値をTriggerBindingが受け取るEventListenerはTriggerTemplateと2つのTriggerBindingを紐づけているTriggerTemplateには`PipelineRunの定義を記載しており、PipelineRunにはPipelineと3つのTaskが紐づいている
実際の動作
ここからは実際の動作について見ていきます。なお、利用した環境は前回のTekton紹介記事と同じものを利用しています。
Kubernetesクラスターを用意したら、まずはTektonをインストールします。Tektonのインストールはこちらのページに記載されている通り、Pipeline・Triggerに関するリソースを作成します。
# Tekton Pipelineインストール $ kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml namespace/tekton-pipelines created podsecuritypolicy.policy/tekton-pipelines created clusterrole.rbac.authorization.k8s.io/tekton-pipelines-controller-cluster-access created clusterrole.rbac.authorization.k8s.io/tekton-pipelines-controller-tenant-access created clusterrole.rbac.authorization.k8s.io/tekton-pipelines-webhook-cluster-access created clusterrole.rbac.authorization.k8s.io/tekton-pipelines-leader-election created role.rbac.authorization.k8s.io/tekton-pipelines-controller created role.rbac.authorization.k8s.io/tekton-pipelines-webhook created serviceaccount/tekton-pipelines-controller created serviceaccount/tekton-pipelines-webhook created clusterrolebinding.rbac.authorization.k8s.io/tekton-pipelines-controller-cluster-access created clusterrolebinding.rbac.authorization.k8s.io/tekton-pipelines-controller-leaderelection created clusterrolebinding.rbac.authorization.k8s.io/tekton-pipelines-controller-tenant-access created clusterrolebinding.rbac.authorization.k8s.io/tekton-pipelines-webhook-cluster-access created clusterrolebinding.rbac.authorization.k8s.io/tekton-pipelines-webhook-leaderelection created rolebinding.rbac.authorization.k8s.io/tekton-pipelines-controller created rolebinding.rbac.authorization.k8s.io/tekton-pipelines-webhook created customresourcedefinition.apiextensions.k8s.io/clustertasks.tekton.dev created customresourcedefinition.apiextensions.k8s.io/conditions.tekton.dev created customresourcedefinition.apiextensions.k8s.io/images.caching.internal.knative.dev created customresourcedefinition.apiextensions.k8s.io/pipelines.tekton.dev created customresourcedefinition.apiextensions.k8s.io/pipelineruns.tekton.dev created customresourcedefinition.apiextensions.k8s.io/pipelineresources.tekton.dev created customresourcedefinition.apiextensions.k8s.io/tasks.tekton.dev created customresourcedefinition.apiextensions.k8s.io/taskruns.tekton.dev created secret/webhook-certs created validatingwebhookconfiguration.admissionregistration.k8s.io/validation.webhook.pipeline.tekton.dev created mutatingwebhookconfiguration.admissionregistration.k8s.io/webhook.pipeline.tekton.dev created validatingwebhookconfiguration.admissionregistration.k8s.io/config.webhook.pipeline.tekton.dev created clusterrole.rbac.authorization.k8s.io/tekton-aggregate-edit created clusterrole.rbac.authorization.k8s.io/tekton-aggregate-view created configmap/config-artifact-bucket created configmap/config-artifact-pvc created configmap/config-defaults created configmap/feature-flags created configmap/config-leader-election created configmap/config-logging created configmap/config-observability created deployment.apps/tekton-pipelines-controller created service/tekton-pipelines-controller created deployment.apps/tekton-pipelines-webhook created service/tekton-pipelines-webhook created # リソースの確認 $ kubectl get ns NAME STATUS AGE default Active 14m kube-node-lease Active 14m kube-public Active 14m kube-system Active 14m tekton-pipelines Active 48s $ kubectl get pods -n tekton-pipelines NAME READY STATUS RESTARTS AGE tekton-pipelines-controller-559bd4d4df-w5fm6 1/1 Running 0 55s tekton-pipelines-webhook-7bfd859f8c-2qdd8 1/1 Running 0 55s
# Tekton Triggerインストール $ kubectl apply --filename https://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml podsecuritypolicy.policy/tekton-triggers created clusterrole.rbac.authorization.k8s.io/tekton-triggers-admin created serviceaccount/tekton-triggers-controller created clusterrolebinding.rbac.authorization.k8s.io/tekton-triggers-controller-admin created customresourcedefinition.apiextensions.k8s.io/clustertriggerbindings.triggers.tekton.dev created customresourcedefinition.apiextensions.k8s.io/eventlisteners.triggers.tekton.dev created customresourcedefinition.apiextensions.k8s.io/triggerbindings.triggers.tekton.dev created customresourcedefinition.apiextensions.k8s.io/triggertemplates.triggers.tekton.dev created secret/triggers-webhook-certs created validatingwebhookconfiguration.admissionregistration.k8s.io/validation.webhook.triggers.tekton.dev created mutatingwebhookconfiguration.admissionregistration.k8s.io/webhook.triggers.tekton.dev created validatingwebhookconfiguration.admissionregistration.k8s.io/config.webhook.triggers.tekton.dev created clusterrole.rbac.authorization.k8s.io/tekton-triggers-aggregate-edit created clusterrole.rbac.authorization.k8s.io/tekton-triggers-aggregate-view created configmap/config-logging-triggers created configmap/config-observability-triggers created service/tekton-triggers-controller created deployment.apps/tekton-triggers-controller created service/tekton-triggers-webhook created deployment.apps/tekton-triggers-webhook created # リソース確認 $ kubectl get pods -n tekton-pipelines NAME READY STATUS RESTARTS AGE tekton-pipelines-controller-559bd4d4df-w5fm6 1/1 Running 0 72s tekton-pipelines-webhook-7bfd859f8c-2qdd8 1/1 Running 0 72s tekton-triggers-controller-96b9d4dfd-ckpvh 1/1 Running 0 12s tekton-triggers-webhook-b7c46d8ff-926hw 1/1 Running 0 11s $ kubectl get svc -n tekton-pipelines NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE tekton-pipelines-controller ClusterIP 172.21.9.211 <none> 9090/TCP 15m tekton-pipelines-webhook ClusterIP 172.21.1.189 <none> 9090/TCP,8008/TCP,443/TCP 15m tekton-triggers-controller ClusterIP 172.21.6.147 <none> 9090/TCP 14m tekton-triggers-webhook ClusterIP 172.21.5.232 <none> 443/TCP 14m
次にパイプライン作成に利用する定義ファイルをGitHubから取得し、必要なファイルを使って各リソースを作成します。
# 定義ファイルのダウンロード $ git clone https://github.com/tektoncd/triggers.git $ cd triggers/example $ ll total 12 drwxr-xr-x 1 root root 4096 Jul 9 15:59 ./ drwxr-xr-x 1 root root 4096 Jul 9 15:59 ../ -rw-r--r-- 1 root root 4850 Jul 9 15:59 README.md drwxr-xr-x 1 root root 4096 Jul 9 15:59 bitbucket/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 clustertriggerbindings/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 cron/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 event-interceptors/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 eventlisteners/ -rw-r--r-- 1 root root 1994 Jul 9 15:59 example-pipeline.yaml drwxr-xr-x 1 root root 4096 Jul 9 15:59 github/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 gitlab/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 role-resources/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 triggerbindings/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 triggertemplates/ drwxr-xr-x 1 root root 4096 Jul 9 15:59 v1alpha1-task/
# リソースの作成 ## Tektonリソースを操作するServiceAccount・Roleなど $ kubectl apply -f role-resources/secret.yaml secret/tekton-triggers-example-secret created $ kubectl apply -f role-resources/serviceaccount.yaml serviceaccount/tekton-triggers-example-sa created $ kubectl apply -f role-resources/triggerbinding-roles/ rolebinding.rbac.authorization.k8s.io/tekton-triggers-example-binding created role.rbac.authorization.k8s.io/tekton-triggers-example-minimal created ## TriggerTemplate・TriggerBinding・EventListener $ kubectl apply -f triggertemplates/triggertemplate.yaml triggertemplate.triggers.tekton.dev/pipeline-template created $ kubectl apply -f triggerbindings/triggerbinding.yaml triggerbinding.triggers.tekton.dev/pipeline-binding created $ kubectl apply -f triggerbindings/triggerbinding-message.yaml triggerbinding.triggers.tekton.dev/message-binding created $ kubectl apply -f eventlisteners/eventlistener.yaml eventlistener.triggers.tekton.dev/listener created ## Pipeline $ kubectl apply -f example-pipeline.yaml
## リソース確認 $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE el-listener ClusterIP 172.21.14.31 <none> 8080/TCP 39s kubernetes ClusterIP 172.21.0.1 <none> 443/TCP 28m $ kubectl get pods NAME READY STATUS RESTARTS AGE el-listener-6f676cd886-4kbp7 1/1 Running 0 68s $ kubectl get eventlistener NAME ADDRESS AVAILABLE REASON listener http://el-listener.default.svc.cluster.local:8080 True MinimumReplicasAvailable $ kubectl get triggertemplate NAME AGE pipeline-template 2m49s $ kubectl get triggerbindings NAME AGE message-binding 2m25s pipeline-binding 2m37s $ kubectl get task NAME AGE say-bye 6s say-hello 7s say-message 6s $ kubectl get pipeline NAME AGE simple-pipeline 12s $ kubectl get tekton-pipelines NAME AGE pipeline.tekton.dev/simple-pipeline 29s NAME AGE task.tekton.dev/say-bye 29s task.tekton.dev/say-hello 30s task.tekton.dev/say-message 29s
リソースの作成が完了したので、curlコマンドによってPOSTリクエストを送信します。なお、curlコマンドを実行する前にEventListenerPodへアクセスするための操作を行います。ここではkubectl port-forwardにより、ローカルからEventListenerPodへのアクセスを可能にします。
# Port forward $ kubectl port-forward $(kubectl get pod -o=name -l eventlistener=listener) 8080 Forwarding from 127.0.0.1:8080 -> 8080 Forwarding from [::1]:8080 -> 8080 # POSTリクエスト ## 別のターミナルから実行する $ curl -X POST http://localhost:8080 -H 'Content-Type: application/json' -H 'X-Hub-Signature: sha1=2da37dcb9404ff17b714ee7a505c384758ddeb7b' -d '{"head_commit":{"id": "master"},"repository":{"url": "https://github.com/tektoncd/triggers.git"}}' {"eventListener":"listener","namespace":"default","eventID":"xs7pp"}
上記コマンド実行後、Podやログを確認します。
# 実行結果の確認 ## PipelineRun (実行中) $ kubectl get pipelinerun NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME simple-pipeline-run-wmpnx Unknown Running 47s ## Podの状態遷移 ## Pipeline中のTaskがPodとして立ち上がる $ kubectl get pods -w NAME READY STATUS RESTARTS AGE el-listener-6f676cd886-4kbp7 1/1 Running 0 97m simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 0/2 Pending 0 0s simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 0/2 Pending 0 0s simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 0/2 Init:0/1 0 0s simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 0/2 PodInitializing 0 6s simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 2/2 Running 0 17s simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 2/2 Running 0 17s simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx 0/2 Completed 0 24s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 0/2 Pending 0 0s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 0/2 Pending 0 0s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 0/2 Init:0/1 0 0s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 0/2 PodInitializing 0 2s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 2/2 Running 0 6s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 2/2 Running 0 6s simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd 0/2 Completed 0 15s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 0/2 Pending 0 0s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 0/2 Pending 0 0s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 0/2 Init:0/1 0 0s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 0/2 PodInitializing 0 2s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 2/2 Running 0 6s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 2/2 Running 0 6s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 1/2 Running 0 13s simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb 0/2 Completed 0 14s ## tknコマンド ## Pipelineのログを表示する $ tkn pipeline logs --last -f [say-hello : git-source-git-source-hqhll] {"level":"info","ts":1595648342.4830065,"caller":"git/git.go:139","msg":"Successfully cloned https://github.com/tektoncd/triggers.git @ 81dc28e2784c58798fcc1cbe851de4f661913ee9 (grafted, HEAD, origin/master) in path /workspace/git-source"} [say-hello : git-source-git-source-hqhll] {"level":"info","ts":1595648342.5367808,"caller":"git/git.go:180","msg":"Successfully initialized and updated submodules in path /workspace/git-source"} [say-hello : say-hi] Hello Triggers! [say-hello : say-hi] Content-Type is application/json [say-message : git-source-git-source-2k5wl] {"level":"info","ts":1595648357.5576613,"caller":"git/git.go:139","msg":"Successfully cloned https://github.com/tektoncd/triggers.git @ 81dc28e2784c58798fcc1cbe851de4f661913ee9 (grafted, HEAD, origin/master) in path /workspace/git-source"} [say-message : git-source-git-source-2k5wl] {"level":"info","ts":1595648357.6270146,"caller":"git/git.go:180","msg":"Successfully initialized and updated submodules in path /workspace/git-source"} [say-message : say-message] Hello from the Triggers EventListener! [say-bye : git-source-git-source-5qpll] {"level":"info","ts":1595648369.9986367,"caller":"git/git.go:139","msg":"Successfully cloned https://github.com/tektoncd/triggers.git @ 81dc28e2784c58798fcc1cbe851de4f661913ee9 (grafted, HEAD, origin/master) in path /workspace/git-source"} [say-bye : git-source-git-source-5qpll] {"level":"info","ts":1595648370.0498636,"caller":"git/git.go:180","msg":"Successfully initialized and updated submodules in path /workspace/git-source"} [say-bye : say-bye] Goodbye Triggers! ## PipelineRun (実行後) $ kubectl get pipelinerun NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME simple-pipeline-run-wmpnx True Succeeded 59s 6s $ kubectl get tekton-pipelines NAME AGE pipeline.tekton.dev/simple-pipeline 97m NAME AGE task.tekton.dev/say-bye 97m task.tekton.dev/say-hello 97m task.tekton.dev/say-message 97m NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME taskrun.tekton.dev/simple-pipeline-run-wmpnx-say-bye-b6gmk True Succeeded 2m59s 2m45s taskrun.tekton.dev/simple-pipeline-run-wmpnx-say-hello-6rjbj True Succeeded 3m38s 3m14s taskrun.tekton.dev/simple-pipeline-run-wmpnx-say-message-kw27w True Succeeded 3m14s 2m59s NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME pipelinerun.tekton.dev/simple-pipeline-run-wmpnx True Succeeded 3m38s 2m45s
以上のようにパイプラインに実行が完了しました。
パイプライン実行後にPipelineRunリソースを確認すると、curlで指定したパラメータがSpecに設定されていることがわかります。
# PipelineRunの詳細確認
$ kubectl describe pipelinerun.tekton.dev/simple-pipeline-run-wmpnx
Name: simple-pipeline-run-wmpnx
Namespace: default
Labels: tekton.dev/pipeline=simple-pipeline
triggers.tekton.dev/eventlistener=listener
triggers.tekton.dev/trigger=foo-trig
triggers.tekton.dev/triggers-eventid=xs7pp
Annotations: API Version: tekton.dev/v1beta1
Kind: PipelineRun
Metadata:
Creation Timestamp: 2020-07-25T03:38:39Z
Generate Name: simple-pipeline-run-
Generation: 1
Resource Version: 1109314995
Self Link: /apis/tekton.dev/v1beta1/namespaces/default/pipelineruns/simple-pipeline-run-wmpnx
UID: 5c242ed8-ed42-420a-97b8-f8a233b85d17
Spec:
Params:
Name: message
Value: Hello from the Triggers EventListener!
Name: contenttype
Value: application/json★
Pipeline Ref:
Name: simple-pipeline
Resources:
Name: git-source
Resource Spec:
Params:
Name: revision
Value: master★
Name: url
Value: https://github.com/tektoncd/triggers.git★
Type: git
Timeout: 1h0m0s
Status:
Completion Time: 2020-07-25T03:39:32Z
Conditions:
Last Transition Time: 2020-07-25T03:39:32Z
Message: Tasks Completed: 3 (Failed: 0, Cancelled 0), Skipped: 0
Reason: Succeeded
Status: True
Type: Succeeded
Pipeline Spec:
Params:
Default: This is the default message
Description: The message to print
Name: message
Type: string
Description: The Content-Type of the event
Name: contenttype
Type: string
Resources:
Name: git-source
Type: git
Tasks:
Name: say-hello
Params:
Name: contenttype
Value: $(params.contenttype)
Resources:
Inputs:
Name: git-source
Resource: git-source
Task Ref:
Kind: Task
Name: say-hello
Name: say-message
Params:
Name: message
Value: $(params.message)
Resources:
Inputs:
Name: git-source
Resource: git-source
Run After:
say-hello
Task Ref:
Kind: Task
Name: say-message
Name: say-bye
Resources:
Inputs:
Name: git-source
Resource: git-source
Run After:
say-message
Task Ref:
Kind: Task
Name: say-bye
Start Time: 2020-07-25T03:38:39Z
Task Runs:
simple-pipeline-run-wmpnx-say-bye-b6gmk:
Pipeline Task Name: say-bye
Status:
Completion Time: 2020-07-25T03:39:32Z
Conditions:
Last Transition Time: 2020-07-25T03:39:32Z
Message: All Steps have completed executing
Reason: Succeeded
Status: True
Type: Succeeded
Pod Name: simple-pipeline-run-wmpnx-say-bye-b6gmk-pod-5p5gb
Resources Result:
Key: commit
Resource Name: git-source
Resource Ref:
Name: git-source
Value: 81dc28e2784c58798fcc1cbe851de4f661913ee9
Start Time: 2020-07-25T03:39:18Z
Steps:
Container: step-say-bye
Image ID: docker-pullable://bash@sha256:21caabbff34a7432be0f88d24f756a96f1e5bbb93703e8a8b34df7c5536d466a
Name: say-bye
Terminated:
Container ID: docker://0b2ab225233e4d9a01c4a0e456edc45fe9e5e6e0d51455c6e14a8d00851cb7a7
Exit Code: 0
Finished At: 2020-07-25T03:39:31Z
Reason: Completed
Started At: 2020-07-25T03:39:31Z
Container: step-git-source-git-source-5qpll
Image ID: docker-pullable://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:f7524d37431fa7d301dfa5c6d0bb3c2e2b029172ec2f823f0e0c6ce9d3c2718c
Name: git-source-git-source-5qpll
Terminated:
Container ID: docker://271ac24ae9ce43124b94b2b9efec89319fb034f94e5f1cf8eba2d7c29ac01d0c
Exit Code: 0
Finished At: 2020-07-25T03:39:30Z
Message: [{"key":"commit","value":"81dc28e2784c58798fcc1cbe851de4f661913ee9","resourceName":"git-source","resourceRef":{"name":"git-source"}}]
Reason: Completed
Started At: 2020-07-25T03:39:24Z
Task Spec:
Resources:
Inputs:
Name: git-source
Type: git
Steps:
Args:
echo 'Goodbye Triggers!'
Command:
bash
-c
Image: bash
Name: say-bye
Resources:
simple-pipeline-run-wmpnx-say-hello-6rjbj:
Pipeline Task Name: say-hello
Status:
Completion Time: 2020-07-25T03:39:03Z
Conditions:
Last Transition Time: 2020-07-25T03:39:03Z
Message: All Steps have completed executing
Reason: Succeeded
Status: True
Type: Succeeded
Pod Name: simple-pipeline-run-wmpnx-say-hello-6rjbj-pod-2dktx
Resources Result:
Key: commit
Resource Name: git-source
Resource Ref:
Name: git-source
Value: 81dc28e2784c58798fcc1cbe851de4f661913ee9
Start Time: 2020-07-25T03:38:39Z
Steps:
Container: step-say-hi
Image ID: docker-pullable://bash@sha256:21caabbff34a7432be0f88d24f756a96f1e5bbb93703e8a8b34df7c5536d466a
Name: say-hi
Terminated:
Container ID: docker://9ad1928c51ec681d1e44524de6cbe0e835d4e4ddffd5747690703cc4d078f0ba
Exit Code: 0
Finished At: 2020-07-25T03:39:02Z
Reason: Completed
Started At: 2020-07-25T03:39:02Z
Container: step-git-source-git-source-hqhll
Image ID: docker-pullable://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:f7524d37431fa7d301dfa5c6d0bb3c2e2b029172ec2f823f0e0c6ce9d3c2718c
Name: git-source-git-source-hqhll
Terminated:
Container ID: docker://b4b05d34327c0a5486b2515767c42095418b5baae15553e6b074c8497d7b1373
Exit Code: 0
Finished At: 2020-07-25T03:39:02Z
Message: [{"key":"commit","value":"81dc28e2784c58798fcc1cbe851de4f661913ee9","resourceName":"git-source","resourceRef":{"name":"git-source"}}]
Reason: Completed
Started At: 2020-07-25T03:38:56Z
Task Spec:
Params:
Description: The Content-Type of the event
Name: contenttype
Type: string
Resources:
Inputs:
Name: git-source
Type: git
Steps:
Args:
echo -e 'Hello Triggers!\nContent-Type is $(params.contenttype)'
Command:
bash
-c
Image: bash
Name: say-hi
Resources:
simple-pipeline-run-wmpnx-say-message-kw27w:
Pipeline Task Name: say-message
Status:
Completion Time: 2020-07-25T03:39:18Z
Conditions:
Last Transition Time: 2020-07-25T03:39:18Z
Message: All Steps have completed executing
Reason: Succeeded
Status: True
Type: Succeeded
Pod Name: simple-pipeline-run-wmpnx-say-message-kw27w-pod-6brzd
Resources Result:
Key: commit
Resource Name: git-source
Resource Ref:
Name: git-source
Value: 81dc28e2784c58798fcc1cbe851de4f661913ee9
Start Time: 2020-07-25T03:39:03Z
Steps:
Container: step-say-message
Image ID: docker-pullable://bash@sha256:21caabbff34a7432be0f88d24f756a96f1e5bbb93703e8a8b34df7c5536d466a
Name: say-message
Terminated:
Container ID: docker://ddf9b4e4c0193881be829eeddcdf55520a0f75af1895e5f48a39bd5b30ee1294
Exit Code: 0
Finished At: 2020-07-25T03:39:17Z
Reason: Completed
Started At: 2020-07-25T03:39:17Z
Container: step-git-source-git-source-2k5wl
Image ID: docker-pullable://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init@sha256:f7524d37431fa7d301dfa5c6d0bb3c2e2b029172ec2f823f0e0c6ce9d3c2718c
Name: git-source-git-source-2k5wl
Terminated:
Container ID: docker://201ea779bb6556909779bfa9e10c0eb7b089decaac3bdb1243cf3d9bb70bc9c5
Exit Code: 0
Finished At: 2020-07-25T03:39:17Z
Message: [{"key":"commit","value":"81dc28e2784c58798fcc1cbe851de4f661913ee9","resourceName":"git-source","resourceRef":{"name":"git-source"}}]
Reason: Completed
Started At: 2020-07-25T03:39:10Z
Task Spec:
Params:
Default: This is the default message
Description: The message to print
Name: message
Type: string
Resources:
Inputs:
Name: git-source
Type: git
Steps:
Args:
echo '$(params.message)'
Command:
bash
-c
Image: bash
Name: say-message
Resources:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Started 4m12s PipelineRun
Normal Running 4m12s PipelineRun Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 3, Skipped: 0
Normal Running 3m48s PipelineRun Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0
Normal Running 3m33s PipelineRun Tasks Completed: 2 (Failed: 0, Cancelled 0), Incomplete: 1, Skipped: 0
Normal Succeeded 3m19s PipelineRun Tasks Completed: 3 (Failed: 0, Cancelled 0), Skipped: 0