Helm charts ⚓
This repository hosts a set of personal Helm Charts and exposes a Helm Repository at https://this-is-tobi.github.io/helm-charts thanks to Github Pages and the Github Action chart releaser.
TIP
See charts details here.
Chart list
Chart | Application | Description | ArtifactHub |
---|---|---|---|
backup-utils | - | Easy backup tools deployment. | link |
cnpg-cluster | CNPG | Easy CNPG cluster deployment. | link |
dashy | Dashy | A self-hostable personal dashboard. | link |
homarr | Homarr | A self-hostable personal dashboard. | link |
vso-utils | VSO | Easy VSO objects deployment. | link |
Usage
CLI
sh
helm repo add tobi https://this-is-tobi.github.io/helm-charts
helm search repo tobi
helm install <release_name> tobi/<chart_name>
ArgoCD
yaml
[...]
sources:
- repoURL: https://this-is-tobi.github.io/helm-charts
chart: <chart_name>
targetRevision: <version> # 1.0.*
helm:
releaseName: <release_name>
parameters: []
values: ""
Dependencies updates
A script is available to help upgrade charts dependencies:
sh
./ci/scripts/update-charts-dependencies.sh
Template
A template folder is available for easy integration of new chart, to use it follow the steps bellow:
Copy the template directory:
sh# Clone the template chart cp -R ./template ./charts/<chart_name> # Rename the chart sed -i "s/chartname/<chart_name>/g" ./charts/<chart_name>/Chart.yaml
Update the service name:
sh# Rename the templates directory mv ./charts/<chart_name>/templates/servicename ./charts/<chart_name>/templates/<service_name> # Update service name in template files find ./charts/<chart_name>/templates/<service_name> -type f -exec sed -i "s/servicename/<service_name>/g" ./charts/<chart_name>/values.yaml {} \; # Update service name in values file yq eval ".<service_name> = .servicename | del(.servicename)" -i ./charts/<chart_name>/values.yaml sed -i "s/servicename/<service_name>/g" ./charts/<chart_name>/values.yaml
Optionally add another service:
sh# Clone additional service cp -R ./template/templates/servicename ./charts/<chart_name>/templates/<other_service_name> # Update service name in template files find ./charts/<chart_name>/templates/<other_service_name> -type f -exec sed -i "s/servicename/<other_service_name>/g" ./charts/<chart_name>/values.yaml {} \; # Update service name in values file yq eval ".<other_service_name> = load(\"./template/values.yaml\").servicename" -i ./charts/<chart_name>/values.yaml sed -i "s/servicename/<other_service_name>/g" ./charts/<chart_name>/values.yaml
Update chart name:
sh# Update chart name in values sed -i "s/chartname/<chart_name>/g" ./charts/<chart_name>/values.yaml
Do not forget to change
<chart_name>
,<service_name>
and<other_service_name>
placeholders.
Contributions
- Each PR is associated with a pipeline that checks the
lint
+helm-docs
. - When a merge is performed on the
main
branch, the release pipeline publishes the new version of the chart(s) affected and updates the Helm Repo (gh-pages
branch).
TIP
The version in the Chart.yaml
file must be modified before the merge to main, otherwise the release pipeline will error on version duplication.
Sources
Take a look at the project sources.