Fully customizable Helm Charts
IBM Industry Solutions Workbench is using pre-defined helm chart templates for the build and deployment of Service Projects. These helm charts can be adjusted or completely overridden for specific Service Projects depending on your needs and requirements.
Prerequisites
- Good knowledge about: - kubernetes resources and deployments 
- CI/CD Pipelines 
- helm charts 
 
- Access to a Helm Repository configured as Component Repositories 
- helm CLI 
Retrieve Helm Chart template
A good starting point to use own or adjust the pre-defined helm charts is to retrieve an already built helm chart from your configured Component Repository. That means after running your first Release Pipeline you can connect to the repository and retrieve the regarding helm chart.
For example:
helm repo add myrepo https://chartmuseum.my.openshift.knowis.cloud --username user --password password123
helm repo update
helm pull myrepo/myprojectacronym Now you should be able to unpack the tgz-file and use/adjust the helm chart.
Add own Helm Chart to Service Project
To use the customized helm chart in your pipelines it must be copied and pushed into your git project (Service Project) at root level. The folder structure of your project should look like:
helm-chart
  Chart.yaml
  README.md
  values.yaml
  templates
    _helpers.tpl
    configmap.yaml
    deployment.yaml
    hpa.yaml
    pdb.yaml
    route-api.yaml
    route-artifacts.yaml
    rout-root.yaml
    service.yaml
    ...
myprojectacronym-application
  src
    main
    ...
  pom.xml
src-design
  api
    ...
  domain
    ...
  schemas
    ...
solution.ymlhelm-chart folder has exactly this name and structure.
Use dynamic values in the pipeline
The following placeholder can be used in the values.yaml to be updated/replaced via the pipelines:
- %IMAGE_REGISTRY%: will be replaced by the configured image registry (e.g.- my.registry.io/namespace)
- %SOLUTION_IMAGE_TAG%: will be replaced by the service project version/tag (e.g.- 1.0.0)
- %SOLUTION_ACRONYM%: will be replaced by the service project acronym (e.g.- myservice)
- %SOLUTION_FULLNAME%: will be replaced by the service project name (e.g.- My New Service)