SlideShare a Scribd company logo
Build
CloudNative CI/CD Pipelines
with Tekton on Kubernetes
Nikhil Thomas
Software Engineer
Red Hat
Github: nikhil-thomas
Twitter: nikhilthomasmwb
YouTube link to this talk: https://www.youtube.com/watch?v=-ji5Z0qJmJs
Contents
● Meet our CI/CD Pipeline
● Introduction to Tekton Pipeline
● Pipelines Demo
Sample App
Web Service 1 Web Service 2
http request
http response
http request
http response
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
● Kubernetes Style Resources ⇔ Tekton Custom Resources
● Declaring CI/CD Pipelines ⇔ Tekton Controllers Manages State
“Kubernetes resource model
is coming
to an API near you!”
- Kubernetes-style APIs of the Future, Daniel Smith
KubeCon CloudNativeCon Europe, May 2018
Kubernetes Resource Model
API Operation State
Handles
API Operations
Resources
● Pods
● Deployments
● Service
● Node
● ...
Verbs
● Get
● List
● Create
● Update
● Delete
● Patch
● Watch
● Pods
● Deployments
● Service
● Node
● …
● Custom
Resources
● Get
● List
● Create
● Update
● Delete
● Patch
● Watch
API Operations
Resources Verbs
State
Controllers
● Split System State into
small pieces
● Separate Controllers
manage each piece
Resource StateController
Events
● Split System State into
small pieces
● Separate Controllers
manage each piece
Resource StateController
Events
Yes!, we can add custom controllers :)
State
Controllers
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
Tekton Pipeline Custom Resources
● Task
● PipelineResource
● Pipeline
● TaskRun
● PipelineRun
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
Task
● Defines the work that needs to be executed
● Every task runs as a Pod
● Contains multiple steps
Steps (in a Task)
● Series of commands
● Sequentially executed by the task.
● Each step in a task runs as a container
Task
step
step
step
Task Input and Outputs
● Input
● PipelineResources
● Parameters
● Output
● PipelineResources
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
PipelineResource
● Predefined input/output
● System defined resource types
ready to use
● Decoupled and reusable
● Commonly used PipelineResource
types: image, git
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
Pipeline
● Defines list of Tasks to execute
● Expresses Task order (graph)
● Links Tasks inputs and outputs
Pipeline
Task Task
Task
Task
Task
Pipeline
TaskRun
● Instance of a defined Task
● Binds the inputs/outputs to a Task
● Sets values to the parameters
● Executes Task steps
TaskRun
TaskRun
TaskRun
TaskRun
PipelineRun
● Instance of a defined Pipeline
● Binds inputs/outputs to a Pipeline
● Execute the Tasks in the Pipeline
● Create the TaskRuns for each Task
and collect the results
CI/CD with Tekton Pipeline
on Kubernetes
Demo
Sample App
Web Service 1 Web Service 2
http request
http response
http request
http response
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
Build Task
Pull source code
(Step)
Build container Image
(Step)
Push container image
(Step)
(Task)
source code (PipelineResource)
container image (PipelineResource)
execution order
inputs
Deployment Task
Update Deployment manifest
(Step)
Create Deployment
(Step)
(Task)
container image (PipelineResource)
Functional web services
execution order
inputs
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
source code (PipelineResource) source code (PipelineResource)
execution order
inputs
CI/CD Pipeline
Build Web Service 1
(Task)
Build Web Service 2
(Task)
Deploy Web Service 1
(Task)
Deploy Web Service 2
(Task)
container image (PipelineResource)
container image (PipelineResource)
(Pipeline)
tkn (Tekton CLI)
Available Commands
● task : Manage tasks
● taskrun : Manage taskruns
● pipeline : Manage pipelines
● pipelinerun : Manage pipelineruns
● completion : Prints shell completion scripts
● help : Help about any command
● version : Prints version information
tkn task
Available Sub-Commands
● list : Lists tasks in a namespace
tkn taskrun
Available Sub-Commands
● list : Lists taskruns in a namespace
● logs : Displays taskrun logs
tkn pipeline
Available Sub-Commands
● describe : Describes a pipeline in a namespace
● list : Lists pipelines in a namespace
● start : Start pipelines by creating a pipelinerun in a namespace
tkn pipelinerun
Available Sub-Commands
● describe : Describe a pipelinerun in a namespace
● list : Lists pipelineruns in a namespace
● logs : Display pipelinerun logs
Pipelines Operator
Pipelines Operator provides `As a Service Experience`
● Kubernetes Style Resources ⇔ Tekton Resources ⇔ API operations
● Declaring CI/CD Pipelines ⇔ Tekton Controllers ⇔ State Management
∙ Tekton: https://github.com/tektoncd
∙ Tekton Pipeline: https://github.com/tektoncd/pipeline
∙ Tekton CLI: https://github.com/tektoncd/cli
∙ Kubernetes Operator for Tekton Pipelines:
https://github.com/openshift/tektoncd-pipeline-operator
∙ Tekton Pipelines on Openshift:
https://github.com/openshift/tektoncd-pipeline-operator
∙ Tekton Catalog:
https://github.com/tektoncd/catalog
Thank you

