# Helm Configuration

Tell Atmos where native Helm component files live. These project-wide settings
keep stack files focused on what to deploy, while `atmos.yaml` defines how Helm
components are found. Charts are rendered and deployed through the Helm Go SDK,
so no `helm` or `helmfile` binary is required.

## Configuration

**File:** `atmos.yaml`

```yaml
components:
  helm:
    # Base path to native Helm component directories (where local charts live).
    base_path: components/helm

    # Generate files from the component `generate` section before operations.
    auto_generate_files: false

    # Reusable chart repositories available to native Helm components.
    repositories:
      - name: prometheus-community
        url: https://prometheus-community.github.io/helm-charts
```

## Configuration Reference

- **`base_path`**
  Base directory for native Helm components. Local charts referenced with a relative 
  chart
   path resolve under each component directory. Defaults to 
  components/helm
  .
- **`auto_generate_files`**
  When 
  true
  , Atmos renders the component 
  generate
   section into the component directory before Helm operations. Defaults to 
  false
  .
- **`repositories`**

  Reusable Helm chart repositories. Components can reference these with
  chart: repo-name/chart-name. Component-level
  repositories entries override global entries with the same
  name.

## Helm Repositories

Global repositories are declared once in `atmos.yaml`:

**File:** `atmos.yaml`

```yaml
components:
  helm:
    repositories:
      - name: prometheus-community
        url: https://prometheus-community.github.io/helm-charts
      - name: internal
        url: https://charts.example.com
        username: !env HELM_REPO_USERNAME
        password: !env HELM_REPO_PASSWORD
        pass_credentials_all: true
```

Supported repository fields:

- **`name` (required)**
  Repository name used in 
  `repo/chart`
   references.
- **`url` (required)**
  HTTP chart repository URL.
- **`username`, `password`**
  Basic authentication credentials for the repository.
- **`pass_credentials_all`**
  Pass credentials to chart URLs on all domains, matching Helm's 
  `--pass-credentials`
   behavior.
- **`cert_file`, `key_file`, `ca_file`**
  TLS client certificate, key, and CA bundle files.
- **`insecure_skip_tls_verify`**
  Skip TLS certificate verification for repository access.

Before `template`, `diff`, `apply`, or `deploy`, Atmos adds or updates these
repositories in Helm's local repository config and downloads their indexes into
Helm's repository cache. `delete` does not update repositories.

See the [`atmos helm`](/cli/commands/helm/usage) command and the
[Helm stack configuration](/stacks/components/helm) for component-level fields.
