Hamburger Cross Icon
Helm Collector - Lunar Collector

Helm Collector

Collector Beta Orchestration

Parse Helm charts to extract chart metadata, lint validation results, values schema presence, and dependency version constraints. Runs helm lint on discovered charts and normalizes results for policy evaluation.

Add helm to your lunar-config.yml:
uses: github://earthly/lunar-lib/collectors/helm@v1.0.5

What This Integration Collects

This integration includes 2 collectors that gather metadata from your systems.

Collector code

charts

Finds all Helm charts in the repository (directories containing Chart.yaml) and collects:

  • Chart metadata (name, version, appVersion)
  • Helm lint validation results and errors
  • Values schema presence (values.schema.json)
  • Chart dependencies with version constraints
helm helm chart chart.yaml values.yaml values schema helm lint helm dependencies
Book a demo
Collector ci-after-command

cicd

Tracks helm commands executed in CI pipelines (install, upgrade, template, package, etc.). Records every invocation for audit trails and captures the helm version used.

helm install helm upgrade helm template helm package ci helm
Book a demo

How Collectors Fit into Lunar

Lunar watches your code and CI/CD systems to collect SDLC data from config files, test results, IaC, deployment configurations, security scans, and more.

Collectors are the automatic data-gathering layer. They extract structured metadata from your repositories and pipelines, feeding it into Lunar's centralized database where guardrails evaluate it to enforce your engineering standards.

Learn How Lunar Works
1
Collectors Gather Data This Integration
Triggered by code changes or CI pipelines, collectors extract metadata from config files, tool outputs, test results, and scans
2
{ } Centralized as JSON
All data merged into each component's unified metadata document
3
Guardrails Enforce Standards
Real-time feedback in PRs and AI workflows

Example Collected Data

This collector writes structured metadata to the Component JSON. Here's an example of the data it produces:

{ } component.json Component JSON
{
  "k8s": {
    "helm": {
      "source": {
        "tool": "helm",
        "version": "3.14.0"
      },
      "charts": [
        {
          "path": "charts/api",
          "name": "api",
          "version": "1.2.3",
          "app_version": "2.0.0",
          "version_is_semver": true,
          "lint_passed": true,
          "lint_errors": [],
          "has_values_schema": true,
          "schema_path": "charts/api/values.schema.json",
          "dependencies": [
            {
              "name": "postgresql",
              "version": "~11.9.0",
              "repository": "https://charts.bitnami.com/bitnami",
              "is_pinned": true
            },
            {
              "name": "redis",
              "version": "*",
              "repository": "https://charts.bitnami.com/bitnami",
              "is_pinned": false
            }
          ]
        }
      ],
      "cicd": {
        "cmds": [
          {"cmd": "helm upgrade --install api ./charts/api -f values-prod.yaml", "version": "3.14.0"},
          {"cmd": "helm template api ./charts/api", "version": "3.14.0"}
        ],
        "source": {"tool": "helm", "integration": "ci"}
      }
    }
  }
}

Configuration

Configure this collector in your lunar-config.yml.

Inputs

Input Required Default Description
find_command Optional find . -type f \( -name 'Chart.yaml' -o -name 'Chart.yml' \) Command to find Chart.yaml files (must output one file path per line)
lint_strict Optional false Enable strict mode for helm lint (true/false)

Documentation

View on GitHub

Helm Collector

Parse Helm charts and collect chart metadata, lint results, and dependency information.

Overview

This collector finds all Helm charts in a repository (directories containing Chart.yaml) and extracts structured metadata. It runs helm lint on each chart, parses version information, checks for a values.schema.json file, and enumerates chart dependencies with their version constraints. The collector outputs normalized data under .k8s.helm for policy evaluation.

Collected Data

This collector writes to the following Component JSON paths:

Path Type Description
.k8s.helm.source object Tool metadata (tool name and version)
.k8s.helm.charts[] array Discovered Helm charts with metadata
.k8s.helm.charts[].path string Chart directory path
.k8s.helm.charts[].name string Chart name from Chart.yaml
.k8s.helm.charts[].version string Chart version
.k8s.helm.charts[].version_is_semver boolean Whether version follows semver
.k8s.helm.charts[].lint_passed boolean Whether helm lint passed
.k8s.helm.charts[].lint_errors array Lint error messages (empty if passed)
.k8s.helm.charts[].app_version string App version from Chart.yaml (appVersion field)
.k8s.helm.charts[].has_values_schema boolean Whether values.schema.json exists
.k8s.helm.charts[].schema_path string Path to values schema file
.k8s.helm.charts[].dependencies[] array Chart dependencies from Chart.yaml
.k8s.helm.charts[].dependencies[].name string Dependency name
.k8s.helm.charts[].dependencies[].version string Version constraint
.k8s.helm.charts[].dependencies[].repository string Repository URL for the dependency
.k8s.helm.charts[].dependencies[].is_pinned boolean Whether version is constrained (not * or empty)
.k8s.helm.cicd.cmds[] array Helm commands executed in CI
.k8s.helm.cicd.source object CI integration metadata

Collectors

This integration provides the following collectors (use include to select a subset):

Collector Description
charts Collects Helm chart metadata, lint results, schema presence, and dependencies
cicd Tracks helm commands executed in CI (install, upgrade, template, package)

Installation

Add to your lunar-config.yml:

collectors:
  - uses: github://earthly/lunar-lib/collectors/helm@v1.0.0
    on: ["domain:your-domain"]  # Or use tags like [kubernetes, helm]
    # with:
    #   find_command: "find ./charts -name 'Chart.yaml'"  # Custom find command
    #   lint_strict: "true"  # Enable strict lint mode

Open Source

This collector is open source and available on GitHub. Contribute improvements, report issues, or fork it for your own use.

View Repository

Ready to Automate Your Standards?

See how Lunar can turn your AGENTS.md, engineering wiki, compliance docs, or postmortem action items into automated guardrails with our 100+ built-in guardrails.

Works with any process
check AI agent rules & prompt files
check Post-mortem action items
check Security & compliance policies
check Testing & quality requirements
Automate Now
Paste your AGENTS.md or manual process doc and get guardrails in minutes
Book a Demo