CC-Utils - Build Pipeline Reference Manual

Introduction

In order to run continuous delivery workloads for all components contributing to the Gardener project, we operate a central service.

Typical workloads encompass the execution of tests and builds of a variety of technologies, as well as building and publishing container images, typically containing build results.

We are building our CI/CD offering around some principles:

  • container-native - each workload is executed within a container environment. Components may customise used container images

  • automation - pipelines are generated without manual interaction

  • self-service - components customise their pipelines by changing their sources

  • standardisation

As an execution environment for CI/CD workloads, we use Concourse. We however abstract from the underlying “build executor” and instead offer a Pipeline Definition Contract, through which components declare their build pipelines as required.

Terms, Definitions and Concepts

Although we are using Concourse as underlying build scheduler, we use some terms differently as done in the context of concourse.

term

in Gardener CI/CD

Pipeline

a set of jobs defined in .ci/pipeline_definitions

Job

a graph of build steps

Step

an executable with a container image as environment

Trait

adds certain semantics to a build job (does not exist in concourse)

Indices and tables