Helm Service
Deploy services using Helm charts - local, OCI, or public repositories
The helm service type deploys applications using Helm charts. It supports local charts, OCI registries, and public Helm repositories. You can optionally include a Docker build step for custom images.
For advanced Helm deployment features like native Helm and environment variable mapping, see the Native Helm Deployment guide.
Examples
Local chart with Docker build:
Chart Configuration
The chart section is required and defines which Helm chart to deploy.
Commonly used charts can be configured in the global_config table to reuse
chart configuration across multiple services.
chart.name (Required)
The chart name can be one of:
| Value | Description |
|---|---|
"./" or "../" prefix | Relative path to local chart |
"oci://..." | OCI registry chart URL |
| Chart name | Public chart name from a repository |
chart.repoUrl
URL of the Helm repository (required for public charts).
chart.version
Specific chart version to deploy.
chart.values
Array of Helm values in key=value format.
chart.valueFiles
Array of value file paths relative to the repository root.
Docker Configuration
The optional docker section defines how to build a custom image. This uses the same configuration as the GitHub service docker section.
docker.defaultTag
The default Docker image tag, typically matching the branch name.
docker.builder
Configuration for the Docker build process. The engine field specifies which build engine to use:
buildkit- BuildKit engine (default)codefresh- Codefresh build enginekaniko- Kaniko build engine
docker.app (Required when using docker)
Configuration for the main application container:
dockerfilePath- Required. Path to Dockerfile relative to repo rootcommand- Override container entrypointarguments- Arguments passed to the command. Use%%SPLIT%%as a delimiter for spaces (e.g.,-c%%SPLIT%%npm run start)env- Environment variablesports- Exposed container ports
docker.init (Optional)
Configuration for an init container that runs before the main application. Uses the same fields as docker.app.
Fields Reference
| Field | Type | Required | Description |
|---|---|---|---|
chart.name | string | Yes | Chart name or path |
chart.repoUrl | string | For public | Helm repository URL |
chart.version | string | No | Chart version |
chart.values | array | No | Inline Helm values |
chart.valueFiles | array | No | Value file paths |
repository | string | For builds | GitHub repository |
branchName | string | For builds | Branch to build from |
docker | object | No | Docker build config |
args | string | No | Additional Helm arguments |
version | string | No | Helm CLI version |
deploymentMethod | string | No | "native" or "ci" |
envLens | boolean | No | Enable environment lens ingress banner |
Templated Variables
Use templated variables in chart values to reference dynamic deployment values. See the Template Variables guide for the complete list.
Use triple braces {{{variable}}} for Lifecycle template variables. This prevents Helm from trying to process them as Helm template functions.
Native Helm Deployment
For more control over Helm deployments, enable native Helm:
Native Helm provides:
- Direct Kubernetes job execution
- Real-time deployment logs
- Better handling of concurrent deployments
- Full Helm argument control
See the Native Helm Deployment guide for details.