Site: Planekeeper Docs — Monitor software versions across your stack. Planekeeper tracks releases, gathers version data, and alerts on drift.
Section: Feature Guides > Helm Sync jobs
Source: https://docs.planekeeper.com/guides/helm-sync-jobs/
Title: Helm Sync jobs
Author: Planekeeper
Description: Automatically discover and monitor Helm charts from a repository using Helm Sync jobs.
Word count: 655
Reading time: 4 min

Contents:
- [How it works](#how-it-works)
- [Create a Helm Sync job](#create-a-helm-sync-job)
- [Example: Monitor all Argo Helm charts](#example-monitor-all-argo-helm-charts)
- [Example: Monitor specific charts from a large repository](#example-monitor-specific-charts-from-a-large-repository)
- [Managing child jobs](#managing-child-jobs)
- [Orphan cleanup](#orphan-cleanup)
- [Pre-seeded Helm Sync jobs](#pre-seeded-helm-sync-jobs)
- [Tips](#tips)

***

# Helm Sync jobs


If you manage many Helm charts from the same repository, creating individual gather jobs for each one is tedious. **Helm Sync jobs** automate this by scanning a Helm repository's `index.yaml`, discovering all charts, and creating child gather jobs for each one.

## How it works

1. The Helm Sync job fetches the repository's `index.yaml`
2. It discovers all charts (optionally filtered by a regex)
3. For each chart, it creates a `helm_repository` gather job if one doesn't already exist
4. Child gather jobs inherit default settings (schedule, tag filter, version regex) from the sync job
5. Optionally, charts that disappear from the repository have their gather jobs cleaned up automatically

## Create a Helm Sync job

1. Open the **Gather Jobs** page from the sidebar.
2. Click **Create Gather Job**.
3. Select **Helm Sync** as the source type.
4. Fill in the form:

| Field | Required | Description |
|-------|----------|-------------|
| **Name** | No | A label for this sync job |
| **Repository URL** | Yes | The Helm repository URL (for example, `https://argoproj.github.io/argo-helm`) |
| **Chart filter** | No | Regex to include only matching chart names (for example, `^argo-cd$` for a single chart) |
| **Default schedule** | No | Cron schedule inherited by all child gather jobs |
| **Default tag filter** | No | Tag filter regex inherited by child gather jobs |
| **Default version regex** | No | Version regex inherited by child gather jobs |
| **Auto delete orphans** | No | Remove child gather jobs when their chart disappears from the repository |
| **Schedule** | No | Cron schedule for the sync job itself (how often to re-scan for new charts) |

5. Click **Create**.

## Example: Monitor all Argo Helm charts

To monitor all charts in the Argo Helm repository:

- **Repository URL:** `https://argoproj.github.io/argo-helm`
- **Default schedule:** `0 */6 * * *` (child jobs run every 6 hours)
- **Schedule:** `0 0 * * *` (re-scan for new charts daily)
- **Auto delete orphans:** Enabled

This creates a gather job for every chart in the repo (argo-cd, argo-workflows, argo-rollouts, etc.) and keeps the list up to date as charts are added or removed.

## Example: Monitor specific charts from a large repository

Some Helm repositories contain dozens of charts but you only need a few. Use the **chart filter** to limit discovery:

- **Repository URL:** `https://prometheus-community.github.io/helm-charts`
- **Chart filter:** `^(kube-prometheus-stack|alertmanager)$`
- **Default schedule:** `0 3 * * *` (daily at 3 AM)

This creates gather jobs only for `kube-prometheus-stack` and `alertmanager`, ignoring all other charts in the repository.

> **success:** 
The chart filter is a regex matched against chart names. Use `^name$` anchors for exact matches, or `name` for substring matches.


## Managing child jobs

Child gather jobs created by a Helm Sync job are normal gather jobs -- you can view, edit, trigger, and delete them individually. They appear on the Gather Jobs page with a reference to their parent sync job.

If you delete a Helm Sync job, its child gather jobs are **not** automatically deleted. You must remove them manually if they are no longer needed.

## Orphan cleanup

When **Auto delete orphans** is enabled, the Helm Sync job removes child gather jobs for charts that no longer appear in the repository's `index.yaml`. This keeps your monitoring in sync with the repository's actual contents.

Without orphan cleanup, child gather jobs for removed charts remain in your configuration but will fail when they try to fetch releases for a chart that no longer exists.

## Pre-seeded Helm Sync jobs

Planekeeper ships with approximately 29 pre-seeded global Helm Sync jobs covering popular infrastructure repositories (ingress-nginx, cert-manager, Argo, Bitnami, etc.). These provide immediate upstream release data without any configuration.

Use the **scope filter** on the Gather Jobs page to see global Helm Sync jobs alongside your organization's jobs.

## Tips

- Set a reasonable sync schedule (daily or weekly) -- Helm repositories don't change frequently enough to warrant hourly syncs.
- Use **Auto delete orphans** for repositories under active development where charts may be added and removed regularly.
- Review the child gather jobs after the first sync to verify the chart filter matched the expected charts.
- If a repository has many charts but you only need a few, use the chart filter to avoid creating unnecessary gather jobs.


---

## Related

- Next: [Monitoring Rules](https://docs.planekeeper.com/guides/rules/page.md) — Define staleness thresholds with monitoring rules to detect when deployed software falls behind upstream releases.
- Section: [Feature Guides](https://docs.planekeeper.com/guides/index.md)
