Skip to content

this-is-tobi/helm-charts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.sh

Template

A template folder is available for easy integration of new chart, to use it follow the steps bellow:

  1. Copy the template directory:

    # Copy the template chart
    cp -R ./template ./charts/<chart_name>
    
    # Rename the chart
    sed -i "s/chartname/<chart_name>/g" ./charts/<chart_name>/Chart.yaml
  2. Update the service name:

    # 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
  3. Optionally add another service:

    # 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
  4. Update chart name:

    # 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:

  • -c flags set the chart name (ex: my-app).

  • -s flags 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 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.

About

A Helm repository with personal Helm charts

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published