Planekeeper is currently in alpha development. Features and APIs may change. Feedback is welcome! Request early access to get started.

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.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:
FieldValue
NameArgo CD Helm Releases
Source Typehelm_repository
Artifact Nameargoproj.github.io/argo-helm/argo-cd
Schedule0 */6 * * * (every 6 hours)
  1. 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:
FieldValue
NameArgoCD Chart Version
Repository URLhttps://github.com/myorg/k8s-manifests.git
Target Filecharts/argo-cd/Chart.yaml
Parser Typeyq
Parse Expression.version
Refmain
Schedule0 9 * * 1-5 (weekdays at 9am)
  1. 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:
FieldValue
NameHelm Chart Minors Behind
Rule Typeminors_behind
Moderate Threshold2
High Threshold5
Critical Threshold10
Stable OnlyChecked
  1. 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:
FieldValue
NameArgoCD Version Check
Scrape JobSelect ArgoCD Chart Version
Gather JobSelect Argo CD Helm Releases
RuleSelect Helm Chart Minors Behind
  1. 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 for the full reference.