Skip to main contentMerative SPM on Kubernetes

Preparing Helm Charts

Troubleshooting If you need help troubleshooting problems, see Troubleshooting problems.

The spm-kubernetes repository provides the following Helm Charts:

  • apps: defines how to deploy the IBM® WebSphere® Liberty images with Merative Social Program Management (SPM).
  • batch: defines the batch image configuration.
  • uawebapp: defines how to deploy the Universal Access (React) application.
  • web: defines how to deploy the static content image for SPM (Curam image only).
  • mqserver: defines the IBM WebSphere MQ image configuration.
  • xmlserver: defines the xmlserver container configuration.
  • spm: an umbrella chart to contain all the other charts.

The charts use a templating mechanism to create the YAML file that is used by Kubernetes. For this reason, the main configuration values are stored for each chart in a values.yaml file in the main folder of the charts. The values can also be overwritten by the spm:* umbrella chart or by a provided override file during deployment as described in Deploying Helm Charts.

YAML is a human-readable structured data format. It provides powerful configuration settings, without having to learn a more complex code type like CSS, JavaScript, or PHP.

Preparing to run the Helm Charts

Before you run the charts, you must configure the database, configure IBM MQ, resolve all chart dependencies, and test the charts. You may also optionally integrate your deployment with an ISAM server for SSO enablement, to do so complete the steps on the Enabling ISAM page under Supporting Infrastructure before returning here.

Many of the Helm Charts that make up a deployment of SPM depend on the IBM Shared Configuration Helpers chart, so an extra Helm repository must be added using the following command:

helm repo add sch https://raw.githubusercontent.com/IBM/charts/master/repo/samples
helm repo update

Configuring the Helm Chart

A catalog of available configuration options is available in the Configuration Reference topic.

While you may change the values in your local copy of helm-charts/spm/values.yaml, it is strongly recommended to use a values override file with your custom options.

Sample override files for Minikube, AKS, and CRC are also available in the $SPM_HOME/static/resources folder. We have provided a minimum spec required for a successful deployment in these files, with more options for overriding commented out. The config options from the Configuration Reference topic should be used with these files.

In November 2020, Docker introduced download rate limits on Docker Hub. This can be mitigated by providing an Image Pull Secret to the deployment using the global.hubPullSecret.secretName value.

Configuring IBM MQ

IBM MQ is already configured to work out of the box with a secure connection with IBM WebSphere Liberty. The commands that create all the objects that are needed on the queue manager are defined in a config map, in the configmap-mqsc.yaml file.

The password for the IBM MQ web console can be retrieved from the created Secret resource using the following command after it has been deployed:

kubectl get secret <releaseName>-mq-credentials -o go-template='{{.data.adminPasswordKey | base64decode}}{{"\n"}}'

Packaging the Helm Charts

To use the Helm Charts to install SPM, package the charts and load them into a repository. For more information, see ChartMuseum.

For each chart, its dependencies must be resolved before it can be loaded into a Helm repository like Chart museum.

Due to a Helm defect, conditional subchart enablement does not work in Helm 3. As a result of this, uawebapp needs to be packaged and pushed, irrespective of whether you are deploying it or not. It is possible to remove the dependency from the spm chart.yaml, if you do not wish to package and push it to the repo.

cd $SPM_HOME/helm-charts
helm dependency update apps
helm dependency update mqserver
helm dependency update xmlserver
helm dependency update batch
helm dependency update web
helm dependency update uawebapp

If you made any changes to any of the charts, these can now be verified using the helm lint and helm template commands, for example:

cd $SPM_HOME/helm-charts
helm lint apps
helm template apps

To publish the individual charts to the Chart museum repository, run the following commands from the helm-charts folder. The commands also use the $SPM_HOME value that is defined in Install prerequisite software:

In October 2021, Helm v3.7.0 introduced a number of breaking changes, which required modifications of the tooling used in this runbook. For local development, SPM requires chartmuseum/helm-push.

Due to the changes introduced as part of Helm v3.7.0 and Chart museum v0.10.0, when using Chartmuseum the target helm push has changed to helm cm-push

cd $SPM_HOME/helm-charts
helm push apps local-development
helm push mqserver local-development
helm push xmlserver local-development
helm push batch local-development
helm push web local-development
helm push uawebapp local-development

To generate the umbrella chart that is used for the deployment, run the following commands:

cd $SPM_HOME/helm-charts
helm dependency update spm
helm push spm local-development
helm repo update