(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Tekton/Kubernetes】TaskRunでTaskを実行する流れのチュートリアル

スポンサーリンク

はじめに

Tektonの公式ドキュメントにある「Documentation / Getting Started」をKubernetes環境で実施(Tutorial)した結果をメモ。
Kubernetes環境はIBM Kubernetes Serviceを利用しました。

尚、本記事は「echo "Hello World!"」とだけ標準出力するTaskをTaskRunで実施するのがゴールです。

環境情報
  • tekton: v0.23
  • Kubernetes 1.19

環境用意

以下のリンクのYAMLを適用すると名前空間やその他必要なリソースが生成され

$ kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
namespace/tekton-pipelines created
podsecuritypolicy.policy/tekton-pipelines created
...

以下のPodが起動しました。

$ kubectl get pods --namespace tekton-pipelines
NAME                                          READY   STATUS    RESTARTS   AGE
tekton-pipelines-controller-6b94f5f96-jfhdr   1/1     Running   0          Xs
tekton-pipelines-webhook-5bfbbd6475-8jssd     1/1     Running   0          Xs

そして今回サンプルとして用意された以下のYAMLと(task-hello.yaml)

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: hello
spec:
  steps:
    - name: hello
      image: ubuntu
      command:
        - echo
      args:
        - "Hello World!"

以下のYAML(taskRun-hello.yaml)を用意し

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: hello-run-
spec:
  taskRef:
    name: hello

Taskを適用しておきます。

$ kubectl get task
NAME    AGE
hello   X

TaskRunによるTaskの実行

上記の状態でTaskRunをCreateで作成すると

$ kubectl create -f taskRun-hello.yaml
taskrun.tekton.dev/hello-run-shgf7 created

TaskrunとPodが生成され

$ kubectl get taskrun
NAME              SUCCEEDED   REASON      STARTTIME   COMPLETIONTIME
hello-run-r8tmx   True        Succeeded  ..

$ kubectl get pod
NAME                        READY   STATUS      RESTARTS   AGE
hello-run-r8tmx-pod-h7r46   0/1     Completed   0          ..

Logを確認すると確かにコマンドが実行されています。

$ kubectl logs hello-run-r8tmx-pod-h7r46
Hello World!

尚、TaskrunをCreateしてもまた別名で実行されますがapplyでは以下のようにエラーとなります。

$ kubectl apply -f taskRun-hello.yaml
error: from hello-run-: cannot use generate name with apply

終わりに

シンプルな構成ですが、例えばTaskを消した状態でTaskrunを実行すると「TaskRunResolutionFailed」というステータスになり以下のようなメッセージが出るなど確認できる観点も多々あります。

* error when listing tasks for taskRun hello-run-mjz85: tasks.tekton.dev "hello" not found

以上、Tekton入門のご参考になれば幸いです。