• Stars
    star
    1,054
  • Rank 43,744 (Top 0.9 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Extension for Visual Studio Code - Intellisense in helm-templates from the values.yaml

Helm-Intellisense

Visual Studio Marketplace Installs Visual Studio Marketplace Rating (Stars) GitHub Repo stars GitHub issues

Extension to help writing Helm-Templates by providing intellisense

Demo Gif

Features

  • The values.yaml file of the chart will be read and evaluated automatically to provide intellisense.
  • Autocomplete will also work for all Named Templates defined in the any .tpl file.
  • Autocomplete for defined helm variables.
  • Compatible with Windows and Linux/Unix.
  • Support for custom named value files is provided (see settings section below).
  • Lint command to validate correct values templating and usage of NamedTemplates.
  • Support and autocomplete for yaml anchors and labels
  • The extension is compatible with the Kubernetes extension.
  • Working with language type yaml and helm-template.

Commands

  • Helm-Intellisense: Lint : This command parses the currently active document and validates that all paths(like .Values.foo.bar) point to valid values.
  • Helm-Intellisense: Lint Chart : Equivalent to Lint command but for all files in the chart of the file that is currently active.

Settings

Setting Description
helm-intellisense.customValueFileNames Defines list of possible files containing values
(default: values.yaml)
helm-intellisense.lintFileOnSave If set to true the Helm-Intellisense: Lint command will be executed on save (default: true)
helm-intellisense.excludeFromLinting Define a list of filenames which should be excluded from linting.
Wildcards are also possible (Example: *.gotmpl)

Multiple value files (overriding)

When mulitple value files are defined they are parsed from the bottom up:

"helm-intellisense.customValueFileNames": [
    "prod-values.yaml",
    "dev-values.yaml",
    "values.yaml"
]

In this case values will be overwritten/merged by dev and dev by prod. This also means that the linter will only throw an error if a certain key is not found in any of the specified files.