More Related Content

What's hot

GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
ssuser31375f
 
Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)
Akash Agrawal
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
Julian Mazzitelli
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Edureka!
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
Jean-Philippe Bélanger
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
Stefan Schimanski
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)
Opsta
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
Opsta
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
Knoldus Inc.
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
Akash Agrawal
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
Omar Fathy
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
Bytemark
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on Kubernetes
Opsta
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
Weaveworks
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
amanmakwana3
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
EastBanc Tachnologies
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
GlobalLogic Ukraine
 
Leveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the EnterpriseLeveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the Enterprise
Andrew Kelleher
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.sk
Juraj Hantak
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
Bhargav Amin
 

What's hot (20)

GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)
 
Designing a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd productsDesigning a complete ci cd pipeline using argo events, workflow and cd products
Designing a complete ci cd pipeline using argo events, workflow and cd products
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
GitOps w/argocd
GitOps w/argocdGitOps w/argocd
GitOps w/argocd
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on Kubernetes
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
 
ArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdfArgoCD Meetup PPT final.pdf
ArgoCD Meetup PPT final.pdf
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Modern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOpsModern CI/CD Pipeline Using Azure DevOps
Modern CI/CD Pipeline Using Azure DevOps
 
Leveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the EnterpriseLeveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the Enterprise
 
Gitlab ci, cncf.sk
Gitlab ci, cncf.skGitlab ci, cncf.sk
Gitlab ci, cncf.sk
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 

Similar to Cloud-Native CI/CD on Kubernetes with Tekton Pipelines

Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSL
Anton Arhipov
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker, Inc.
 
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDKBigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
nagachika t
 
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
Wasura Wattearachchi
 
Spring on Kubernetes
Spring on KubernetesSpring on Kubernetes
Spring on Kubernetes
Jay Lee
 
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Aljoscha Krettek
 
Cross Cloud CI Intro
Cross Cloud CI IntroCross Cloud CI Intro
Cross Cloud CI Intro
W Watson
 
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward
 
Extended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesExtended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use cases
Phil Estes
 
CRI-containerd
CRI-containerdCRI-containerd
CRI-containerd
Moby Project
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
CoreOS
 
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
Ivan Gracia
 
Modernizando ci cd com openshift pipelines tdc poa
Modernizando ci cd com openshift pipelines tdc poaModernizando ci cd com openshift pipelines tdc poa
Modernizando ci cd com openshift pipelines tdc poa
Mauricio Magnani Jr
 
Python Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on FlinkPython Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on Flink
Aljoscha Krettek
 
Using Docker in CI process
Using Docker in CI processUsing Docker in CI process
Using Docker in CI process
Grzegorz Godlewski
 
containerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerdcontainerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerd
Docker, Inc.
 
Qtp not just for gui anymore
Qtp   not just for gui anymoreQtp   not just for gui anymore
Qtp not just for gui anymore
Pragya Rastogi
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
Steffen Gebert
 
Web rtc 入門
Web rtc 入門Web rtc 入門
Web rtc 入門
crsgypin Chiu
 

Similar to Cloud-Native CI/CD on Kubernetes with Tekton Pipelines (20)

