Cloud customer?
 Upgrade in MyJFrog >

Search





Overview

The HelmDeploy step deploys a Docker image to a Kubernetes cluster using a Helm chart.


The Helm chart used to deploy the image through this native step can be either:

  • HelmChart resource that identifies a Helm chart stored in an Artifactory repository by HelmPublish.
  • A Helm chart in a source code repository identified by a GitRepo resource.

When properly configured, the HelmDeploy step will also perform a replace_envs operation on all files specified under the valueFilePaths tag to replace all environment variables in those files with their values. This enables the step to derive information from a resource (such as the image name and tag from an Image) and use it to perform the deployment.

The HelmDeploy step uses the helm upgrade command to perform the deployment.

Usage


HelmDeploy
pipelines:
  - name:   <string>
    steps:
      - name: <string>
        type: HelmDeploy
        configuration:
          #inherits from bash
          helmVersion: <2 | 3>                  # optional, defaults to 2
          flags:               <string>         # optional
          valueFilePaths:                       # optional
            - <path and filename>
          releaseName:         <string> 
          chartPath:           <path string>
          dryRun:              <true | false>   # optional, only deploys if the dryrun is success
          lint:                <true | false>   # lints chart before upgrade, default false
          lintFlags: “--strict”
          test:                <true | false>   # runs helm test after upgrade, default false
          testFlags: “--parallel”

          integrations:
            - name:         <kubernetes integration>      		   # required
          inputResources:
            - name:         <HelmChart or GitRepo resource>        # required

        execution:
          onStart:
            - echo "Preparing for work..."
          onSuccess:
            - echo "Job well done!"
          onFailure:
            - echo "uh oh, something went wrong"
          onComplete: #always
            - echo "Cleaning up some stuff"
Page Contents

Tags

name 

An alphanumeric string (underscores are permitted) that identifies the step.

type 

Must be HelmDeploy for this step type.

configuration

Specifies all configuration selections for the step's execution environment. This step inherits the Bash/PowerShell step configuration tags, including these pertinent  tags:

Tag

Description of usage

Required/Optional

integrations Must specify a Kubernetes Integration.Required
inputResources 

Must specify either HelmChart resource or a GitRepo resource that contains a Helm chart.

Required


In addition, these tags can be defined to support the step's native operation:

Tag

Description of usage

Required/Optional
helmVersionA number representing the major version of Helm to use. Can be 2 or 3. Defaults to 2.Optional
flagsA flag string to be included in the helm command. For example: "--set key=’value’ -f myTestValues.yaml"Optional
valueFilePaths

Specifies values YAML file(s) for use with a--values (-f) option of the  helm install command.

All environment variable references in the specified file(s) will be automatically replaced with values of matching runtime environment variables. 

Optional
releaseName

The release name. Equivalent to the --name (-n) option of the  helm install command.

Required
chartPathThe path to the HelmChart in the GitRepo resource specified in inputResources. Do not use when a HelmChart resource is specified.May be required
dryRun

When true, only deploys if the --dry-run install simulation is successful.

Defaults to false.

Optional
lint

When set to true performs a  lint to examine a chart for possible issues.

Defaults to false.

Optional
lintFlagsFlag string to pass to the helm lint command.Optional
test

When set to true performs a  test to run the tests for release.

Defaults to false.

Optional
testFlagsFlag string to pass to the helm test command.Optional

execution

Declares collections of shell command sequences to perform for pre- and post-execution phases:

Tag

Description of usage

Required/Optional
onStartCommands to execute in advance of the native operationOptional
onSuccessCommands to execute on successful completionOptional
onFailureCommands to execute on failed completionOptional
onCompleteCommands to execute on any completionOptional

The actions performed for the onExecute phase are inherent to this step type and may not be overridden.

Copyright © 2021 JFrog Ltd.