O documento apresenta Tekton como uma framework para CI/CD no Kubernetes, discutindo seus principais componentes como Tasks, Pipelines, PipelineRuns e Triggers. O palestrante irá demonstrar pipelines padrão para Java, utilizando Triggers e Templates, e interagindo com um servidor MinIO.
2. Sobre mim - Maurício Magnani :)
https://www.linkedin.com/in/mauriciomagnanijr
Estou na Red Hat a quase 8 anos.
Trabalho com Openshift e Kubernetes desde 2016.
Fui consultor da Plataforma JBoss e desenvolvedor Java por muitos anos.
3. O que vamos aprender hoje?
● Tekton Building Blocks ( Conceitos, Características e propósito)
● Tekton Pipeline padrão para a plataforma Java ( Demo )
● Tekton Pipeline utilizando Trigger e Template ( Demo )
● Tekton Pipeline interagindo com um servidor MinIO ( Demo )
Mas antes...
4. Qual é a tecnologia mais utilizada para Pipelines
no Kubernetes?
5. E se eu te disser que você não precisa usar Jenkins?
6. Tekton
The Continuous Delivery Foundation (CDF) serves
as the vendor-neutral home of many of the fastest-
growing projects for continuous delivery, including
Jenkins, Jenkins X, Spinnaker, and Tekton.
7. Tekton
● Framework cloud-native para CI/CD, poderoso e flexível baseado em
“Custom Resource Definitions (CRDs) do Kubernetes.”
8. Custom Resource Definitions (CRDs) ?
● Permite adicionar novos recursos ao Kubernetes estendendo a API.
● Ensina novos “truques” ao Kubernetes.
9.
10. Principais “Componentes” - Task
● Menor unidade “configurável” em um pipeline. Inputs e Outputs que formam o Pipeline.
● Git source code, Params, Images, etc. Ele pode ser executado individualmente ou como parte de um
pipeline. Um pipeline inclui uma ou mais task, onde cada task consiste em uma ou mais “stages” que
são executados sequencialmente, em paralelo ou de maneira dependente.
● Documentação - https://github.com/tektoncd/pipeline/blob/master/docs/tasks.md
11. Principais “Componentes” - Pipeline
● Pipeline consiste em uma série de tasks que são executadas em um workflow para
automatizar build, deploy,etc.
● Basicamente é uma de “PipelineResources” com parâmetros, tasks.
● Doc - https://github.com/tektoncd/pipeline/blob/master/docs/pipelines.md
12. Principais “Componentes” - PipelineRun
● PipelineRun é a instância em execução de um Pipeline.
● PipelineRun inicia um Pipeline e gerencia a criação de um TaskRun para cada Task sendo
executada no Pipeline.
● Doc - https://github.com/tektoncd/pipeline/blob/master/docs/pipelineruns.md
13. Principais “Componentes” - TaskRun
● Um TaskRun é criado automaticamente por um PipelineRun para cada tarefa em um pipeline.
É o resultado da execução de uma instância de uma Tarefa em um Pipeline.
● Também pode ser criado manualmente se uma tarefa for executada fora de um pipeline.
● Doc - https://github.com/tektoncd/pipeline/blob/master/docs/taskruns.md
14. Principais “Componentes” - PipelineResource
● Um PipelineResource é um objeto usado como entrada e saída para “tasks” de Pipeline.
● Por exemplo, se uma entrada for um repositório Git e uma saída for uma imagem de contêiner
construída a partir desse repositório Git, ambas são classificadas como PipelineResources
● PipelineResources atualmente oferece suporte a recursos Git, Imagens, recursos de cluster,
recursos de armazenamento e recursos CloudEvent.
● Doc - https://github.com/tektoncd/pipeline/blob/master/docs/resources.md
15. Principais “Componentes” - Trigger
● Um Trigger captura um evento externo, como um GitHub Push, Gitlab Issue, Docker Hub
Webhook, etc.
● Doc - https://github.com/tektoncd/triggers
16. Principais “Componentes” - Conditions
● Uma Condition se refere a uma validação ou verificação, que é executada antes que uma
Tarefa seja executada em seu Pipeline. As condições são como instruções if que realizam
testes lógicos, com um valor de retorno True ou False.
● Doc - https://github.com/tektoncd/pipeline/blob/master/docs/conditions.md