Contributions are welcome, but all PRs must pass the CI check and code review. Please do not submit individual chart PRs to the keyporttech helm-repo. All Chart PRs should be submitted to the chart repos.
All individual chart repos contain Makefile that get executed on our cicd system.
Keyporttech uses a custom implementation the offical helm tooling:
- ct - @helm/chart-testing
- cr - @helm/chart-releaser
We have modified the github actions workflow to run in a standard Makefile. The steps include:
- chart version check
- helm lint
- helm template - make sure the templates render
- ct lint (ensures official helm chart standards -more in depth than helm lint)
- ct install (installs the chart locally)
- helm test - runs any tests against the installed helm repo.
To run locally in a cloned chart repo:
make build
Once a PR passes CI and code review it is deployed using the chart releaser tool. It does this – during every push to master
– by checking each chart in your project, and whenever there's a new chart version, creates a corresponding GitHub release named for the chart version, adds Helm chart artifacts to the release, and creates or updates an index.yaml
file with metadata about those releases, which is then hosted on GitHub Pages.
The cd process runs:
make deploy
The chart testing tool has a number of dependencies itself which include below:
Install ct and dependencies
pip install yamale
pip install --user yamllint
- Install the helm chart testing tool following their instructions
- Copy chart_schema.yaml to local /etc/ct/chart_schema.yaml
- Copy lintconf.yaml to local /etc/ct/lintconf.yaml
Install cr
- Install the helm chart releaser tool following their instructions
- yq
- helm 3
- kubectl