Skip to content

semantic-release plugin to update appVersion in a Helm chart

License

Notifications You must be signed in to change notification settings

Hatzl/semantic-release-helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

semantic-release-helm

This is a plugin for semantic-release. It updates version and appVersion of a Helm chart's Chart.yaml.

The version is increased according to nextRelease.type, which can be one of

  • major
  • premajor
  • minor
  • preminor
  • patch
  • prepatch
  • prerelease

or null if it's not valid.

The appVersion is set to nextRelease.version if onlyUpdateVersionis false or unset.

Examples:
version 0.1.0  
appVersion 1.16.0
  1. patch (1.16.0 -> 1.16.1)
    New chart version is 0.1.1

  2. minor (1.16.0 -> 1.17.0)
    New chart version is 0.2.0

  3. major (1.16.0 -> 2.0.0)
    New chart version is 1.0.0

Configuration

  • path (required) - string
    Chart directory, where the Chart.yaml is located.

  • registry (optional) - string
    URI of a container registry.

  • onlyUpdateVersion (optional) - boolean (default: false)
    Don't change appVersion if this is true. Useful if your chart is in a different git repo than the application.

Pass credentials through environment variables accordingly:

export REGISTRY_USERNAME=<USERNAME>
export REGISTRY_PASSWORD=<PASSWORD>

For S3 pass the AWS credentials as environment variables:

export AWS_REGION=<REGION>
export AWS_ACCESS_KEY_ID=<ACCESS_KEY_ID>
export AWS_SECRET_ACCESS_KEY=<SECRET_ACCESS_KEY>

Example

This will update version and appVersion in ./chart/Chart.yaml and push the chart to localhost:5000/repo/chart. The image will be tagged with the value of version from Chart.yaml.

{
  "plugins": [
    [
      "semantic-release-helm",
      {
        path: './chart',
        registry: 'localhost:5000/repo/chart'
      }
    ]
  ]
}

S3 Example

The helm-s3 plugin adds support for S3. Check the documentation for additional options

This will update version in ./chart/Chart.yaml and push the chart to s3://my-s3-bucket/s3-prefix. The image will be tagged with the value of version from Chart.yaml.

{
  "plugins": [
    [
      "semantic-release-helm",
      {
        path: './chart',
        registry: 's3://my-s3-bucket-repo/s3-prefix',
        onlyUpdateVersion: true,
      }
    ]
  ]
}

About

semantic-release plugin to update appVersion in a Helm chart

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%