Build pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSLBuild pipelines with TeamCity and Kotlin DSL
Build pipelines with TeamCity and Kotlin DSL
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDKBigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
BigQuery case study in Groovenauts & Dive into the DataflowJavaSDK
 
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
WSO2 Screencast - How to Easily Build a Git-Based CI/CD Pipeline for your API...
 
Spring on Kubernetes
Spring on KubernetesSpring on Kubernetes
Spring on Kubernetes
 
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
Talk Python To Me: Stream Processing in your favourite Language with Beam on ...
 
Cross Cloud CI Intro
Cross Cloud CI IntroCross Cloud CI Intro
Cross Cloud CI Intro
 
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
Flink Forward Berlin 2017: Aljoscha Krettek - Talk Python to me: Stream Proce...
 
Extended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesExtended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use cases
 
CRI-containerd
CRI-containerdCRI-containerd
CRI-containerd
 
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, KeynoteTectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
 
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
Flink Forward Berlin 2018: Thomas Weise & Aljoscha Krettek - "Python Streamin...
 
Nubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - KurentoNubomedia IETF96 hackthon - Kurento
Nubomedia IETF96 hackthon - Kurento
 
Modernizando ci cd com openshift pipelines tdc poa
Modernizando ci cd com openshift pipelines tdc poaModernizando ci cd com openshift pipelines tdc poa
Modernizando ci cd com openshift pipelines tdc poa
 
Python Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on FlinkPython Streaming Pipelines with Beam on Flink
Python Streaming Pipelines with Beam on Flink
 
Using Docker in CI process
Using Docker in CI processUsing Docker in CI process
Using Docker in CI process
 
containerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerdcontainerd summit - Deep Dive into containerd
containerd summit - Deep Dive into containerd
 
Qtp not just for gui anymore
Qtp   not just for gui anymoreQtp   not just for gui anymore
Qtp not just for gui anymore
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
Web rtc 入門
Web rtc 入門Web rtc 入門
Web rtc 入門
 

Recently uploaded

LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
Peter Muessig
 

Recently uploaded (20)

LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemUI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
UI5con 2024 - Keynote: Latest News about UI5 and it’s Ecosystem
 

