Submit Search
Upload
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
•
Download as PPTX, PDF
•
6 likes
•
3,412 views
JUNICHI YOSHISE
Follow
Presentation slide for Kubernetes Meetup Tokyo #20 - KubeCon Recap.
Read less
Read more
Software
Report
Share
Report
Share
1 of 36
Download now
Recommended
はじめての JFrog Platform V2
はじめての JFrog Platform V2
Tsuyoshi Miyake
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Preferred Networks
Rancher2.0で実現する Managed Kubernetes Service
Rancher2.0で実現する Managed Kubernetes Service
LINE Corporation
Wordpress案件にgkeを採用してみた(短縮版)
Wordpress案件にgkeを採用してみた(短縮版)
Yu Amano
5分で分かった気になるTekton
5分で分かった気になるTekton
Shuhei Kitagawa
gRPC入門
gRPC入門
Kenjiro Kubota
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
LINE Corporation
Recommended
はじめての JFrog Platform V2
はじめての JFrog Platform V2
Tsuyoshi Miyake
GitHubの機能を活用したGitHub Flowによる開発の進め方
GitHubの機能を活用したGitHub Flowによる開発の進め方
Takeshi Mikami
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Kubernete Meetup Tokyo #18 - Kubebuilder/controller-runtime 入門
Preferred Networks
Rancher2.0で実現する Managed Kubernetes Service
Rancher2.0で実現する Managed Kubernetes Service
LINE Corporation
Wordpress案件にgkeを採用してみた(短縮版)
Wordpress案件にgkeを採用してみた(短縮版)
Yu Amano
5分で分かった気になるTekton
5分で分かった気になるTekton
Shuhei Kitagawa
gRPC入門
gRPC入門
Kenjiro Kubota
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
Clovaにおける機械学習モジュールの配信&運用基盤の紹介
LINE Corporation
実践! Argo cd & rollouts による canary release(cndt2021)
実践! Argo cd & rollouts による canary release(cndt2021)
HayatoOkuma1
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
Kohei Tokunaga
GitLab CI/CD パイプライン
GitLab CI/CD パイプライン
Tetsurou Yano
20120324 git training
20120324 git training
Takeshi AKIMA
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
Testing and packaging WebRTC Stack
Testing and packaging WebRTC Stack
Alexandre Gouaillard
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
Go Chiba
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Masaya Aoyama
Rootlessコンテナ
Rootlessコンテナ
Akihiro Suda
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
lestrrat
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
Hinemosで簡単にDevOpsをサポート!
Hinemosで簡単にDevOpsをサポート!
hinemos_atomitech
Server side Swift & Photo Booth
Server side Swift & Photo Booth
LINE Corporation
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
Shinya Mori (@mosuke5)
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話
Kazuto Kusama
Amazon ECSとDevOps
Amazon ECSとDevOps
Amazon Web Services Japan
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
More Related Content
What's hot
実践! Argo cd & rollouts による canary release(cndt2021)
実践! Argo cd & rollouts による canary release(cndt2021)
HayatoOkuma1
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
Kohei Tokunaga
GitLab CI/CD パイプライン
GitLab CI/CD パイプライン
Tetsurou Yano
20120324 git training
20120324 git training
Takeshi AKIMA
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Masaki Yamamoto
Testing and packaging WebRTC Stack
Testing and packaging WebRTC Stack
Alexandre Gouaillard
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
Go Chiba
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Masaya Aoyama
Rootlessコンテナ
Rootlessコンテナ
Akihiro Suda
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
lestrrat
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
Kazuto Kusama
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
Hinemosで簡単にDevOpsをサポート!
Hinemosで簡単にDevOpsをサポート!
hinemos_atomitech
Server side Swift & Photo Booth
Server side Swift & Photo Booth
LINE Corporation
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
GKEで半年運用してみた
GKEで半年運用してみた
Katsutoshi Nagaoka
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
Shinya Mori (@mosuke5)
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話
Kazuto Kusama
Amazon ECSとDevOps
Amazon ECSとDevOps
Amazon Web Services Japan
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Kazuto Kusama
What's hot
(20)
実践! Argo cd & rollouts による canary release(cndt2021)
実践! Argo cd & rollouts による canary release(cndt2021)
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
5分で振り返るKubeCon EU 2019:ランタイムとイメージの話題ダイジェスト
GitLab CI/CD パイプライン
GitLab CI/CD パイプライン
20120324 git training
20120324 git training
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Testing and packaging WebRTC Stack
Testing and packaging WebRTC Stack
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Certified XXX まわりのはなし Kubernetes Invitational Meetup #2
Rootlessコンテナ
Rootlessコンテナ
小規模でもGKE - DevFest Tokyo 2016
小規模でもGKE - DevFest Tokyo 2016
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
20分でわかるgVisor入門
20分でわかるgVisor入門
Hinemosで簡単にDevOpsをサポート!
Hinemosで簡単にDevOpsをサポート!
Server side Swift & Photo Booth
Server side Swift & Photo Booth
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
GKEで半年運用してみた
GKEで半年運用してみた
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
DockerMeetup#26 LT: Alibaba Cloudのコンテナ関連についてちょっとだけ
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話
Amazon ECSとDevOps
Amazon ECSとDevOps
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
Similar to Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Tekton 入門
Tekton 入門
Mamoru Shimizu
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Daein Park
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Preferred Networks
How to run P4 BMv2
How to run P4 BMv2
Kentaro Ebisawa
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi
DockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JP
Go Chiba
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kazuhito Matsuda
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
Kuninobu SaSaki
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
Masahito Zembutsu
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Daisuke Hiraoka
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Masaya Aoyama
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
Similar to Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
(20)
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Tekton 入門
Tekton 入門
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
Kubernetes meetup-tokyo-13-customizing-kubernetes-for-ml-cluster
How to run P4 BMv2
How to run P4 BMv2
20150101勉強会 dokku alt
20150101勉強会 dokku alt
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
.NET Coreとツール類の今
.NET Coreとツール類の今
DockerCon '17 Feedback at PaaS JP
DockerCon '17 Feedback at PaaS JP
Kubernetes Meetup Tokyo #23 kubebuilder-v2
Kubernetes Meetup Tokyo #23 kubebuilder-v2
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
Docker & Kubernetes基礎
Docker & Kubernetes基礎
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
More from JUNICHI YOSHISE
Bye-bye SlideShare
Bye-bye SlideShare
JUNICHI YOSHISE
Rookの今とこれから(CloudNative Meetup #3)
Rookの今とこれから(CloudNative Meetup #3)
JUNICHI YOSHISE
Kubernetes on Mesos Deep Dive [Japanese]
Kubernetes on Mesos Deep Dive [Japanese]
JUNICHI YOSHISE
K8sjp11 KubeCon-Recap Multi-Cluster Operations
K8sjp11 KubeCon-Recap Multi-Cluster Operations
JUNICHI YOSHISE
k8sjp#9 KubeCon - Service Mesh, ML/DL on k8s
k8sjp#9 KubeCon - Service Mesh, ML/DL on k8s
JUNICHI YOSHISE
Osdt s3
Osdt s3
JUNICHI YOSHISE
DC/OS as PaaS : paasjp#36
DC/OS as PaaS : paasjp#36
JUNICHI YOSHISE
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
JUNICHI YOSHISE
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
JUNICHI YOSHISE
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
JUNICHI YOSHISE
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
JUNICHI YOSHISE
Internet week2015 s5_yoshise
Internet week2015 s5_yoshise
JUNICHI YOSHISE
帰ってきた鬼っ子~Stackatoを知っているか~第33回PaaS勉強会資料
帰ってきた鬼っ子~Stackatoを知っているか~第33回PaaS勉強会資料
JUNICHI YOSHISE
More from JUNICHI YOSHISE
(13)
Bye-bye SlideShare
Bye-bye SlideShare
Rookの今とこれから(CloudNative Meetup #3)
Rookの今とこれから(CloudNative Meetup #3)
Kubernetes on Mesos Deep Dive [Japanese]
Kubernetes on Mesos Deep Dive [Japanese]
K8sjp11 KubeCon-Recap Multi-Cluster Operations
K8sjp11 KubeCon-Recap Multi-Cluster Operations
k8sjp#9 KubeCon - Service Mesh, ML/DL on k8s
k8sjp#9 KubeCon - Service Mesh, ML/DL on k8s
Osdt s3
Osdt s3
DC/OS as PaaS : paasjp#36
DC/OS as PaaS : paasjp#36
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s上の containerized cloud foundryとcontainerized open stackをprometheusで監視してみる
K8s meetup containerized_cloud_foundry
K8s meetup containerized_cloud_foundry
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Cloud Foundry as Containerized Services - Cloud Foundry Days Tokyo 2016
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
Enterprise Development Conference 2016 プライベートPaaSが実現するアジャイル開発と次世代型アプリケーションの実例
Internet week2015 s5_yoshise
Internet week2015 s5_yoshise
帰ってきた鬼っ子~Stackatoを知っているか~第33回PaaS勉強会資料
帰ってきた鬼っ子~Stackatoを知っているか~第33回PaaS勉強会資料
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes Meetup Tokyo #20
1.
Modern CI/CD with Tekton
and Prow Automated via Jenkins X Kubernetes Meetup #20 @jyoshise
2.
Slide: https://static.sched.com/hosted_files/kccnceu1 9/98/Modern%20CI_CD%20with%20Tekton% 20and%20Prow%20Automated%20via%20Je nkins%20X.pdf Video: https://www.youtube.com/watch?v=4EyTGYB 7GvA
3.
whoami 3 • Junichi Yoshise
/ 吉瀬 淳一 • @jyoshise • Chief Architect, Cloud Native Computing • Hewlett Packard Enterprise
4.
4
5.
私のふだんの仕事によくあるパターン DevOpsの見積もりをください。 コンテナの。 ( ゚Д゚)ざっくりしてんな!
6.
「DevOpsがやりたい」とエンタープライズなお客さん(インフラ/ 運用部門)が言ったとき • だいたい以下のようなことを意味している • インフラ構築の手間を減らしたい →コンテナで解決するんでしょ? •
アプリケーションリリースの手間を減らしたい →CI/CDで解決するんでしょ?(開発ベンダーはCIやってるみたいだけど) • クラウドネイティブっぽいことがやりたい →時代はクラウドネイティブなんでしょ? • というわけで、「クラウド Kubernetesネイティブな、コンテナア プリケーションのCI/CD」の検討が始まる • やっぱ違うね、となることもしばしば
7.
CI/CDのざっくりイメージ Code Build/UT IT
Deploy Continuous Stage
8.
レガシーなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT IT
Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger
9.
Continuous Delivery Foundation •
The Linux Foundationの下位組織(CNCFと横並び)として2019年3月に発足 • 夢はCI/CDのAPI標準化 • https://cd.foundation
10.
Continuous Delivery Summit Presentations: https://github.com/cdfoundation/present ations/tree/master/2019-summit- barcelona Video: https://www.youtube.com/watch?v=P7h FpbAJNVY&list=PL2KXbZ9- EY9RB8bVvmiSOqB39eNMs-fAe
11.
CI/CDツールの生まれた時代 11 2011 2015 2018
2019 オンプレベアメタル/仮想マシン クラウド仮想マシン コンテナ Kubernetes
12.
Kubernetes Nativeであることとは • あらゆるプロセスはコンテナとして実行できる •
オブジェクトはDeclarative(宣言的)に記述される • 状態の変更は拡張可能なKubernetes APIを通じて行われる
13.
レガシーなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT IT
Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger
14.
Kubernetes NativeなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT
IT Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger • Source Repo • Dockerfile / Docker Image • Kubernetes Manifest / Template • 各タスクをKubernetes上で(それぞれのタスクに特 化したコンテナとして)実行 • スケール、ログ、認証などはKubernetesエコシステ ムを利用 • Eventing (webhook) • Kube API
15.
突然ですがGitOpsについて • GitOps とは •
Desired Stateを全てコードとして、Git Repositoryで管理する • Git Repository上の状態と実環境の状態は常に一致させる(Continuous Deployment) •そのためのツールは必要 • 変更はGit Repositoryに対するPull Request → Merge • 実環境上でコマンドを叩くオペレーションは原則禁止 • 状態定義がDeclarativeにできることが前提 • Kubernetesに最適(みんな大好きYAML) 15
16.
各レイヤーでのGitOpsが考えられる • アプリのGitOps • Pod,
Service • いわゆるCI/CD • インフラのGitOps • Ingress Controller, 共通の Operator/CRD(Rook, Prometheus)など • secretは除く • そもそもKubernetes自体 • CI/CDパイプラインのGitOps • Pipeline as Code 16
17.
Kubernetes NativeなCI/CD さすがにGit (SVNとかまだ 見るけど) ビルドサーバー でMavenとか ステージング環 境でテスト実行 本番環境のアプ リケーション サーバーにデプ ロイ Code Build/UT
IT Deploy Continuous Stage ステージング環 境のアプリケー ションサーバー にデプロイ • Artifact • Trigger • 各タスクをKubernetes上で(それぞれのタスクに特 化したコンテナとして)実行 • スケール、ログ、認証などはKubernetesエコシステ ムを利用 パイプライン定義も Kubernetes Object • Source Repo • Dockerfile / Docker Image • Kubernetes Manifest / Template • Eventing (webhook) • Kube API
18.
そこでTektonですよ • 出身はKnative: Kubernetes上でのPaaS/Serverlessプラットフォームを実現するプロジェクト 18 Knative-build Knative-serving Knative- eventing Knative-build- pipeline https://github.com/tektoncd
19.
tektoncd/pipelineの実体 • Deployment: • controller •
webhook • CRD: • PipelineResource • Task • TaskRun • Pipeline • PipelineRun • ClusterTask 19 $ kubectl apply -f https://storage.googleapis.com/tekton-releases/latest/release.yaml その他サブプロジェクト: • tektoncd/dashboard • ダッシュボード(Web UI) • tektoncd/cli • tkn(CLI) • tektoncd/catalog
20.
Example(簡単なPipeline) imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub Repo Pipeline DockerHub kaniko Manifest 加工 kubectl
Kubernetes Pipeline Task PipelineResource Step
21.
PipelineResource CRD imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub
Repo Pipeline DockerHub kaniko Manifest 加工 kubectl Kubernetes Pipeline Task PipelineResource Step
22.
PipelineResource CRD • TaskがInput/Outputとして使うリソース を定義 •
typeは現時点で以下の四つだけ • git : Gitレポジトリ • image : コンテナイメージのレジストリ • cluster : Kubernetesクラスタ • storage : GCS 22 apiVersion: tekton.dev/v1alpha1 kind: PipelineResource metadata: name: git-tektondemo spec: type: git params: - name: revision value: master - name: url value: https://github.com/jyoshise/tekton- demo-app.git
23.
Task CRD imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub
Repo Pipeline DockerHub kaniko Manifest 加工 kubectl Kubernetes Pipeline Task PipelineResource Step
24.
Task CRD • 実行するタスクを定義 •
spec.inputs / spec.outputs でタスクの入 力/出力となるリソースの型を指定 • 実際にどのPipelineResourceを使うか はPipelineRun/TaskRunで実行時に指定 する • spec.stepsはコンテナのspec • stepは複数指定可能。順番に実行される 24 apiVersion: tekton.dev/v1alpha1 kind: Task metadata: name: deploy-using-kubectl spec: inputs: resources: - name: source type: git - name: image type: image params: - name: path description: Path to the manifest to apply - name: yqArg description: Arg passed to yq - name: yamlPathToImage description: The path to the image to replace in the yaml manifest (arg to yq) steps: - name: replace-image image: mikefarah/yq command: ["yq"] args: - "w" - "-i" - "${inputs.params.yqArg}" - "${inputs.params.path}" - "${inputs.params.yamlPathToImage}" - "${inputs.resources.image.url}" - name: run-kubectl image: lachlanevenson/k8s-kubectl command: ["kubectl"] args: - "apply" - "-f" - "${inputs.params.path}"
25.
Catalog • Taskの見本帳 • Knative-buildプロジェク トもいずれこちらに統 合されるかも 25
26.
Pipeline CRD imag e build source Dockerfile Manifest template Deploy Tekton Manifests GitHub
Repo Pipeline DockerHub kaniko Manifest 加工 kubectl Kubernetes Pipeline Task PipelineResource Step
27.
Pipeline CRD • パイプラインを定義 •
複数のTaskを並べ、Taskごとにパラメー ターとinputs/outputsを宣言する • inputとして前のTaskのoutputを指定する ことで依存関係が指定できる 27 apiVersion: tekton.dev/v1alpha1 kind: Pipeline metadata: name: demo-pipeline spec: resources: - name: source-repo type: git - name: web-image type: image tasks: - name: build-web taskRef: name: build-docker-image-from-git-source params: ... - name: deploy-web taskRef: name: deploy-using-kubectl resources: inputs: - name: source resource: source-repo - name: image resource: web-image from: - build-web params: - name: path value: /workspace/source/manifests/deployment.yaml - name: yqArg value: "-d1" - name: yamlPathToImage value: "spec.template.spec.containers[0].image"
28.
PipelineRun/TaskRun CRD • PipelineやTaskを起動するためには、 PipelineRun/TaskRunのオブジェクトを 生成する必要がある •
Event Triggeringがまだ実装されていないた め • 権限を要するTaskを実行するには、ここ でserviceAccountを指定する • PipelineResourceはここで指定する 28 apiVersion: tekton.dev/v1alpha1 kind: PipelineRun metadata: name: demo-pipeline-run-1 spec: serviceAccount: build-bot pipelineRef: name: demo-pipeline resources: - name: source-repo resourceRef: name: git-tektondemo - name: web-image resourceRef: name: image-tektondemo
29.
いちおうDashboardもあります 29
30.
Demo 30
31.
Tektonに今のところ足りてないモノ • Event Triggering •
Log Persistence • SCM support • Pipeline Resource / Taskの拡張性 31
32.
Tektonの使い方いろいろ 32https://www.slideshare.net/ChristieWilson3/tekton-showcase-cdf-summit-kubecon- barcelona-2019
33.
Jenkins X +
Prow + Tekton • Prow https://github.com/kubernetes/test-infra/tree/master/prow • Kubernetes自体のCI/CDのために開発された • 各種プラグインによりGitHub上でChatOpsを実現する • Jenkins X Pipelines (Tekton Mode) https://jenkins-x.io/getting-started/next-gen- pipeline/ • まだearly work(隠しモード的な)。たぶんGKEでしか動かない • PipelineはJenkinsfileではなくjenkins-x.yamlで記述される→Tekton Pipelineに内部で変換され る • Pipelineの実行はTektonのPipeline Controllerが行う。Jenkins Serverがいらない • デモは動画見てください! 33
34.
まとめ 34
35.
まとめ • Kubernetesを拡張してなんでも載せていく方向性としては、Tektonは筋 がいい、なぜなら • Kubernetesの上で実行するCI/CDパイプラインをKubernetes
Nativeに記述できる • それによってCI/CDパイプラインも宣言的に管理できる • とはいえ現時点では単体でCI/CDツールとして完結するものではない • Jenkins Xのように、他ツールがTektonを利用する動きはこれから出てく るのでは • なのでTekton流のPipeline as Codeに親しんでおいて損はない 35
36.
Thank You 36
Download now