semantic-release-helm-v3
v1.2.5
Published
semantic-release plugin to publish a Helm release
Maintainers
Readme
semantic-release-helm-v3
semantic-release plugin to publish Helm charts.
| Step | Description |
| ------------------ | --------------------------------------------------------- |
| verifyConditions | Verify required configuration and login to Helm registry. |
| verifyRelease | Verify the up comming release version. |
| prepare | Update version and/or appVersion in Chart.yaml. |
| publish | Publish Helm chart to registry. |
NOTE: This repository is inspired by semantic-release-helm3. semantic-release-helm3
This plugin for semantic-release updates the version and appVersion fields in a Helm chart's Chart.yaml file.
The version and appVersion are updated according to nextRelease.version.
Updating the appVersion is optional and can be disabled by setting onlyUpdateVersion to true.
Install
npm install semantic-release-helm-v3 -DExamples:
version 0.1.0
appVersion 1.1.0patch (1.1.0 -> 1.1.1)
New chart version is 0.1.1minor (1.1.0 -> 1.2.0)
New chart version is 0.2.0major (1.1.0 -> 2.0.0)
New chart version is 1.0.0
Configuration
Plugin Config
| Parameter | Type | Default | Required | Description |
| ------------------- | --------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| chartPath | string | "" | true | Chart directory, where the Chart.yaml is located. |
| registry | string | "" | false | URI of a container registry. |
| onlyUpdateVersion | boolean | false | false | Don't change appVersion if this is true. Useful if your chart is in a different git repo than the application. |
| useChartVersion | boolean | false | false | Use Chart's version and appVersion rather than use Git Tag |
| crPublish | boolean | false | false | Enable chart-releaser publishing. |
| crConfigPath | string | "" | false | Path to .ct.yaml chart-releaser configuration file. |
| isChartMuseum | boolean | false | false | Enable ChartMuseum publishing. |
| populateChangelog | boolean | false | false | Populate artifacthub.io/changes annotations with notes produced by @semantic-release/release-notes-generator compatible plugins. |
| skipRegistryLogin | boolean | false | false | Skip the helm registry login command in the verifyConditions step. |
| packageArgs | string | "" | false | Additional parameters for the helm package command, e.g. --key mykey --keyring ~/.gnupg/secring.gpg |
| cmPushArgs | string | "" | false | Additional parameters for the helm cm-push command (only relevant if isChartMuseum is set to true) e.g. --context-path /repo/path |
Environment Variables
Set chart path
export CHART_PATH=<dir>Set USE_CHART_VERSION if you want to get next version based on Chart.yml version and appVersion
export USE_CHART_VERSION=truePass credentials through environment variables accordingly:
export REGISTRY_HOST=<HOST>
export REGISTRY_USERNAME=<USERNAME>
export REGISTRY_PASSWORD=<PASSWORD>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-v3",
{
chartPath: './chart',
registry: 'localhost:5000/repo/chart'
}
]
]
}ChartMuseum Example
The helm cm-push plugin adds support for ChartMuseum repositories such as Harbor.
This will push the chart to the specified repository, e.g. https://mydomain.com/chartrepo/myproject and
tag the chart with the value of version from Chart.yaml.
It is important to set isChartMuseum to true and to specify the repository url as registry.
Note: It is required to have at least helm version 3.7.0 installed.
{
"plugins": [
[
"semantic-release-helm-v3",
{
chartPath: './chart',
registry: 'https://sample.com/chartrepo/myproject',
isChartMuseum: true
}
]
]
}