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
helm repo add tobi https://this-is-tobi.github.io/helm-charts
helm search repo tobi
helm install <release_name> tobi/<chart_name>ArgoCD
[...]
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:
./ci/scripts/update-charts-dependencies.shTemplate
A template folder is available for easy integration of new chart, to use it follow the steps bellow:
Copy the template directory:
sh# Copy the template chart cp -R ./template ./charts/<chart_name> # Rename the chart sed -i "s/chartname/<chart_name>/g" ./charts/<chart_name>/Chart.yamlUpdate 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.yamlOptionally 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.yamlUpdate 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.
TIP
A shell script is also available to generate a new Helm chart:
curl -s https://raw.githubusercontent.com/this-is-tobi/tools/main/shell/helm-template.sh \
| bash -s -- -c '<chart_name>' -s '<service_name>' -a '<additional_service_name>'Notes:
-cflags set the chart name (ex:my-app).-sflags set the service name (ex:api).-a(optional) flags set the additional service name (ex:front).
Contributions
- Each PR is associated with a pipeline that checks the
lint+helm-docs. - When a merge is performed on the
mainbranch, the release pipeline publishes the new version of the chart(s) affected and updates the Helm Repo (gh-pagesbranch).
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.