Skip to main content

Helm Components

Define Helm releases in stack manifests when you want Atmos to deploy charts — local, remote-repository, or OCI — alongside Terraform, Kubernetes, Helmfile, Packer, and Ansible components. A Helm component describes which chart and version to use, which values to apply, and how the result should be deployed for each stack.

Available Configuration Sections

Helm components use the same stack sections as other Atmos components, so the release can inherit values, run hooks, use Auth, declare dependencies, and be included in affected runs.

metadata
Component behavior, inheritance, and base component selection.
vars
Variables available to stack template rendering.
env
Environment variables applied before Helm runs, such as KUBECONFIG.
settings
Integration metadata and legacy dependency settings.
dependencies
Cross-component ordering for --all and --affected runs.

Helm-Specific Sections

chart (required)
The chart reference: a local path (. or ./charts/app), a repo/name reference, a bare name used with repository, or an oci:// reference.
version
The chart version constraint (for repository and OCI charts).
repository
An explicit HTTP chart repository URL used with a bare chart name.
repositories
A list of chart repositories used to resolve repo/name chart references. Entries support name, url, optional basic auth, TLS files, pass_credentials_all, and insecure_skip_tls_verify. Atmos adds/updates these repositories in Helm's local repository config before rendering or deploying.
namespace
The target Kubernetes namespace. Defaults to default.
name
The Helm release name. Defaults to the component's last path segment.
values
The Helm chart values, merged through Atmos inheritance. This map is the values passed to the chart.
values_files
A list of value files layered underneath the inline values (templated, in listed order).
render
Default output for atmos helm template (output.path and output.split).
provision
Delivery targets for apply/deploy — the cluster (default) or an external target such as a Git deployment repository.

Reusable repository defaults can also be configured under components.helm.repositories in atmos.yaml. Component-level repositories override global entries with the same name.

Diffs

atmos helm diff shows a real unified diff (via the embedded helm-diff library — no plugin to install) against the deployed release, a local manifest file, or the manifests in a provision git deployment repository (the offline, GitOps producer-side diff). Helm CLI subcommand plugins such as helm-secrets are not run by the native component — use a helmfile component for those.

Example

stacks/catalog/monitoring.yaml
components:
helm:
monitoring:
chart: prometheus-community/kube-prometheus-stack
version: "65.1.1"
repositories:
- name: prometheus-community
url: https://prometheus-community.github.io/helm-charts
namespace: monitoring
values:
grafana:
enabled: true
dependencies:
components:
- cert-manager
provision:
default: cluster
targets:
cluster:
kind: kubernetes
deployment-repo:
kind: git
repository: deployments
path: "clusters/{{ .vars.stage }}/monitoring"

See the atmos helm command reference for the full workflow.

To inspect which repositories are associated with Helm components, run:

atmos helm repo list --stack=ue2-dev
atmos helm repo list monitoring --format=json