Sample App
Web Service 1 Web Service 2
http request
http response
http request
http response
Slide 2
Slide 2 text
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 resource model
is coming
to an API near you!”
- Kubernetes-style APIs of the Future, Daniel Smith
KubeCon CloudNativeCon Europe, May 2018
Slide 6
Slide 6 text
Kubernetes Resource Model
API Operation State
Handles
Slide 7
Slide 7 text
API Operations
Resources
● Pods
● Deployments
● Service
● Node
● ...
Verbs
● Get
● List
● Create
● Update
● Delete
● Patch
● Watch
Slide 8
Slide 8 text
● Pods
● Deployments
● Service
● Node
● …
● Custom
Resources
● Get
● List
● Create
● Update
● Delete
● Patch
● Watch
API Operations
Resources Verbs
Slide 9
Slide 9 text
State
Controllers
● Split System State into
small pieces
● Separate Controllers
manage each piece
Resource State
Controller
Events
Slide 10
Slide 10 text
● Split System State into
small pieces
● Separate Controllers
manage each piece
Resource State
Controller
Events
Yes!, we can add custom controllers :)
State
Controllers
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
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
Slide 16
Slide 16 text
Task
● Defines the work that needs to be executed
● Every task runs as a Pod
● Contains multiple steps
Slide 17
Slide 17 text
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
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
Slide 20
Slide 20 text
PipelineResource
● Predefined input/output
● System defined resource types
ready to use
● Decoupled and reusable
● Commonly used PipelineResource
types: image, git
Slide 21
Slide 21 text
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
Slide 22
Slide 22 text
Pipeline
● Defines list of Tasks to execute
● Expresses Task order (graph)
● Links Tasks inputs and outputs
Pipeline
Task Task
Task
Task
Task
Slide 23
Slide 23 text
Pipeline
Slide 24
Slide 24 text
TaskRun
● Instance of a defined Task
● Binds the inputs/outputs to a Task
● Sets values to the parameters
● Executes Task steps
Slide 25
Slide 25 text
TaskRun
Slide 26
Slide 26 text
TaskRun
Slide 27
Slide 27 text
TaskRun
Slide 28
Slide 28 text
TaskRun
Slide 29
Slide 29 text
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
Slide 30
Slide 30 text
CI/CD with Tekton Pipeline
on Kubernetes
Demo
Slide 31
Slide 31 text
Sample App
Web Service 1 Web Service 2
http request
http response
http request
http response
Slide 32
Slide 32 text
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
Deployment Task
Update Deployment manifest
(Step)
Create Deployment
(Step)
(Task)
container image (PipelineResource)
Functional web services
execution order
inputs
Slide 35
Slide 35 text
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)
Slide 36
Slide 36 text
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)
Slide 37
Slide 37 text
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)
Slide 38
Slide 38 text
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)
Slide 39
Slide 39 text
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)
Slide 40
Slide 40 text
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
Slide 41
Slide 41 text
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
Slide 42
Slide 42 text
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