Tekton é uma solução nativa em nuvem para criar pipelines de CI/CD. Ele é composto por: Tekton Pipelines, que fornece os blocos de construção, e em componentes de suporte, como o Tekton CLI e o Tekton Catalog, que tornam o Tekton um ecossistema completo. A solução faz parte da CD Foundation, um projeto da Linux Foundation.
O Tekton é instalado e executado como uma extensão em um cluster Kubernetes e compreende um conjunto de Kubernetes Custom Resources que definem os blocos de construção que você pode criar e reutilizar para seus pipelines. Depois de instalado, o Tekton Pipelines fica disponível por meio da CLI do Kubernetes (kubectl) e por meio de chamadas de API, assim como os pods e outros recursos.
Quem a solução pode auxiliar?
- Engenheiros de plataforma: que constroem sistemas de CI/CD para os desenvolvedores em sua organização.
- Desenvolvedores: que usam esses sistemas de CI/CD para realizar seu trabalho.
- Time de operações: quando integrado a soluções de GitOps
Benefícios do Tekton?
Os seguintes benefícios para a construção e execução de pipelines CI/CD são entregues:
- Customizável: As entidades são totalmente personalizáveis, permitindo um alto grau de flexibilidade. Os engenheiros de plataforma podem definir um catálogo altamente detalhado de blocos de construção para os desenvolvedores usarem em uma ampla variedade de cenários.
- Reutilizável: As entidades são totalmente portáteis, portanto, uma vez definidas, qualquer pessoa dentro da organização pode usar um determinado pipeline e reutilizar seus blocos de construção. Isso permite que os desenvolvedores criem rapidamente pipelines complexos sem “reinventar a roda”.
- Expansível: O Catálogo é um repositório orientado pela comunidade de blocos de construção Tekton. Você pode criar rapidamente novos pipelines e expandir os existentes usando componentes pré-fabricados do Catálogo.
- Padronizado: O Tekton é instalado e executado como uma extensão em seu cluster Kubernetes e usa o modelo de recursos bem estabelecido do Kubernetes. As cargas de trabalho são executadas dentro de contêineres.
- Escalável: Para aumentar sua capacidade de carga de trabalho, você pode simplesmente adicionar nós ao seu cluster. A solução escala com seu cluster sem a necessidade de redefinir suas alocações de recursos ou quaisquer outras modificações em seus pipelines.
Componentes
- Tekton Pipelines é a base. Ele define um conjunto de recursos personalizados do Kubernetes que atuam como blocos de construção a partir dos quais você pode montar pipelines de CI/CD.
- Tekton Triggers permite instanciar pipelines com base em eventos. Por exemplo, você pode acionar a execução de um pipeline toda vez que um PR (pull requests) for mesclado em um repositório GitHub.
- CLI do Tekton fornece uma interface de linha de comando chamada tkn, construída sobre a CLI do Kubernetes, que permite interagir com o Tekton.
- Tekton Dashboard é uma interface Web para o Tekton Pipelines que exibe informações sobre a execução de seus pipelines.
- Catálogo Tekton é um repositório de blocos de construção Tekton de alta qualidade, fornecidos pela comunidade – Tarefas, Pipelines e assim por diante – que estão prontos para uso em seus próprios pipelines.
- Tekton Hub é uma interface Web para acessar o Catálogo.
- Tekton Operator permite instalar, atualizar e remover projetos em seu cluster Kubernetes de maneira automatizada.
- Tekton Chain fornece ferramentas para gerar, armazenar e assinar a procedência dos artefatos criados com Tekton Pipelines.
O que posso fazer com o Tekton?
A solução apresenta o conceito de Tarefas, que especificam as cargas de trabalho que você deseja executar:
Task – define uma série de etapas ordenadas e cada etapa invoca uma ferramenta de construção específica em um conjunto específico de entradas e produz um conjunto específico de saídas, que podem ser usadas como entradas na próxima etapa.
Pipeline – define uma série de tasks ordenadas e, assim como as etapas em uma task, uma task em um pipeline pode usar a saída de uma task executada anteriormente como entrada.
TaskRun – instancia uma task específica para executar em um determinado conjunto de entradas e produzir um determinado conjunto de saídas.
PipelineRun – instancia um Pipeline específico para executar em um conjunto específico de entradas e produzir um conjunto específico de saídas para destinos específicos.
Cada tarefa é executada em seu próprio pod do Kubernetes. Assim, por padrão, as tarefas dentro de um pipeline não compartilham dados. Para compartilhar dados entre Tarefas, você deve configurar explicitamente cada Tarefa para disponibilizar suas saídas para a próxima Tarefa e para ingerir as saídas de uma Tarefa executada anteriormente como suas entradas, o que for aplicável.
O Tekton é um framework de código aberto poderoso e flexível. Com ele é possível criar sistemas CI/CD, permitindo que os desenvolvedores criem, testem e implantem seus aplicativos em provedores de nuvem pública ou em sistemas locais. O Tekton também pode se integrar com ferramentas de GitOps como o ArgoCD. Dessa maneira é possível incluir componentes de infraestrutura, segurança e desenvolvimento em uma única esteira de entrega.