はじめに
Tektonの公式ドキュメントにある「Documentation / Getting Started with Pipelines」をKubernetes環境で実施(Tutorial)した結果をメモ。
Kubernetes環境はIBM Kubernetes Serviceを利用しました。
以下の続きで実施しています。
環境情報
- tekton: v0.23
- Kubernetes 1.19
環境用意
今回サンプルする新たなTaskのYAML(task-goodbye.yaml)の中身は以下
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: goodbye spec: steps: - name: goodbye image: ubuntu script: | #!/bin/bash echo "Goodbye World!"
と前回のTaskを連ねたパイプラインを定義した以下のYAML(pipeline-hello-goodbye.yaml)を用意した状態で
apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: hello-goodbye spec: tasks: - name: hello taskRef: name: hello - name: goodbye runAfter: - hello taskRef: name: goodbye
TaskとPipelineを適用しておきます。
$ kubectl get task NAME AGE goodbye X hello X
$ kubectl get pipeline NAME AGE hello-goodbye X
PipelineRunによるPipelineの実行
上記の状態で以下のような
apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: generateName: hello-goodbye-run- spec: pipelineRef: name: hello-goodbye
の内容のYAML(pipelineRun-hello-goodbye.yaml)をcreateすると
$ kubectl create -f pipelineRun-hello-goodbye.yaml pipelinerun.tekton.dev/hello-goodbye-run-9txm5 created
Pipelineに記載されたTaskが順序通りに起動されます。以下はhelloタスクが終わってgoodbyeが起動しているシーン。
$ kubectl get taskrun NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME hello-goodbye-run-9txm5-goodbye-xc2mw Unknown Running X hello-goodbye-run-9txm5-hello-5lhpw True Succeeded X X
正常に終わるとPipelineRunは以下のようになり
$ kubectl get pipelinerun NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME hello-goodbye-run-9txm5 True Succeeded ...
describeで詳細を見ると各イベントがどのように進んだのかが確認できます。
$ kubectl describe pipelinerun hello-goodbye-run-9txm5 ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Started ... PipelineRun Normal Running ... PipelineRun Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 2, Skipped: 0 Normal Running ... PipelineRun Tasks Completed: 1 (Failed: 0, Cancelled 0), Incomplete: 1, Skipped: 0 Normal Succeeded ... PipelineRun Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0
終わりに
Taskを実行する場合はTaskRunのyamlを用意しましたが、Pipeline(Task群)ではそれがPipelineRunとなります。
以上、Tekton入門のご参考になれば幸いです。