Rancher Fleet
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.0This 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:
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
| Name | Type | Description | Required |
|---|---|---|---|
| auths | object | 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: | |
| token | string | ||
| ignore | array | Ignore allows to specify rule to ignore autodiscovery a specific Fleet bundle based on a rule | |
| charts | object | Charts specifies the list of Helm Chart repository to check | |
| path | string | Path specifies a Fleet bundle path pattern, the pattern requires to match all of name, not just a subpart of the path. | |
| repositories | array | Repositories specifies the list of Helm Chart repository to check | |
| only | array | Only allows to specify rule to only autodiscover manifest for a specific Fleet bundle based on a rule | |
| charts | object | Charts specifies the list of Helm Chart repository to check | |
| path | string | Path specifies a Fleet bundle path pattern, the pattern requires to match all of name, not just a subpart of the path. | |
| repositories | array | Repositories specifies the list of Helm Chart repository to check | |
| rootdir | string | RootDir defines the root directory used to recursively search for Fleet bundle | |
| versionfilter | object |
kind - semver
versionfilter of kind kind - regex
versionfilter of kind example: 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 |
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>