Cloud-Native CI/CD on Kubernetes with Tekton Pipelines

  • 1. Build CloudNative CI/CD Pipelines with Tekton on Kubernetes Nikhil Thomas Software Engineer Red Hat Github: nikhil-thomas Twitter: nikhilthomasmwb YouTube link to this talk: https://www.youtube.com/watch?v=-ji5Z0qJmJs
  • 2. Contents ● Meet our CI/CD Pipeline ● Introduction to Tekton Pipeline ● Pipelines Demo
  • 3. Sample App Web Service 1 Web Service 2 http request http response http request http response
  • 4. CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline) source code (PipelineResource) source code (PipelineResource) execution order inputs
  • 5.
  • 6. ● Kubernetes Style Resources ⇔ Tekton Custom Resources ● Declaring CI/CD Pipelines ⇔ Tekton Controllers Manages State
  • 7. “Kubernetes resource model is coming to an API near you!” - Kubernetes-style APIs of the Future, Daniel Smith KubeCon CloudNativeCon Europe, May 2018
  • 8. Kubernetes Resource Model API Operation State Handles
  • 9. API Operations Resources ● Pods ● Deployments ● Service ● Node ● ... Verbs ● Get ● List ● Create ● Update ● Delete ● Patch ● Watch
  • 10. ● Pods ● Deployments ● Service ● Node ● … ● Custom Resources ● Get ● List ● Create ● Update ● Delete ● Patch ● Watch API Operations Resources Verbs
  • 11. State Controllers ● Split System State into small pieces ● Separate Controllers manage each piece Resource StateController Events
  • 12. ● Split System State into small pieces ● Separate Controllers manage each piece Resource StateController Events Yes!, we can add custom controllers :) State Controllers
  • 13.
  • 14.
  • 15. CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline) source code (PipelineResource) source code (PipelineResource) execution order inputs
  • 16. Tekton Pipeline Custom Resources ● Task ● PipelineResource ● Pipeline ● TaskRun ● PipelineRun
  • 17. CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline) source code (PipelineResource) source code (PipelineResource) execution order inputs
  • 18. Task ● Defines the work that needs to be executed ● Every task runs as a Pod ● Contains multiple steps
  • 19. Steps (in a Task) ● Series of commands ● Sequentially executed by the task. ● Each step in a task runs as a container Task step step step
  • 20. Task Input and Outputs ● Input ● PipelineResources ● Parameters ● Output ● PipelineResources
  • 21. CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline) source code (PipelineResource) source code (PipelineResource) execution order inputs
  • 22. PipelineResource ● Predefined input/output ● System defined resource types ready to use ● Decoupled and reusable ● Commonly used PipelineResource types: image, git
  • 23. CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline) source code (PipelineResource) source code (PipelineResource) execution order inputs
  • 24. Pipeline ● Defines list of Tasks to execute ● Expresses Task order (graph) ● Links Tasks inputs and outputs Pipeline Task Task Task Task Task
  • 26. TaskRun ● Instance of a defined Task ● Binds the inputs/outputs to a Task ● Sets values to the parameters ● Executes Task steps
  • 31. PipelineRun ● Instance of a defined Pipeline ● Binds inputs/outputs to a Pipeline ● Execute the Tasks in the Pipeline ● Create the TaskRuns for each Task and collect the results
  • 32. CI/CD with Tekton Pipeline on Kubernetes Demo
  • 33. Sample App Web Service 1 Web Service 2 http request http response http request http response
  • 34. CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline) source code (PipelineResource) source code (PipelineResource) execution order inputs
  • 35. Build Task Pull source code (Step) Build container Image (Step) Push container image (Step) (Task) source code (PipelineResource) container image (PipelineResource) execution order inputs
  • 36. Deployment Task Update Deployment manifest (Step) Create Deployment (Step) (Task) container image (PipelineResource) Functional web services execution order inputs
  • 37. source code (PipelineResource) source code (PipelineResource) execution order inputs CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline)
  • 38. source code (PipelineResource) source code (PipelineResource) execution order inputs CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline)
  • 39. source code (PipelineResource) source code (PipelineResource) execution order inputs CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline)
  • 40. source code (PipelineResource) source code (PipelineResource) execution order inputs CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline)
  • 41. source code (PipelineResource) source code (PipelineResource) execution order inputs CI/CD Pipeline Build Web Service 1 (Task) Build Web Service 2 (Task) Deploy Web Service 1 (Task) Deploy Web Service 2 (Task) container image (PipelineResource) container image (PipelineResource) (Pipeline)
  • 42. tkn (Tekton CLI) Available Commands ● task : Manage tasks ● taskrun : Manage taskruns ● pipeline : Manage pipelines ● pipelinerun : Manage pipelineruns ● completion : Prints shell completion scripts ● help : Help about any command ● version : Prints version information
  • 43. tkn task Available Sub-Commands ● list : Lists tasks in a namespace tkn taskrun Available Sub-Commands ● list : Lists taskruns in a namespace ● logs : Displays taskrun logs
  • 44. tkn pipeline Available Sub-Commands ● describe : Describes a pipeline in a namespace ● list : Lists pipelines in a namespace ● start : Start pipelines by creating a pipelinerun in a namespace tkn pipelinerun Available Sub-Commands ● describe : Describe a pipelinerun in a namespace ● list : Lists pipelineruns in a namespace ● logs : Display pipelinerun logs
  • 46. Pipelines Operator provides `As a Service Experience`
  • 47. ● Kubernetes Style Resources ⇔ Tekton Resources ⇔ API operations ● Declaring CI/CD Pipelines ⇔ Tekton Controllers ⇔ State Management
  • 48. ∙ Tekton: https://github.com/tektoncd ∙ Tekton Pipeline: https://github.com/tektoncd/pipeline ∙ Tekton CLI: https://github.com/tektoncd/cli ∙ Kubernetes Operator for Tekton Pipelines: https://github.com/openshift/tektoncd-pipeline-operator ∙ Tekton Pipelines on Openshift: https://github.com/openshift/tektoncd-pipeline-operator ∙ Tekton Catalog: https://github.com/tektoncd/catalog