2022-02-10 11:25:03 +02:00
metadata :
name : helmExecute
description : Executes helm3 functionality as the package manager for Kubernetes.
longDescription : |-
Alpha version : please expect incompatible changes
Executes helm functionality as the package manager for Kubernetes.
* [ Helm](https://helm.sh/) is the package manager for Kubernetes.
* [ Helm documentation https://helm.sh/docs/intro/using_helm/ and best practies https://helm.sh/docs/chart_best_practices/conventions/]
* [ Helm Charts] (https://artifacthub.io/)
```
Available Commands :
2022-03-30 08:18:51 +02:00
`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 puslish a release
2022-02-10 11:25:03 +02:00
```
Note : piper supports only helm3 version, since helm2 is deprecated.
spec :
inputs :
secrets :
2022-06-28 13:03:03 +02:00
- name : kubeConfigFileCredentialsId
description : Jenkins 'Secret file' credentials ID containing kubeconfig file. Details can be found in the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/).
aliases :
- name : kubeCredentialsId
deprecated : true
2022-02-10 11:25:03 +02:00
type : jenkins
- name : dockerConfigJsonCredentialsId
description : Jenkins 'Secret file' credentials ID containing Docker config.json (with registry credential(s)).
type : jenkins
2022-06-28 13:03:03 +02:00
- name : targetRepositoryCredentialsId
description : Jenkins 'Username Password' credentials ID containing username and password for the Helm Repository authentication
type : jenkins
2022-02-10 11:25:03 +02:00
resources :
- name : deployDescriptor
type : stash
params :
- name : additionalParameters
aliases :
- name : helmDeploymentParameters
type : "[]string"
description : Defines additional parameters for Helm like "helm install [NAME] [CHART] [flags]".
scope :
- PARAMETERS
- STAGES
- STEPS
- name : chartPath
aliases :
- name : helmChartPath
type : string
2022-04-14 15:43:47 +02:00
description : Defines the chart path for helm. chartPath is mandatory for install/upgrade/publish commands.
2022-02-10 11:25:03 +02:00
scope :
- PARAMETERS
- STAGES
- STEPS
2022-03-17 18:13:34 +02:00
- name : targetRepositoryURL
description : "URL of the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment."
2022-02-10 11:25:03 +02:00
type : string
scope :
- PARAMETERS
- STAGES
- STEPS
resourceRef :
2022-03-21 09:41:22 +02:00
- name : commonPipelineEnvironment
param : custom/helmRepositoryURL
2022-03-17 09:01:00 +02:00
- name : commonPipelineEnvironment
2022-03-17 18:13:34 +02:00
param : custom/repositoryUrl
- name : targetRepositoryName
2022-02-10 11:25:03 +02:00
type : string
2022-04-14 15:43:47 +02:00
description : set the chart repository. The value is required for install/upgrade/uninstall commands.
2022-02-10 11:25:03 +02:00
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
2022-03-17 18:13:34 +02:00
- name : targetRepositoryUser
2022-06-28 13:03:03 +02:00
aliases :
- name : helmRepositoryUsername
description : "Username for the chart repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment."
2022-02-10 11:25:03 +02:00
type : string
scope :
- PARAMETERS
- STAGES
- STEPS
2022-03-17 18:13:34 +02:00
secret : true
2022-02-10 11:25:03 +02:00
resourceRef :
2022-06-28 13:03:03 +02:00
- name : targetRepositoryCredentialsId
type : secret
param : username
- type : vaultSecret
name : targetRepositoryUserSecretName
default : publishing
2022-03-21 09:41:22 +02:00
- name : commonPipelineEnvironment
param : custom/helmRepositoryUsername
2022-02-10 11:25:03 +02:00
- name : commonPipelineEnvironment
2022-03-17 18:13:34 +02:00
param : custom/repositoryUsername
- name : targetRepositoryPassword
2022-06-28 13:03:03 +02:00
aliases :
- name : helmRepositoryPassword
2022-03-17 18:13:34 +02:00
description : "Password for the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment."
2022-02-10 11:25:03 +02:00
type : string
scope :
- PARAMETERS
- STAGES
- STEPS
secret : true
resourceRef :
2022-06-28 13:03:03 +02:00
- name : targetRepositoryCredentialsId
type : secret
param : password
- type : vaultSecret
name : targetRepositoryPasswordSecret
default : publishing
2022-03-21 09:41:22 +02:00
- name : commonPipelineEnvironment
param : custom/helmRepositoryPassword
2022-02-10 11:25:03 +02:00
- name : commonPipelineEnvironment
2022-03-17 18:13:34 +02:00
param : custom/repositoryPassword
2022-11-07 17:35:00 +02:00
- name : sourceRepositoryURL
description : "URL of the source repository where the dependencies can be downloaded."
type : string
scope :
- PARAMETERS
- STAGES
- STEPS
- name : sourceRepositoryName
type : string
description : Set the name of the chart repository. The value might be required for fetching dependencies.
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
- name : sourceRepositoryUser
description : "Username for the chart repository for fetching the dependencies."
type : string
scope :
- PARAMETERS
- STAGES
- STEPS
secret : true
resourceRef :
- name : sourceRepositoryCredentialsId
type : secret
param : username
- type : vaultSecret
name : sourceRepositoryUserSecretName
default : dependencies
- name : sourceRepositoryPassword
description : "Password for the chart repository for fetching the dependencies."
type : string
scope :
- PARAMETERS
- STAGES
- STEPS
secret : true
resourceRef :
- name : sourceRepositoryCredentialsId
type : secret
param : password
- type : vaultSecret
name : sourceRepositoryPasswordSecret
default : dependencies
2022-02-10 11:25:03 +02:00
- name : helmDeployWaitSeconds
type : int
description : Number of seconds before helm deploy returns.
scope :
- PARAMETERS
- STAGES
- STEPS
default : 300
- name : helmValues
type : "[]string"
description : List of helm values as YAML file reference or URL (as per helm parameter description for `-f` / `--values`)
scope :
- PARAMETERS
- STAGES
- STEPS
- name : image
aliases :
- name : deployImage
type : string
description : Full name of the image to be deployed.
resourceRef :
- name : commonPipelineEnvironment
param : container/imageNameTag
mandatory : true
scope :
- PARAMETERS
- STAGES
- STEPS
- name : keepFailedDeployments
type : bool
description : Defines whether a failed deployment will be purged
default : false
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
- name : kubeConfig
type : string
description : Defines the path to the "kubeconfig" file.
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
secret : true
resourceRef :
- name : kubeConfigFileCredentialsId
type : secret
- type : vaultSecretFile
name : kubeConfigFileVaultSecretName
default : kube-config
- name : kubeContext
type : string
description : Defines the context to use from the "kubeconfig" file.
scope :
- PARAMETERS
- STAGES
- STEPS
- name : namespace
aliases :
- name : helmDeploymentNamespace
type : string
description : Defines the target Kubernetes namespace for the deployment.
scope :
- PARAMETERS
- STAGES
- STEPS
default : default
- name : dockerConfigJSON
type : string
description : 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](https://docs.docker.com/engine/reference/commandline/login/).
scope :
- PARAMETERS
- STAGES
- STEPS
secret : true
resourceRef :
- name : dockerConfigJsonCredentialsId
type : secret
- type : vaultSecretFile
name : dockerConfigFileVaultSecretName
default : docker-config
- name : helmCommand
type : string
2022-03-30 08:18:51 +02:00
description : "Helm: defines the command `upgrade`, `lint`, `install`, `test`, `uninstall`, `dependency`, `publish`."
2022-02-10 11:25:03 +02:00
scope :
- PARAMETERS
- STAGES
- STEPS
possibleValues :
- upgrade
- lint
2022-03-30 08:18:51 +02:00
- install
2022-02-10 11:25:03 +02:00
- test
- uninstall
2022-03-30 08:18:51 +02:00
- dependency
2022-03-17 18:13:34 +02:00
- publish
2022-02-10 11:25:03 +02:00
- name : appVersion
type : string
description : set the appVersion on the chart to this version
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
2022-03-30 08:18:51 +02:00
- name : dependency
type : string
description : "manage a chart's dependencies"
scope :
- PARAMETERS
- STAGES
- STEPS
possibleValues :
- build
- list
- update
- name : packageDependencyUpdate
2022-02-10 11:25:03 +02:00
type : bool
2022-03-30 08:18:51 +02:00
description : update dependencies from "Chart.yaml" to dir "charts/" before packaging
2022-02-10 11:25:03 +02:00
default : false
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
- name : dumpLogs
type : bool
description : dump the logs from test pods (this runs after all tests are complete, but before any cleanup)
default : false
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
- name : filterTest
type : string
description : 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 :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
2022-03-17 18:13:34 +02:00
- name : customTlsCertificateLinks
type : "[]string"
description : "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."
2022-02-10 11:25:03 +02:00
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
2022-03-17 18:13:34 +02:00
- name : publish
type : bool
description : Configures helm to run the deploy command to publish artifacts to a repository.
default : false
2022-02-10 11:25:03 +02:00
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
2022-04-14 15:43:47 +02:00
- name : version
type : string
description : Defines the artifact version to use from helm package/publish commands.
scope :
- GENERAL
- PARAMETERS
- STAGES
- STEPS
2022-02-10 11:25:03 +02:00
containers :
2022-03-17 18:13:34 +02:00
- image : dtzar/helm-kubectl:3.8.0
2022-02-10 11:25:03 +02:00
workingDir : /config
options :
- name : -u
value : "0"
2022-08-15 21:41:24 +02:00
outputs :
resources :
- name : commonPipelineEnvironment
type : piperEnvironment
params :
2022-09-02 11:55:30 +02:00
- name : custom/helmChartUrl