Search code examples
kubernetestektontekton-pipelines

why tekton execution unit is pod, not a container?


Currently I am using Jenkins on kubernetes and wanted to migrate to tekton because trying achieve CI steps as a code (similar to Helm chart for CD steps). Just wondering about Tekton architecture -

why every task creates different pod rather than creating different containers in a single pod. Creating multiples pod leads resources locking as every pod will hold cpus/memory (default) till pod receives SIGTERM.


Solution

  • Just wondering about Tekton architecture - why every task creates different pod rather than creating different containers in a single pod?

    This is a design choice that was made early in the project. They want Tasks to be a reusable component with, e.g. parameters and results.

    But you are right that it leads to problems when it comes to resource allocation. There are on-going work for executing a whole Pipeline within a single Pod, see Tekton Enhancement Proposal 44