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.
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.