Skip to main content
Version: 2.18 (deprecated)

helm


The Helm command line (https://helm.sh)

Backend: pants.backend.experimental.helm

Config section: [helm]

Basic options

args

--helm-args="[<shell_str>, <shell_str>, ...]", ... -- [<shell_str> [<shell_str> [...]]]
PANTS_HELM_ARGS
pants.toml
[helm]
args = [
<shell_str>,
<shell_str>,
...,
]
default: []

Arguments to pass directly to helmsubsystem, e.g. --helm-args='--dry-run'.

Additional arguments to pass to Helm command line.

Only a subset of Helm arguments are considered valid as passthrough arguments as most of them have equivalents in the form of fields of the different target types.

The list of valid arguments is as follows:

  • --atomic
  • --cleanup-on-fail
  • --create-namespace
  • --debug
  • --dry-run
  • --force
  • --wait
  • --wait-for-jobs
  • --kubeconfig
  • --kube-context
  • --kube-apiserver
  • --kube-as-group
  • --kube-as-user
  • --kube-ca-file
  • --kube-token

Before attempting to use passthrough arguments, check the reference of each of the available target types to see what fields are accepted in each of them.

default_registry_repository

--helm-default-registry-repository=<str>
PANTS_HELM_DEFAULT_REGISTRY_REPOSITORY
pants.toml
[helm]
default_registry_repository = <str>
default: None

Default location where to push Helm charts in the available registries when no specific one has been given.

If no registry repository is given, charts will be pushed to the root of the OCI registry.

lint_strict

--[no-]helm-lint-strict
PANTS_HELM_LINT_STRICT
pants.toml
[helm]
lint_strict = <bool>
default: False

Enables strict linting of Helm charts

registries

--helm-registries="{'key1': val1, 'key2': val2, ...}"
PANTS_HELM_REGISTRIES
pants.toml
[helm.registries]
key1 = val1
key2 = val2
...
default: {}

Configure Helm OCI registries. The schema for a registry entry is as follows:

{
"registry-alias": {
"address": "oci://registry-domain:port",
"default": bool,
},
...
}

If no registries are provided in either a helm_chart target, then all default addresses will be used, if any.

The helm_chart.registries may be provided with a list of registry addresses and registry alias prefixed with @ to be used instead of the defaults.

A configured registry is marked as default either by setting default = true or with an alias of "default".

Registries also participate in resolving third party Helm charts uplodaded to those registries.

Advanced options

extra_env_vars

--helm-extra-env-vars="['<str>', '<str>', ...]"
PANTS_HELM_EXTRA_ENV_VARS
pants.toml
[helm]
extra_env_vars = [
'<str>',
'<str>',
...,
]
default: []

Additional environment variables that would be made available to all Helm processes or during value interpolation.

known_versions

--helm-known-versions="['<str>', '<str>', ...]"
PANTS_HELM_KNOWN_VERSIONS
pants.toml
[helm]
known_versions = [
'<str>',
'<str>',
...,
]
default:
[
  "3.12.3|linux_arm64|79ef06935fb47e432c0c91bdefd140e5b543ec46376007ca14a52e5ed3023088|14355040",
  "3.12.3|linux_x86_64|1b2313cd198d45eab00cc37c38f6b1ca0a948ba279c29e322bdf426d406129b5|16028423",
  "3.12.3|macos_arm64|240b0a7da9cae208000eff3d3fb95e0fa1f4903d95be62c3f276f7630b12dae1|16019570",
  "3.12.3|macos_x86_64|1bdbbeec5a12dd0c1cd4efd8948a156d33e1e2f51140e2a51e1e5e7b11b81d47|16828211",
  "3.12.2|linux_arm64|cfafbae85c31afde88c69f0e5053610c8c455826081c1b2d665d9b44c31b3759|14350624",
  "3.12.2|linux_x86_64|2b6efaa009891d3703869f4be80ab86faa33fa83d9d5ff2f6492a8aebe97b219|16028750",
  "3.12.2|macos_arm64|b60ee16847e28879ae298a20ba4672fc84f741410f438e645277205824ddbf55|16021202",
  "3.12.2|macos_x86_64|6e8bfc84a640e0dc47cc49cfc2d0a482f011f4249e2dff2a7e23c7ef2df1b64e|16824814",
  "3.11.3|linux_arm64|0816db0efd033c78c3cc1c37506967947b01965b9c0739fe13ec2b1eea08f601|14475471",
  "3.11.3|linux_x86_64|ca2d5d40d4cdfb9a3a6205dd803b5bc8def00bd2f13e5526c127e9b667974a89|15489735",
  "3.11.3|macos_arm64|267e4d50b68e8854b9cc44517da9ab2f47dec39787fed9f7eba42080d61ac7f8|15451086",
  "3.11.3|macos_x86_64|9d029df37664b50e427442a600e4e065fa75fd74dac996c831ac68359654b2c4|16275303",
  "3.11.2|linux_arm64|444b65100e224beee0a3a3a54cb19dad37388fa9217ab2782ba63551c4a2e128|14090242",
  "3.11.2|linux_x86_64|781d826daec584f9d50a01f0f7dadfd25a3312217a14aa2fbb85107b014ac8ca|15026301",
  "3.11.2|macos_arm64|f61a3aa55827de2d8c64a2063fd744b618b443ed063871b79f52069e90813151|14932800",
  "3.11.2|macos_x86_64|404938fd2c6eff9e0dab830b0db943fca9e1572cd3d7ee40904705760faa390f|15759988",
  "3.11.1|linux_arm64 |919173e8fb7a3b54d76af9feb92e49e86d5a80c5185020bae8c393fa0f0de1e8|13484900",
  "3.11.1|linux_x86_64|0b1be96b66fab4770526f136f5f1a385a47c41923d33aab0dcb500e0f6c1bf7c|15023104",
  "3.11.1|macos_arm64 |43d0198a7a2ea2639caafa81bb0596c97bee2d4e40df50b36202343eb4d5c46b|14934852",
  "3.11.1|macos_x86_64|2548a90e5cc957ccc5016b47060665a9d2cd4d5b4d61dcc32f5de3144d103826|15757902",
  "3.10.0|linux_arm64 |3b72f5f8a60772fb156d0a4ab93272e8da7ef4d18e6421a7020d7c019f521fc1|13055719",
  "3.10.0|linux_x86_64|bf56beb418bb529b5e0d6d43d56654c5a03f89c98400b409d1013a33d9586474|14530566",
  "3.10.0|macos_arm64 |f7f6558ebc8211824032a7fdcf0d55ad064cb33ec1eeec3d18057b9fe2e04dbe|14446277",
  "3.10.0|macos_x86_64|1e7fd528482ac2ef2d79fe300724b3e07ff6f846a2a9b0b0fe6f5fa05691786b|15237557",
  "3.8.0|linux_arm64 |23e08035dc0106fe4e0bd85800fd795b2b9ecd9f32187aa16c49b0a917105161|12324642",
  "3.8.0|linux_x86_64|8408c91e846c5b9ba15eb6b1a5a79fc22dd4d33ac6ea63388e5698d1b2320c8b|13626774",
  "3.8.0|macos_arm64 |751348f1a4a876ffe089fd68df6aea310fd05fe3b163ab76aa62632e327122f3|14078604",
  "3.8.0|macos_x86_64|532ddd6213891084873e5c2dcafa577f425ca662a6594a3389e288fc48dc2089|14318316"
]

Known versions to verify downloads against.

Each element is a pipe-separated string of version|platform|sha256|length or version|platform|sha256|length|url_override, where:

  • version is the version string
  • platform is one of [linux_arm64,linux_x86_64,macos_arm64,macos_x86_64]
  • sha256 is the 64-character hex representation of the expected sha256 digest of the download file, as emitted by shasum -a 256
  • length is the expected length of the download file in bytes, as emitted by wc -c
  • (Optional) url_override is a specific url to use instead of the normally generated url for this version

E.g., 3.1.2|macos_x86_64|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813. and 3.1.2|macos_arm64 |aca5c1da0192e2fd46b7b55ab290a92c5f07309e7b0ebf4e45ba95731ae98291|50926|https://example.mac.org/bin/v3.1.2/mac-aarch64-v3.1.2.tgz.

Values are space-stripped, so pipes can be indented for readability if necessary.

tailor_charts

--[no-]helm-tailor-charts
PANTS_HELM_TAILOR_CHARTS
pants.toml
[helm]
tailor_charts = <bool>
default: False

If true, add helm_chart targets with the tailor goal.

tailor_unittests

--[no-]helm-tailor-unittests
PANTS_HELM_TAILOR_UNITTESTS
pants.toml
[helm]
tailor_unittests = <bool>
default: True

If true, add helm_unittest_tests targets with the tailor goal.

url_platform_mapping

--helm-url-platform-mapping="{'key1': val1, 'key2': val2, ...}"
PANTS_HELM_URL_PLATFORM_MAPPING
pants.toml
[helm.url_platform_mapping]
key1 = val1
key2 = val2
...
default:
{
  "linux_arm64": "linux-arm64",
  "linux_x86_64": "linux-amd64",
  "macos_arm64": "darwin-arm64",
  "macos_x86_64": "darwin-amd64"
}

A dictionary mapping platforms to strings to be used when generating the URL to download the tool.

In --url-template, anytime the {platform} string is used, Pants will determine the current platform, and substitute {platform} with the respective value from your dictionary.

For example, if you define {"macos_x86_64": "apple-darwin", "linux_x86_64": "unknown-linux"}, and run Pants on Linux with an intel architecture, then {platform} will be substituted in the --url-template option with unknown-linux.

url_template

--helm-url-template=<str>
PANTS_HELM_URL_TEMPLATE
pants.toml
[helm]
url_template = <str>
default: https://get.helm.sh/helm-v{version}-{platform}.tar.gz

URL to download the tool, either as a single binary file or a compressed file (e.g. zip file). You can change this to point to your own hosted file, e.g. to work with proxies or for access via the filesystem through a file:$abspath URL (e.g. file:/this/is/absolute, possibly by templating the buildroot in a config file).

Use {version} to have the value from --version substituted, and {platform} to have a value from --url-platform-mapping substituted in, depending on the current platform. For example, https://github.com/.../protoc-&#123;version&#125;-&#123;platform&#125;.zip.

use_unsupported_version

--helm-use-unsupported-version=<UnsupportedVersionUsage>
PANTS_HELM_USE_UNSUPPORTED_VERSION
pants.toml
[helm]
use_unsupported_version = <UnsupportedVersionUsage>
one of: error, warning
default: error

What action to take in case the requested version of helmsubsystem is not supported.

Supported helmsubsystem versions: unspecified

version

--helm-version=<str>
PANTS_HELM_VERSION
pants.toml
[helm]
version = <str>
default: 3.12.3

Use this version of helmsubsystem.

Deprecated options

tailor

--[no-]helm-tailor
PANTS_HELM_TAILOR
pants.toml
[helm]
tailor = <bool>
default: True
Deprecated, will be removed in version: 2.19.0.dev0.
Use `[helm].tailor_charts` instead.

If true, add helm_chart targets with the tailor goal.

None