Monitor Helm chart versions
Step-by-step guide to monitoring Helm chart versions with gather jobs, scrape jobs, rules, and alert configs.
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.yamlorvalues.yamlthat 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.
- Navigate to Gather Jobs in the sidebar
- Click Create Gather Job
- 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) |
- Click Create
The artifact name for Helm repositories follows the format <repo-host>/<repo-path>/<chart-name>.
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.
- Navigate to Scrape Jobs in the sidebar
- Click Create Scrape Job
- 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) |
- Click Create
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.
- Navigate to Rules in the sidebar
- Click Create Rule
- 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 |
- 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.
- Navigate to Alert Configs in the sidebar
- Click Create Alert Config
- 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 |
- 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
- Go to the Dashboard to check for any alerts
- Navigate to Gather Jobs and confirm the Argo CD job has run and collected releases
- Navigate to Scrape Jobs and confirm your version was extracted
- 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.
- Navigate to Gather Jobs in the sidebar
- Click Create Gather Job
- Select Helm Sync as the source type
- Provide the repository URL (for example,
https://argoproj.github.io/argo-helm) - Optionally set a chart filter regex to limit which charts are discovered
- Configure default schedule, default tag filter, and default version regex — these are inherited by all child gather jobs
- Enable auto delete orphans to clean up gather jobs when charts are removed from the repository
- Set a schedule for the sync job itself (how often to re-scan for new charts)
- 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.
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 for the full reference.