node-helm-chart-publisher
node package helm chart and publish to git repository plugin
Helm chart is an integral part of a project, more often its definition is placed as closest to code as possible.
In order to be able to develop both at the same time helm allows to do chart versioning.
This plugin packages the chart and leverages the possibility of using git repository as a helm repository.
Basic usage
- add chart definition to
helm
foldder in your project directory
βββ src
βββ dist
βββ helm
β βββ your-app-name
β βββ templates
β βββ values.yaml
β βββ Chart.yaml
βββ ...
- add and configure plugin in
package.json
{
"scripts": {
"helm-chart-publish": "helm-chart-publisher --projectName=<NAME-OF-YOUR-PROJECT>"
}
}
$ npm run helm-chart-publish -- --chart.version=1.0.3 --gitChartRepo.url=<HELM-CHART-GIT-URL> --gitChartRepo.username=<HELM-CHART-GIT-USERNAME> --gitChartRepo.password=<HELM-CHART-GIT-PASSWORD>
Requirements
Plugin requires helm client in version 2.x or 3.x to be installed.
Workflow
- clone git repository where helm chart definitions are stored
- init helm client
- update chart dependencies
- package chart
- reindex helm chart repository
- push changes to git repository
Parameters
Parameter | Description | Default value | Flag | Environment variable | package.json config property |
---|
Git chart repository URL | URL to a git repository in which helm charts are stored. Accepts both ssh and https protocols. | - | gitChartRepo.url | - | helm-chart-publish.gitChartRepoUrl |
Git username | Git repository username | - | gitChartRepo.username | HELM_CHART_PUBLISH_GIT_REPO_USERNAME | helm-chart-publish.gitUsername |
Git password | Git repository password | - | gitChartRepo.password | HELM_CHART_PUBLISH_GIT_REPO_PASSWORD | - |
Git repository working directory | Directory in git repository where helm chart repository is stored | / (root folder of the repository) | gitChartRepo.workDir | - | helm-chart-publish.gitChartRepoWorkDir |
Chart version | Version under which the chart will be published | project.version | chart.version | - | - |
Chart name | Name of the chart (must be the same as name in chart valyes.yaml ) | project.name | chart.name | - | helm-chart-publish.chartName |
Chart definition path | Where in the project chart definition is stored | ${projectDir}/helm/$chartName | chart.definitionPath | - | helm-chart-publish.chartDefinitionPath |