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:

ValueDescription
"./" or "../" prefixRelative path to local chart
"oci://..."OCI registry chart URL
Chart namePublic 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 engine
  • kaniko - Kaniko build engine

docker.app (Required when using docker)

Configuration for the main application container:

  • dockerfilePath - Required. Path to Dockerfile relative to repo root
  • command - Override container entrypoint
  • arguments - Arguments passed to the command. Use %%SPLIT%% as a delimiter for spaces (e.g., -c%%SPLIT%%npm run start)
  • env - Environment variables
  • ports - 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

FieldTypeRequiredDescription
chart.namestringYesChart name or path
chart.repoUrlstringFor publicHelm repository URL
chart.versionstringNoChart version
chart.valuesarrayNoInline Helm values
chart.valueFilesarrayNoValue file paths
repositorystringFor buildsGitHub repository
branchNamestringFor buildsBranch to build from
dockerobjectNoDocker build config
argsstringNoAdditional Helm arguments
versionstringNoHelm CLI version
deploymentMethodstringNo"native" or "ci"
envLensbooleanNoEnable 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.