Helm

kind: helm

Description

The helm crawler looks recursively for all Helm chart from a specific root directory. Then for each of them, it tries to update both Helm Chart dependencies and docker images specified in values.yaml.

Regarding Docker image updates, Updatecli looks for the following pattern

image:
  repository: ghcr.io/updatecli/updatecli
  tag: 0.37.0

or

images:
  backend:
      repository: ghcr.io/updatecli/updatemonitor
      tag: 0.1.0
  front:
      repository: ghcr.io/updatecli/updatemonitor-ui
      tag: 0.1.0

This crawler can be enabled either automatically with default behavior by running updatecli diff --experimental from a directory containing the files to update. Or by providing a manifest.

Manifests

Parameters

Name Type Description Required
auths object

auths provides a map of registry credentials where the key is the registry URL without scheme if empty, updatecli relies on OCI credentials such as the one used by Docker.

example:

auths:
  "ghcr.io":
    token: "xxx"
  "index.docker.io":
    username: "admin"
    password: "password"
    password string

password specifies the container registry password to use for authentication. Not compatible with token

	compatible:
		* source
		* condition
		* target

	default:
		by default credentials are fetch from the local environment such as `~/.docker/config.json`.

	remark:
		Not compatible with token
    token string

token specifies the container registry token to use for authentication.

	compatible:
		* source
		* condition
		* target

	default:
		by default credentials are fetch from the local environment such as `~/.docker/config.json`.

	remark:
		Not compatible with username/password
    username string

username specifies the container registry username to use for authentication.

	compatible:
		* source
		* condition
		* target

	default:
		by default credentials are fetch from the local environment such as `~/.docker/config.json`.

	remark:
		Not compatible with token
digest boolean digest provides a parameter to specify if the generated manifest should use a digest on top of the tag when updating container.
ignore array Ignore specifies rule to ignore Helm chart update.
    containers object Containers specifies a list of containers pattern.
    dependencies object Dependencies specifies a list of dependencies pattern.
    path string Path specifies a Helm chart path pattern, the pattern requires to match all of name, not just a subpart of the path.
ignorechartdependency boolean ignorechartdependency disables Helm chart dependencies update when set to true
ignorecontainer boolean ignorecontainer disables OCI container tag update when set to true
only array only specify required rule(s) to restrict Helm chart update.
    containers object Containers specifies a list of containers pattern.
    dependencies object Dependencies specifies a list of dependencies pattern.
    path string Path specifies a Helm chart path pattern, the pattern requires to match all of name, not just a subpart of the path.
rootdir string rootdir defines the root directory used to recursively search for Helm Chart
skippackaging boolean [target] Defines if a Chart should be packaged or not.
versionfilter object

versionfilter provides parameters to specify the version pattern used when generating manifest.

kind - semver versionfilter of kind semver uses semantic versioning as version filtering pattern accepts one of: prerelease - Updatecli tries to identify the latest prerelease whatever it means patch - Updatecli only handles patch version update minor - Updatecli handles patch AND minor version update minoronly - Updatecli handles minor version only major - Updatecli handles patch, minor, AND major version update majoronly - Updatecli only handles major version update a version constraint such as >= 1.0.0

kind - regex versionfilter of kind regex uses regular expression as version filtering pattern accepts a valid regular expression

example:

  versionfilter:
    kind: semver
    pattern: minor

and its type like regex, semver, or just latest.

More examples can be found at https://www.updatecli.io/docs/core/versionfilter/

    kind string specifies the version kind such as semver, regex, or latest
    pattern string specifies the version pattern according the version kind for semver, it is a semver constraint for regex, it is a regex pattern for time, it is a date format
    regex string specifies the regex pattern, used for regex/semver and regex/time. Output of the first capture group will be used.
    replaceall object replaceAll applies a regex replacement to version strings before filtering. This is useful for transforming versions (e.g., curl-8_15_0 to curl-8.15.0) before regex extraction.
        pattern string Pattern specifies the regex pattern to match for replacement
        replacement string Replacement specifies the replacement string (supports $1, $2, etc. for captured groups)
    strict boolean strict enforce strict versioning rule. Only used for semantic versioning at this time
versionincrement string [target] Defines if a Chart changes, triggers, or not, a Chart version update, accepted values is a comma separated list of none,major,minor,patch
⚠ This table is generated from the Updatecli codebase and may contain inaccurate data. Feel free to report them on github.com/updatecli/updatecli

Example

# updatecli.d/default.yaml
name: "Helm autodiscovery using git scm"
scms:
  epinio:
    kind: git
    spec:
      url: https://github.com/olblak/charts.git
      branch: master
    
autodiscovery:
  # scmid is applied to all crawlers
  scmid: epinio
  crawlers:
    helm:
      ignore:
        # Ignore a specific path:
        - path: charts/acme/*
        # Ignore a specific chart dependency:
        - dependencies:
            my-chart-dependency: ">0.0.1"
        # Ignore a specific image reference in chart values:
        - containers:
            "longhornio/upgrade-responder": ""
      
      # To include only a specific path:
      #only:
      #  - path: charts/*
Top