Runner architecture

Codefresh Runner components

This article focuses on the architecture of the Codefresh Runner.

Runner architecture

The diagram shows a high-level view of the Codefresh Runner and its components.

Codefresh Runner architecture

Codefresh Runner architecture

The Codefresh Runner includes two main components:

Runner Agent

The Codefresh Runner, often referred to as the Agent, is responsible for executing and managing tasks within the Runtime Environment. Main functions include:

Executing and terminating pipeline builds. Creating and deleting necessary resources, such as engine and DinD pods, as well as DinD PVCs.

Runtime Environment

The Runtime Environment is attached to the Codefresh Runner, and includes the following components:

Volume Provisioner
The Volume Provisioner is the central component that controls all Codefresh services, and performs the following functions:

  • Acts as a Persistent Volume (PV) Kubernetes controller
  • Manages DinD Persistent Volume Claim s(PVCs)
  • Optimizes Docker caching volumes to enhance cache utilization for Codefresh builds

Volume Cleaners
The Volume Cleaners are responsible for PV management based on the environment setup:

  • LV-Monitor: Installed when local volumes are used to allocate disk space for PVs on the cluster nodes.
  • DinD Volume Cleanup: Installed instead of the LV Monitor when local volumes are not used, to delete PVs according to retention policies.

Cluster Monitor
Optional. When installed, provides visibility on cluster resources in Codefresh, through the Kubernetes Services dashboard.

App-Proxy
Another optional component, the App-Proxy serves as an extension to the Codefresh platform. Its purpose is to enable remote operations, such as displaying Git repositories for Git providers behind firewalls and creating webhooks, while maintaining security.

Runner installation for pipelines
GitOps Runtimes