helmExecute¶
Executes helm3 functionality as the package manager for Kubernetes.
Description¶
Alpha version: please expect incompatible changes
Executes helm functionality as the package manager for Kubernetes.
- Helm is the package manager for Kubernetes.
- Helm documentation and best practices
- Helm Charts
Available Commands: `upgrade`, `lint`, `install`, `test`, `uninstall`, `dependency`, `publish` upgrade upgrade a release lint examine a chart for possible issues install install a chart test run tests for a release uninstall uninstall a release dependency package a chart directory into a chart archive publish package and publish a release
Note: piper supports only helm3 version, since helm2 is deprecated.
Usage¶
We recommend to define values of step parameters via .pipeline/config.yml file.
In this case, calling the step is essentially reduced to defining the step name.
Calling the step can be done either in an orchestrator specific way (e.g. via a Jenkins library step) or on the command line.
library('piper-lib-os')
helmExecute script: this
piper helmExecute
Outputs¶
Output type | Details |
---|---|
commonPipelineEnvironment |
|
Parameters¶
Overview - Step¶
Overview - Execution Environment¶
Orchestrator-specific only
These parameters are relevant for orchestrator usage and not considered when using the command line option.
Name | Mandatory | Additional information |
---|---|---|
containerCommand | no | |
containerShell | no | |
dockerEnvVars | no | |
dockerImage | no | |
dockerName | no | |
dockerOptions | no | |
dockerPullImage | no | |
dockerVolumeBind | no | |
dockerWorkspace | no | |
stashContent | no |
Details¶
additionalParameters¶
Defines additional parameters for Helm like "helm install [NAME] [CHART] [flags]".
Scope | Details |
---|---|
Aliases | helmDeploymentParameters |
Type | []string |
Mandatory | no |
Default | $PIPER_additionalParameters (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
appVersion¶
set the appVersion on the chart to this version
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_appVersion (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
chartPath¶
Defines the chart path for helm. chartPath is mandatory for install/upgrade/publish commands.
Scope | Details |
---|---|
Aliases | helmChartPath |
Type | string |
Mandatory | no |
Default | $PIPER_chartPath (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
containerCommand¶
Jenkins-specific: Used for proper environment setup.
Kubernetes only: Allows to specify start command for container created with dockerImage parameter to overwrite Piper default (/usr/bin/tail -f /dev/null).
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
containerShell¶
Jenkins-specific: Used for proper environment setup.
Allows to specify the shell to be executed for container with containerName.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
customTlsCertificateLinks¶
List of download links to custom TLS certificates. This is required to ensure trusted connections to instances with repositories (like nexus) when publish flag is set to true.
Scope | Details |
---|---|
Aliases | - |
Type | []string |
Mandatory | no |
Default | $PIPER_customTlsCertificateLinks (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
dependency¶
manage a chart's dependencies
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_dependency (if set) |
Possible values | - build - list - update |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerConfigJSON¶
Path to the file .docker/config.json
- this is typically provided by your CI/CD system. You can find more details about the Docker credentials in the Docker documentation.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_dockerConfigJSON (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: dockerConfigJsonCredentialsId Vault resource: name: dockerConfigFileVaultSecretName default value: docker-config Vault paths:
|
dockerEnvVars¶
Jenkins-specific: Used for proper environment setup.
Environment variables to set in the container, e.g. [http_proxy: "proxy:8080"].
Scope | Details |
---|---|
Aliases | - |
Type | map[string]string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerImage¶
Jenkins-specific: Used for proper environment setup.
Name of the docker image that should be used. If empty, Docker is not used and the command is executed directly on the Jenkins system.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | dtzar/helm-kubectl:3 |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerName¶
Jenkins-specific: Used for proper environment setup.
Kubernetes only: Name of the container launching dockerImage. SideCar only: Name of the container in local network.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerOptions¶
Jenkins-specific: Used for proper environment setup.
Docker options to be set when starting the container.
Scope | Details |
---|---|
Aliases | - |
Type | []string |
Mandatory | no |
Default | [{-u 0}] |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerPullImage¶
Jenkins-specific: Used for proper environment setup.
Set this to 'false' to bypass a docker image pull. Useful during development process. Allows testing of images which are available in the local registry only.
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | true |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerVolumeBind¶
Jenkins-specific: Used for proper environment setup.
Volumes that should be mounted into the docker container.
Scope | Details |
---|---|
Aliases | - |
Type | map[string]string |
Mandatory | no |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
dockerWorkspace¶
Jenkins-specific: Used for proper environment setup.
Kubernetes only: Specifies a dedicated user home directory for the container which will be passed as value for environment variable HOME
.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | /config |
Secret | no |
Configuration scope |
|
Resource references | none |
dumpLogs¶
dump the logs from test pods (this runs after all tests are complete, but before any cleanup)
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | false |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
filterTest¶
specify tests by attribute (currently name
) using attribute=value syntax or !attribute=value
to exclude a test (can specify multiple or separate values with commas name=test1,name=test2
)
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_filterTest (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
helmCommand¶
Helm: defines the command upgrade
, lint
, install
, test
, uninstall
, dependency
, publish
.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_helmCommand (if set) |
Possible values | - upgrade - lint - install - test - uninstall - dependency - publish |
Secret | no |
Configuration scope |
|
Resource references | none |
helmDeployWaitSeconds¶
Number of seconds before helm deploy returns.
Scope | Details |
---|---|
Aliases | - |
Type | int |
Mandatory | no |
Default | 300 |
Secret | no |
Configuration scope |
|
Resource references | none |
helmValues¶
List of helm values as YAML file reference or URL (as per helm parameter description for -f
/ --values
)
Scope | Details |
---|---|
Aliases | - |
Type | []string |
Mandatory | no |
Default | $PIPER_helmValues (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
image¶
Full name of the image to be deployed.
Scope | Details |
---|---|
Aliases | deployImage |
Type | string |
Mandatory | yes |
Default | $PIPER_image (if set) |
Secret | no |
Configuration scope |
|
Resource references | commonPipelineEnvironment: reference to: container/imageNameTag |
keepFailedDeployments¶
Defines whether a failed deployment will be purged
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | false |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
kubeConfig¶
Defines the path to the "kubeconfig" file.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_kubeConfig (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: kubeConfigFileCredentialsId Vault resource: name: kubeConfigFileVaultSecretName default value: kube-config Vault paths:
|
kubeContext¶
Defines the context to use from the "kubeconfig" file.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_kubeContext (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
namespace¶
Defines the target Kubernetes namespace for the deployment.
Scope | Details |
---|---|
Aliases | helmDeploymentNamespace |
Type | string |
Mandatory | no |
Default | default |
Secret | no |
Configuration scope |
|
Resource references | none |
packageDependencyUpdate¶
update dependencies from "Chart.yaml" to dir "charts/" before packaging
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | false |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
publish¶
Configures helm to run the deploy command to publish artifacts to a repository.
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | false |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
renderSubchartNotes¶
If set, render subchart notes along with the parent.
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | true |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
renderValuesTemplate¶
A flag to turn templating value files on or off.
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | true |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
script¶
Jenkins-specific: Used for proper environment setup.
The common script environment of the Jenkinsfile running. Typically the reference to the script calling the pipeline step is provided with the this
parameter, as in script: this
. This allows the function to access the commonPipelineEnvironment
for retrieving, e.g. configuration parameters.
Scope | Details |
---|---|
Aliases | - |
Type | Jenkins Script |
Mandatory | yes |
Default | |
Secret | no |
Configuration scope |
|
Resource references | none |
sourceRepositoryName¶
Set the name of the chart repository. The value might be required for fetching dependencies.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_sourceRepositoryName (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
sourceRepositoryPassword¶
Password for the chart repository for fetching the dependencies.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_sourceRepositoryPassword (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: sourceRepositoryCredentialsId reference to: password Vault resource: name: sourceRepositoryPasswordSecret default value: dependencies Vault paths:
|
sourceRepositoryURL¶
URL of the source repository where the dependencies can be downloaded.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_sourceRepositoryURL (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
sourceRepositoryUser¶
Username for the chart repository for fetching the dependencies.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_sourceRepositoryUser (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: sourceRepositoryCredentialsId reference to: username Vault resource: name: sourceRepositoryUserSecretName default value: dependencies Vault paths:
|
stashContent¶
Jenkins-specific: Used for proper environment setup.
Specific stashes that should be considered for the step execution.
Scope | Details |
---|---|
Aliases | - |
Type | []string |
Mandatory | no |
Default | - deployDescriptor |
Secret | no |
Configuration scope |
|
Resource references | none |
targetRepositoryName¶
set the chart repository. The value is required for install/upgrade/uninstall commands.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_targetRepositoryName (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
targetRepositoryPassword¶
Password for the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment.
Scope | Details |
---|---|
Aliases | helmRepositoryPassword |
Type | string |
Mandatory | no |
Default | $PIPER_targetRepositoryPassword (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: targetRepositoryCredentialsId reference to: password Vault resource: name: targetRepositoryPasswordSecret default value: publishing Vault paths:
reference to: custom/helmRepositoryPassword commonPipelineEnvironment: reference to: custom/repositoryPassword |
targetRepositoryURL¶
URL of the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_targetRepositoryURL (if set) |
Secret | no |
Configuration scope |
|
Resource references | commonPipelineEnvironment: reference to: custom/helmRepositoryURL commonPipelineEnvironment: reference to: custom/repositoryUrl |
targetRepositoryUser¶
Username for the chart repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment.
Scope | Details |
---|---|
Aliases | helmRepositoryUsername |
Type | string |
Mandatory | no |
Default | $PIPER_targetRepositoryUser (if set) |
Secret | yes |
Configuration scope |
|
Resource references | Jenkins credential id: id: targetRepositoryCredentialsId reference to: username Vault resource: name: targetRepositoryUserSecretName default value: publishing Vault paths:
reference to: custom/helmRepositoryUsername commonPipelineEnvironment: reference to: custom/repositoryUsername |
templateEndDelimiter¶
When templating value files, use this end delimiter.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | }} |
Secret | no |
Configuration scope |
|
Resource references | none |
templateStartDelimiter¶
When templating value files, use this start delimiter.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | {{ |
Secret | no |
Configuration scope |
|
Resource references | none |
verbose¶
verbose output
Scope | Details |
---|---|
Aliases | - |
Type | bool |
Mandatory | no |
Default | false |
Possible values | - true - false |
Secret | no |
Configuration scope |
|
Resource references | none |
version¶
Defines the artifact version to use from helm package/publish commands.
Scope | Details |
---|---|
Aliases | - |
Type | string |
Mandatory | no |
Default | $PIPER_version (if set) |
Secret | no |
Configuration scope |
|
Resource references | none |
kubeConfigFileCredentialsId¶
Jenkins-specific: Used for proper environment setup. See using credentials for details.
Jenkins 'Secret file' credentials ID containing kubeconfig file. Details can be found in the Kubernetes documentation.
Scope | Details |
---|---|
Aliases | kubeCredentialsId (deprecated) |
Type | string |
Configuration scope |
|
dockerConfigJsonCredentialsId¶
Jenkins-specific: Used for proper environment setup. See using credentials for details.
Jenkins 'Secret file' credentials ID containing Docker config.json (with registry credential(s)).
Scope | Details |
---|---|
Aliases | - |
Type | string |
Configuration scope |
|
sourceRepositoryCredentialsId¶
Jenkins-specific: Used for proper environment setup. See using credentials for details.
Jenkins 'Username Password' credentials ID containing username and password for the Helm Repository authentication (source repo)
Scope | Details |
---|---|
Aliases | - |
Type | string |
Configuration scope |
|
targetRepositoryCredentialsId¶
Jenkins-specific: Used for proper environment setup. See using credentials for details.
Jenkins 'Username Password' credentials ID containing username and password for the Helm Repository authentication (target repo)
Scope | Details |
---|---|
Aliases | - |
Type | string |
Configuration scope |
|