Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tekton 入門
Search
Mamoru Shimizu
May 28, 2019
Technology
4
1.6k
Tekton 入門
Red Hat Tech Night 2019.05 発表資料
https://ossbyredhat.connpass.com/event/130461/
Mamoru Shimizu
May 28, 2019
Tweet
Share
More Decks by Mamoru Shimizu
See All by Mamoru Shimizu
JBoss EAP for OpenShift
mamoru1112
0
88
Other Decks in Technology
See All in Technology
Agile Leadership Summit Keynote 2026
m_seki
1
620
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.9k
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.4k
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
120
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
770
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
380
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
570
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.5k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Between Models and Reality
mayunak
1
190
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
67
It's Worth the Effort
3n
188
29k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Tell your own story through comics
letsgokoyo
1
810
Done Done
chrislema
186
16k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Transcript
Red Hat Tech Night 2019.05 Tekton 入門 Mamoru Shimizu Global
Professional Service / Consultant May 28th, 2019 1
Copyright 2019 Red Hat K.K. 2 自己紹介 • 名前: Mamoru
Shimizu ◦ Twitter / Qiita: @mamomamo • Role: Consultant • 最近の仕事 ◦ OpenShift 上のアプリケーション開発支援 ◦ OpenShift の設計・構築支援 ◦ JBoss EAP を使ったアプリケーション開発支援
Copyright 2019 Red Hat K.K. 3 Tekton 概要 • Kubernetes
ネイティブな CI/CD パイプラインを作るOSSのフレームワーク • CI/CD ツールとプロセスの標準化に役立つOSSのコンポーネント群を提供、クラウド プラットフォームに依存しないパイプラインを構築可能 • コンテナを実行ブロックの単位として扱う • 2019年3月に発足した “Coutinuous Delivery Foundation” がホストしている中で最 も知られてないプロジェクト
Copyright 2019 Red Hat K.K. 4 インストール方法 • 以下のコマンドでインストール可能 (cluster-admin
で実行必須) • カスタムコントローラのデプロイと CRD (Custom Resource Definition) を作成 • 以下の2つの Pod が作成される $ oc new-project tekton-pipelines $ oc adm policy add-scc-to-user anyuid -z tekton-pipelines-controller $ oc apply --filename https://storage.googleapis.com/tekton-releases/latest/release.yaml $ oc get po NAME READY STATUS RESTARTS AGE tekton-pipelines-controller-54d7bd8956-z7gjp 1/1 Running 0 1m tekton-pipelines-webhook-66cfc6cd57-kl5mt 1/1 Running 0 1m
Copyright 2019 Red Hat K.K. 5 Custom Resource Definition 種別
• Pipeline >- Task >- Step の包含関係 • CRD (Custom Resource Definition) の種別は以下の通り 種別 説明 PipelineResource Task で利用するインプット /アウトプットを指定するリソース Task 最小の実行単位、複数の Step から構成されたリソース TaskRun Task を実行するためのリソース Pipeline 複数の Task から構成されたリソース PipelineRun Pipeline を実行するためのリソース
Copyright 2019 Red Hat K.K. 6 PipelineResource 設定例 • type:
インプット/アウトプットのタイプを 指定 • 現在サポート対象のタイプ ◦ Git Resource ◦ Image Resource ◦ Cluster Resource ▪ 他の k8s クラスタへのアプリケーショ ンのデプロイ ◦ Storage Resource ▪ GCS(Google Cloud Storage) のみサ ポート apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: skaffold-git spec: type: git params: - name: revision value: master - name: url value: https://github.com/GoogleContainerTools/skaffold
Copyright 2019 Red Hat K.K. 7 Task 設定例 • inputs:
インプットに必要な PipelineResource とパラメータの指定 • outputs: Task によって作成される PipelineResource を指定 • steps: 実行したいコンテナイメージを指 定、コンテナが実行ブロックの単位 apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: build-docker-image-from-git-source spec: inputs: resources: - name: docker-source type: git params: - name: pathToDockerFile ・・・ outputs: resources: - name: builtImage type: image steps: - name: build-and-push image: gcr.io/kaniko-project/executor command: - /kaniko/executor args: - --dockerfile=${inputs.params.pathToDockerFile} ・・・
Copyright 2019 Red Hat K.K. 8 TaskRun 設定例 • taskRef:
実行したい Task を指定 • resources: インプット/アウトプットとなる PipelineResource を指定 • serviceAccount: Task を実行するサー ビスアカウントを指定 • nodeSelector / tolerations / affinity: Pod と同様に Task を実行するノードを 制御可能 apiVersion: tekton.dev/v1alpha1 kind: TaskRun metadata: name: build-docker-image-from-git-source-task-run spec: taskRef: name: build-docker-image-from-git-source inputs: resources: - name: docker-source resourceRef: name: skaffold-git params: - name: pathToDockerFile value: Dockerfile - name: pathToContext value: /workspace/docker-source/examples/microservices/leeroy-web outputs: resources: - name: builtImage resourceRef: name: skaffold-image-leeroy-web
Copyright 2019 Red Hat K.K. 9 Pipeline 設定例 • tasks:
実行する一連の Task を指定 • from: 先行する Task のアウトプットの PipelineResource がある場合に指定 • runAfter: 別の Task の完了後に実行す る場合に指定、アウトプットを連携する 必要はない • retries: Task の実行に失敗した際にリト ライした場合に指定 apiVersion: tekton.dev/v1alpha1 kind: Pipeline metadata: name: tutorial-pipeline spec: resources: ・・・ tasks: - name: build-skaffold-web taskRef: name: build-docker-image-from-git-source params: ・・・ resources: inputs: ・・・ outputs: ・・・ - name: deploy-web taskRef: name: deploy-using-kubectl resources: inputs: ・・・ - name: image resource: web-image from: - build-skaffold-web params: ・・・
Copyright 2019 Red Hat K.K. 10 PipelineRun 設定例 • pipelineRef:
実行したい Pipeline を指 定 • resources: インプット/アウトプットとな る PipelineResource を指定 • serviceAccount: Task を実行するサー ビスアカウントを指定 • nodeSelector / tolerations / affinity: Pod と同様に Task を実行するノードを 制御可能 apiVersion: tekton.dev/v1alpha1 kind: PipelineRun metadata: name: tutorial-pipeline-run-1 spec: pipelineRef: name: tutorial-pipeline resources: - name: source-repo resourceRef: name: skaffold-git - name: web-image resourceRef: name: skaffold-image-leeroy-web
Copyright 2019 Red Hat K.K. 11 TaskRun / PipelineRun 実行方法
• PipelineResource -> Task -> Pipeline -> PipelineRun の順にリソースを作成 • 以下のようなコマンドでパイプラインの実行結果を確認 $ oc apply -f <name-of-file.yaml> $ oc get pipelineruns/<name-of-pipeline> -o yaml
Copyright 2019 Red Hat K.K. 12 まとめ (所感) • Kubernetes
ネイティブな CI/CD パイプラインを作るOSSのフレームワーク • クラウドプラットフォームに依存しないパイプラインの記述方法が可能であり、コンテ ナを実行ブロックの単位として扱うことが可能 • 普段から Kubernetes / OpenShift のYAMLを書き慣れている人にとって、Task / Pipeline の書き方は理解し易いように感じた。 • 真面目にLT発表してみましたが、RHTNの雰囲気に合っているか正直分かりません。
linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading
provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you 13