@eshepelyuk/semantic-release-helm-oci v2.1.0
semantic-release-helm-oci
semantic-release plugin for publishing Helm charts to OCI compatible registries.
| Step | Description |
|---|---|
verifyConditions | Verify plugin configuration and login to Helm registry. |
prepare | Package Helm chart to local folder. |
publish | Publish Helm chart to OCI registry. |
chartPath | Chart directory, where the Chart.yaml is located. |
Installation
npm i @eshepelyuk/semantic-release-helm-oci -DUsage
The plugin can be configured in the semantic-release configuration file :
.releaserc.json
{
"plugins": [
["@eshepelyuk/semantic-release-helm-oci", {
"registry": "oci://ghcr.io/eshepelyuk/abc"
}]
]
}.releaserc.yaml
plugins:
-
- '@eshepelyuk/semantic-release-helm-oci'
- registry: oci://ghcr.io/eshepelyuk/abcWith this example, for each release, a Helm chart will be published to
oci://ghcr.io/eshepelyuk/abc/${CHART_NAME}:${CHART_VERSION}.
Where ${CHART_NAME} is a name from Chart.yaml
and ${CHART_VERSION} is a version detected by semantic-release.
version and appVersion in Chart.yaml
Plugin intentionally doesn't modify Chart.yaml during the release. It's recommended to use Git tags for maintaining release versions.
The plugin leverages --version and --app-version when calling helm package
to manage published chart versions and not rely on Chart.yaml.
There's two usage scenarios for this plugin:
The chart and the application are co-located in the same repository.
In this case, the
versionandappVersionare both changed during a release. This is a default plugin's behaviour.The chart is maintained separately from the application.
In this case
appVersionis modified outside of chart's release process and must be updated manually in Chart.yaml. To prevent plugin from setting--app-version- useskipAppVersionoption.
Configuration
Environment variables
Credentials for OCI registry authentication are passed through environment variables:
| Variable | Description |
|---|---|
REGISTRY_USERNAME | Required. OCI registry username. |
REGISTRY_PASSWORD | Required. OCI registry password. |
Options
| Option | Description | Type | Default |
|---|---|---|---|
registry | Required. Registry URL with oci:// schema,e.g. oci://ghcr.io/eshepelyuk/abc. | string | undefined |
skipAppVersion | Use appVersion from Chart.yaml when packaging chart, instead of using semantic-release nextVersion | boolean | false |