mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
c81e322986
forward sourceRepositoryCredentialsId from groovy to go layer in the same way how this is done for the targetRepositoryCredentialsId
385 lines
13 KiB
YAML
385 lines
13 KiB
YAML
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:
|
|
`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
|
|
|
|
```
|
|
|
|
Note: piper supports only helm3 version, since helm2 is deprecated.
|
|
spec:
|
|
inputs:
|
|
secrets:
|
|
- 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
|
|
type: jenkins
|
|
- name: dockerConfigJsonCredentialsId
|
|
description: Jenkins 'Secret file' credentials ID containing Docker config.json (with registry credential(s)).
|
|
type: jenkins
|
|
- name: sourceRepositoryCredentialsId
|
|
description: Jenkins 'Username Password' credentials ID containing username and password for the Helm Repository authentication (source repo)
|
|
type: jenkins
|
|
- name: targetRepositoryCredentialsId
|
|
description: Jenkins 'Username Password' credentials ID containing username and password for the Helm Repository authentication (target repo)
|
|
type: jenkins
|
|
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
|
|
description: Defines the chart path for helm. chartPath is mandatory for install/upgrade/publish commands.
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: targetRepositoryURL
|
|
description: "URL of the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment."
|
|
type: string
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
resourceRef:
|
|
- name: commonPipelineEnvironment
|
|
param: custom/helmRepositoryURL
|
|
- name: commonPipelineEnvironment
|
|
param: custom/repositoryUrl
|
|
- name: targetRepositoryName
|
|
type: string
|
|
description: set the chart repository. The value is required for install/upgrade/uninstall commands.
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: targetRepositoryUser
|
|
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."
|
|
type: string
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
secret: true
|
|
resourceRef:
|
|
- name: targetRepositoryCredentialsId
|
|
type: secret
|
|
param: username
|
|
- type: vaultSecret
|
|
name: targetRepositoryUserSecretName
|
|
default: publishing
|
|
- name: commonPipelineEnvironment
|
|
param: custom/helmRepositoryUsername
|
|
- name: commonPipelineEnvironment
|
|
param: custom/repositoryUsername
|
|
- name: targetRepositoryPassword
|
|
aliases:
|
|
- name: helmRepositoryPassword
|
|
description: "Password for the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment."
|
|
type: string
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
secret: true
|
|
resourceRef:
|
|
- name: targetRepositoryCredentialsId
|
|
type: secret
|
|
param: password
|
|
- type: vaultSecret
|
|
name: targetRepositoryPasswordSecret
|
|
default: publishing
|
|
- name: commonPipelineEnvironment
|
|
param: custom/helmRepositoryPassword
|
|
- name: commonPipelineEnvironment
|
|
param: custom/repositoryPassword
|
|
- 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
|
|
- 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
|
|
description: "Helm: defines the command `upgrade`, `lint`, `install`, `test`, `uninstall`, `dependency`, `publish`."
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
possibleValues:
|
|
- upgrade
|
|
- lint
|
|
- install
|
|
- test
|
|
- uninstall
|
|
- dependency
|
|
- publish
|
|
- name: appVersion
|
|
type: string
|
|
description: set the appVersion on the chart to this version
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: dependency
|
|
type: string
|
|
description: "manage a chart's dependencies"
|
|
scope:
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
possibleValues:
|
|
- build
|
|
- list
|
|
- update
|
|
- name: packageDependencyUpdate
|
|
type: bool
|
|
description: update dependencies from "Chart.yaml" to dir "charts/" before packaging
|
|
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
|
|
- 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."
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: publish
|
|
type: bool
|
|
description: Configures helm to run the deploy command to publish artifacts to a repository.
|
|
default: false
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: version
|
|
type: string
|
|
description: Defines the artifact version to use from helm package/publish commands.
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: renderSubchartNotes
|
|
type: bool
|
|
description: If set, render subchart notes along with the parent.
|
|
default: true
|
|
scope:
|
|
- GENERAL
|
|
- PARAMETERS
|
|
- STAGES
|
|
- STEPS
|
|
- name: templateStartDelimiter
|
|
type: string
|
|
description: When templating value files, use this start delimiter.
|
|
default: "{{"
|
|
scope:
|
|
- STEPS
|
|
- PARAMETERS
|
|
- name: templateEndDelimiter
|
|
type: string
|
|
description: When templating value files, use this end delimiter.
|
|
default: "}}"
|
|
scope:
|
|
- STEPS
|
|
- PARAMETERS
|
|
- name: renderValuesTemplate
|
|
type: bool
|
|
description: A flag to turn templating value files on or off.
|
|
default: true
|
|
scope:
|
|
- STEPS
|
|
- PARAMETERS
|
|
containers:
|
|
- image: dtzar/helm-kubectl:3
|
|
workingDir: /config
|
|
options:
|
|
- name: -u
|
|
value: "0"
|
|
outputs:
|
|
resources:
|
|
- name: commonPipelineEnvironment
|
|
type: piperEnvironment
|
|
params:
|
|
- name: custom/helmChartUrl
|