Description

The Rancher Fleet crawler looks recursively for every fleet.yaml or fleet.yml bundle from a specific root directory, and tries to update the Helm chart version each one pins.

A bundle is picked up when both helm.chart and helm.repo are set:

defaultNamespace: cert-manager
helm:
  chart: cert-manager
  repo: https://charts.jetstack.io
  version: 1.14.0

This crawler is enabled by default, so it can be used either automatically by running updatecli diff from a directory containing the files to update, or by providing a manifest. The automatic discovery behavior can be tuned by providing a YAML manifest with a rancher/fleet crawler in top-level directive autodiscovery as explained in the "Autodiscovery" page.

Generated manifests

Each bundle produces one manifest containing:

  • a helmchart source resolving the latest chart version from helm.repo,

  • two yaml conditions asserting that helm.chart and helm.repo still hold the discovered values,

  • a yaml target writing the new version to helm.version.

Only the version is rewritten; the rest of the bundle is left untouched.

Authentication

Use auths to reach private chart repositories. Entries are keyed by repository host and accept either a token or a username/password pair.

Version filtering

If unspecified, the version filter defaults to kind semver with pattern *, since Helm charts are expected to follow semantic versioning.

More details on the "Version Filtering" page.

Manifest

Parameters

NameTypeDescriptionRequired
authsobject

Auths holds a map of string to string where the key is the registry URL and the value the token used for authentication

Please be aware that only the host part of the URL is used to lookup for authentication token.

Example:

auths:
  "my-helm-repo.com": "my-secret-token"
    tokenstring
ignorearrayIgnore allows to specify rule to ignore autodiscovery a specific Fleet bundle based on a rule
    chartsobjectCharts specifies the list of Helm Chart repository to check
    pathstringPath specifies a Fleet bundle path pattern, the pattern requires to match all of name, not just a subpart of the path.
    repositoriesarrayRepositories specifies the list of Helm Chart repository to check
onlyarrayOnly allows to specify rule to only autodiscover manifest for a specific Fleet bundle based on a rule
    chartsobjectCharts specifies the list of Helm Chart repository to check
    pathstringPath specifies a Fleet bundle path pattern, the pattern requires to match all of name, not just a subpart of the path.
    repositoriesarrayRepositories specifies the list of Helm Chart repository to check
rootdirstringRootDir defines the root directory used to recursively search for Fleet bundle
versionfilterobject

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/

    kindstringspecifies the version kind such as semver, regex, or latest
    patternstringspecifies 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
    regexstringspecifies the regex pattern, used for regex/semver and regex/time. Output of the first capture group will be used.
    replaceallobjectreplaceAll 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.
        patternstringPattern specifies the regex pattern to match for replacement
        replacementstringReplacement specifies the replacement string (supports $1, $2, etc. for captured groups)
    strictbooleanstrict enforce strict versioning rule. Only used for semantic versioning at this time
⚠ This table is generated from the Updatecli codebase and may contain inaccurate data. Feel free to report them on github.com/updatecli/updatecli
Note
only and ignore rules accept path (a bundle path pattern that must match the whole path), charts (a map of chart name to version), and repositories (a list of chart repository URLs).

Example

# updatecli.d/default.yaml
name: "Fleet Autodiscovery using github scm"
scms:
  fleet-lab:
    kind: github
    spec:
      owner: olblak
      repository: fleet-lab
      token: '{{ requiredEnv "GITHUB_TOKEN" }}'
      username: '{{ requiredEnv "GITHUB_ACTOR" }}'
      branch: main

actions:
  fleet-lab:
    kind: github/pullrequest
    scmid: fleet-lab
    spec:
      labels:
        - dependencies

autodiscovery:
  # scmid is applied to all crawlers
  scmid: fleet-lab
  actionid: fleet-lab
  crawlers:
    rancher/fleet:
      # To ignore specific path
      #ignore:
      # - path: <filepath relative to scm repository>
      # To only update a specific file
      #only:
      #  - path: <filepath relative to scm repository>