kubernetesで動かすCI/CDツールとして、聞いてはいたものの、これまでぜんぜんさわれてなかったtektonをちょっとだけさわってみた。
タスクやパイプラインが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
Task
と TaskRun
があり、Taskは実際にやることを書き、実行するにはTaskRunを作成する、と。
まとめ
いったんインストールとタスクの定義、その実行まで見てみた。 これだけだとCI/CDツールっぽさがないので、パイプラインはこのあと見ていく予定。
やりました。 Tektonでパイプラインを動かす
Share