Site: Planekeeper Docs — Monitor software versions across your stack. Planekeeper tracks releases, gathers version data, and alerts on drift.
Section: Recipes > Monitor Helm chart versions
Source: https://docs.planekeeper.com/recipes/monitor-helm-charts/
Title: Monitor Helm chart versions
Author: Planekeeper
Description: Step-by-step guide to monitoring Helm chart versions with gather jobs, scrape jobs, rules, and alert configs.
Word count: 716
Reading time: 4 min

Contents:
- [Prerequisites](#prerequisites)
- [Step 1: Create a gather job for upstream releases](#step-1-create-a-gather-job-for-upstream-releases)
- [Step 2: Create a scrape job for your deployed version](#step-2-create-a-scrape-job-for-your-deployed-version)
- [Step 3: Create a monitoring rule](#step-3-create-a-monitoring-rule)
- [Step 4: Create an alert config](#step-4-create-an-alert-config)
- [Step 5: Verify the setup](#step-5-verify-the-setup)
- [Alternative: use Helm Sync for bulk monitoring](#alternative-use-helm-sync-for-bulk-monitoring)

***

# Monitor Helm chart versions


This recipe walks through setting up end-to-end monitoring for a Helm chart. You will track the upstream chart releases, scrape your deployed version, and create a rule that alerts you when you fall behind.

The example monitors the Argo CD Helm chart, but the steps apply to any chart.

---

## Prerequisites

- A running Planekeeper instance with at least one active agent
- A Git repository containing a `Chart.yaml` or `values.yaml` that references the chart version you deploy

---

## Step 1: Create a gather job for upstream releases

The gather job fetches available versions from the Helm chart repository.

1. Navigate to **Gather Jobs** in the sidebar
2. Click **Create Gather Job**
3. Fill in the fields:

| Field | Value |
|-------|-------|
| Name | `Argo CD Helm Releases` |
| Source Type | `helm_repository` |
| Artifact Name | `argoproj.github.io/argo-helm/argo-cd` |
| Schedule | `0 */6 * * *` (every 6 hours) |

4. Click **Create**

The artifact name for Helm repositories follows the format `<repo-host>/<repo-path>/<chart-name>`.

> **success:** 
**Filter out old versions**

Use the **Tag Filter** field with a regex like `^[5-9]\.` to only track versions 5.x and above, reducing noise from legacy releases.


---

## Step 2: Create a scrape job for your deployed version

The scrape job clones your Git repository and extracts the version you have deployed.

1. Navigate to **Scrape Jobs** in the sidebar
2. Click **Create Scrape Job**
3. Fill in the fields:

| Field | Value |
|-------|-------|
| Name | `ArgoCD Chart Version` |
| Repository URL | `https://github.com/myorg/k8s-manifests.git` |
| Target File | `charts/argo-cd/Chart.yaml` |
| Parser Type | `yq` |
| Parse Expression | `.version` |
| Ref | `main` |
| Schedule | `0 9 * * 1-5` (weekdays at 9am) |

4. Click **Create**

> **info:** 
**appVersion vs version**

Helm's `Chart.yaml` has two version fields. The `version` field tracks the chart version. The `appVersion` field tracks the application version inside the chart. Choose the one that matches what your gather job tracks.


---

## Step 3: Create a monitoring rule

The rule defines how staleness is measured and what severity thresholds trigger alerts.

1. Navigate to **Rules** in the sidebar
2. Click **Create Rule**
3. Fill in the fields:

| Field | Value |
|-------|-------|
| Name | `Helm Chart Minors Behind` |
| Rule Type | `minors_behind` |
| Moderate Threshold | `2` |
| High Threshold | `5` |
| Critical Threshold | `10` |
| Stable Only | Checked |

4. Click **Create**

With these thresholds:

- 2-4 minor versions behind = **moderate** alert
- 5-9 minor versions behind = **high** alert
- 10+ minor versions behind = **critical** alert

Enabling **Stable Only** ensures prereleases (alpha, beta, rc) are excluded from the "latest version" comparison.

---

## Step 4: Create an alert config

The alert config links the scrape job, gather job, and rule together.

1. Navigate to **Alert Configs** in the sidebar
2. Click **Create Alert Config**
3. Fill in the fields:

| Field | Value |
|-------|-------|
| Name | `ArgoCD Version Check` |
| Scrape Job | Select `ArgoCD Chart Version` |
| Gather Job | Select `Argo CD Helm Releases` |
| Rule | Select `Helm Chart Minors Behind` |

4. Click **Create**

Planekeeper immediately evaluates the rule and creates an alert if your deployed version violates the thresholds. From this point forward, every time the scrape or gather job completes, the rule re-evaluates automatically.

---

## Step 5: Verify the setup

1. Go to the **Dashboard** to check for any alerts
2. Navigate to **Gather Jobs** and confirm the Argo CD job has run and collected releases
3. Navigate to **Scrape Jobs** and confirm your version was extracted
4. If both jobs have completed, any alert generated appears on the Dashboard

---

## Alternative: use Helm Sync for bulk monitoring

If you monitor many charts from the same Helm repository, use a **Helm Sync job** instead of creating individual gather jobs. A Helm Sync job scans the repository's `index.yaml`, discovers all charts, and creates a child gather job for each one automatically.

1. Navigate to **Gather Jobs** in the sidebar
2. Click **Create Gather Job**
3. Select **Helm Sync** as the source type
4. Provide the repository URL (for example, `https://argoproj.github.io/argo-helm`)
5. Optionally set a **chart filter** regex to limit which charts are discovered
6. Configure **default schedule**, **default tag filter**, and **default version regex** — these are inherited by all child gather jobs
7. Enable **auto delete orphans** to clean up gather jobs when charts are removed from the repository
8. Set a **schedule** for the sync job itself (how often to re-scan for new charts)
9. Click **Create**

The sync job runs, discovers charts, and creates a `helm_repository` gather job for each one. From that point, child jobs run on their own schedule to fetch releases.

> **success:** 
**Chart filter**

Use the chart filter to narrow monitoring to specific charts. For example, `^(argo-cd|argo-workflows)$` monitors only those two charts from the Argo Helm repository.


See [Helm Sync jobs](https://docs.planekeeper.com/guides/gather-jobs/#helm-sync-jobs) for the full reference.


---

## Related

- Next: [Monitor Node.js dependencies](https://docs.planekeeper.com/recipes/monitor-node-dependencies/page.md) — Recipe for monitoring Node.js package versions by scraping package.json and tracking upstream releases from GitHub.
- Section: [Recipes](https://docs.planekeeper.com/recipes/index.md)
