Tektonをさわってみた


kubernetesで動かすCI/CDツールとして、聞いてはいたものの、これまでぜんぜんさわれてなかったtektonをちょっとだけさわってみた。

https://tekton.dev/

タスクやパイプラインがCRDとして定義されているので、ぜんぶフォーマットを統一できるのがよさそう。

インストール

https://github.com/tektoncd/pipeline/blob/master/docs/install.md にしたがって実施。

kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

tekton-pipeline namespaceができてるのでPodを確認。

ビルド成果物を格納するためにPersistentVolumeの設定をする。S3やGoogleCloudStorageのような、クラウドストレージも利用できるようだ。 config-artifact-pvc がすでにできていて、StorageClassやVolumeのサイズを設定できるようだ。 今回は、デフォルト値で動かすことに。

また、tekton cliもインストールしておく。kubectlのプラグインになるようにシンボリックリンクで、kubectl-xxxのファイルを作成する。 https://github.com/tektoncd/cli

sudo ln -s /usr/bin/tkn /usr/local/bin/kubectl-tkn

チュートリアルの実施

https://github.com/tektoncd/pipeline/blob/master/docs/tutorial.md

cat <<EOF | kubectl apply -f -
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: echo-hello-world
spec:
  steps:
    - name: echo
      image: ubuntu
      command:
        - echo
      args:
        - "Hello World"
EOF

cat <<EOF | kubectl apply -f -
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: echo-hello-world-task-run
spec:
  taskRef:
    name: echo-hello-world
EOF

kubectl tkn taskrun logs echo-hello-world-task-run

TaskTaskRun があり、Taskは実際にやることを書き、実行するにはTaskRunを作成する、と。

まとめ

いったんインストールとタスクの定義、その実行まで見てみた。 これだけだとCI/CDツールっぽさがないので、パイプラインはこのあと見ていく予定。

やりました。 Tektonでパイプラインを動かす


関連記事