Slide 1

Slide 1 text

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

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

● Kubernetes Style Resources ⇔ Tekton Custom Resources ● Declaring CI/CD Pipelines ⇔ Tekton Controllers Manages State

Slide 5

Slide 5 text

“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

Slide 14

Slide 14 text

Tekton Pipeline Custom Resources ● Task ● PipelineResource ● Pipeline ● TaskRun ● PipelineRun

Slide 15

Slide 15 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 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

Slide 18

Slide 18 text

Task Input and Outputs ● Input ● PipelineResources ● Parameters ● Output ● PipelineResources

Slide 19

Slide 19 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 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

Slide 33

Slide 33 text

Build Task Pull source code (Step) Build container Image (Step) Push container image (Step) (Task) source code (PipelineResource) container image (PipelineResource) execution order inputs

Slide 34

Slide 34 text

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