semantic-release-helm-v3
v1.2.5
Published
semantic-release plugin to publish a Helm release
Downloads
22
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 -D
Examples:
version 0.1.0
appVersion 1.1.0
patch (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=true
Pass 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
}
]
]
}