Required Helm Chart configuration for HCL Commerce Version 9.1
The following reference provides a more detailed look at the provided hcl-commerce-helmchart Helm Chart, and the various configuration options and considerations that are essential for a custom deployment of HCL Commerce Version 9.1 on Kubernetes.
It is strongly recommended to not modify the default values.yaml configuration file for your deployment. Instead create a copy to use as your customized values file, for example, my-values.yaml. This will allow you to maintain your customized values for future deployments and upgrades.
- Common configuration values. The required changes for all deployments.
- HCL Cache and Metrics and Service monitor configuration values
Search index job configuration
Logging configuration
Ingress configuration
Persistent volume for the Assets Tool
Integration with HCL Digital Experience
LDAP integration
Deployment on Red Hat OpenShift
Deployment with Google Anthos
Deployment with Approvals
Deployment with the Nextjs Ruby store
- Docker image configuration
- Kubernetes resource allocation
- Persisting search data
- Upgrading HCL Commerce from 9.0.x to 9.1+
Common configuration values
The following values are required to be modified in your my-values.yaml file to match the environment and cluster configuration that you want:
Parameter | Description |
---|---|
license | You must accept the license before you can deploy HCL Commerce. To view the
license, browse all of the files under the LICENSES directory.
To accept the license, set license to accept. |
|
|
common.vaultTokenSecret | The name of the secret object which contains the Vault token. Refer to Deploying a development Vault for HCL Commerce on Kubernetes and Prerequisites for deploying HCL Commerce on a Kubernetes cluster to understand how the Vault token is passed to HCL Commerce. |
common.dbType | The type of database that the environment is using. Valid values are db2 and oracle. |
common.imageRepo | The Docker Registry repository in docker_registry_domain:port format. |
common.spiUserName | The SPI user name used for basic authentication with server to server
communication. spiuser is the default value used for HCL Commerce. |
common.spiUserPwdAes | The spiuser user password, encrypted with
AES by the wc_encrypt utility. The default
plain text password is : You can use the default key to match the sample db2
database Docker container.
For more information, see Setting the spiuser password in your Docker images. |
common.spiUserPwdBase64 | The Base64 encoded value for
spiuser:password. The
default plain text password is:
This value can be obtained by piping the values through the
Base64 system utility: |
common.vaultUrl | The Vault V1 API URL. The default value is
Note: This value assumes that
hcl-commerce-vaultconsul-helmchart
was used to deploy Vault into the vault
namespace. |
common.externalDomain | The external domain used for ingress and the Store Preview URL. In the hostname
|
common.configureMode | HCL Commerce supports Vault and EnvVariables configuration modes. The default value is Vault, which is also the recommended configuration mode. |
common.imagePullSecrets | The name of the secret name which contains the credential for pulling images from your Docker Registry. Leave this value empty if the Docker Registry that is used does not require authentication. |
common.imagePullPolicy | The policy to control when to pull Docker images. Valid values are IfNotPresent and Always. |
common.serviceAccountName | The service account name which binds to the necessary roles to deploy HCL Commerce. By default, this value is default. |
common.dataIngressEnabled | ![]() |
common.localStoreEnabled | When migrating from IBM Websphere Commerce Version 7 or IBM Websphere Commerce Version 8, there is an
option to a deploy and host a store based on the Aurora-based solution from within the Transaction server. In this case, set localStoreEnabled to
true to allow Elasticsearch and Ingress to be configured properly. This is not enabled by default, as the Aurora-based store solution that is included with HCL Commerce Version 9 is remote by default. |
![]() |
The parameter to enable JSON logging. When
this parameter is set to true, it will enable
JSON logging for all application servers. Accepted values are true, to enable logging, and false to disable JSON logging. |
![]() |
The parameter to enable IPV6. When disabled,
HCL Commerce applications will add the
|
![]() |
The timezone in ICANN TZ format. For example,
America/Toronto .This parameter can also be set in all HCL Commerce containers as an environment variable, TZ. If this value is not
set, or empty, Warning: Changing the time zone will have impacts
on HCL Commerce business logic, such as marketing web
activities and promotion start and end dates and times. The
values that are set for these site behaviors will not
automatically adjust based on this timezone setting. It is
recommended to keep this value empty if your site is already
being used in a live production environment. |
vaultCA.enabled |
The parameter to enable Vault as a Certificate Authority to issue certificates. The default value is true. |
|
IngressSecret is used to specify whether to auto-generate and replace the secret for ingress. The default for both parameters is true. |
HCL Cache and Metrics and Service monitor configuration values
Parameter | Description |
---|---|
metrics.enabled | The parameter to enable metrics for HCL Commerce. The default for this parameter is true. |
metrics.serviceMonitor.enabled | The parameter to enable service monitoring with Prometheus. The default for this parameter is false. |

Search index job configuration
search-nifi
and
search-ingest
, to be ready, and then triggers the build index for your
specified stores. The job also monitors the build status and waits for it to complete.Parameter | Description |
---|---|
![]() |
The parameter to enable an
Elasticsearch-based search solution index build on
deployment. Accepted values are true to enable the index build job, or false to disable the index build job. |
![]() |
The parameter to enable the push-to-live
index connector portion within the index build job. Accepted values are true to enable the push-to-live index connector, or false to disable the push-to-live index connector. |
![]() |
The maximum duration, in seconds, for
the job to complete before it is canceled due to timeout. This value must take into account the number of stores that are indexed, the data set size, and the index build complexity of each store. If the value is not sufficiently set with a generous margin, then the job can be unintentionally canceled before it otherwise would have completed successfully. |
![]() |
The maximum duration, in seconds, for each individual index run to be canceled before timeout. |
![]() |
The interval, in seconds, for the index build job to wait in between each readiness check for each required search component. |
![]() |
The maximum time, in seconds, to wait for the Transaction server to be ready. |
![]() |
The maximum time, in seconds, to wait for the NiFi application to be ready. |
![]() |
The maximum time, in seconds, to wait for the ingest application to be ready. |
![]() |
The maximum number of retries for each index build run, in the event that the index build job fails. |
![]() |
A list of store IDs, separated by commas, to run the index builds against. |
![]() |
The parameter to enable price
calculation for B2B stores. Accepted values are true to enable price calculation, and false to disable price calculation. |
![]() |
A list of store IDs, separated by commas, to run price calculation against. |

Logging configuration
By default, the HCL Commerce applications do not provide logging in JSON format, but rather in the format that is specified in each server individually. When aggregating this data within a centralized logging system, such as EFK, it is required to enable the JSON logging format.
Parameter | Description |
---|---|
![]() |
The parameter to enable JSON logging. When
this parameter is set to true, it will enable
JSON logging for all application servers. Accepted values are true, to enable logging, and false to disable JSON logging. |

Ingress configuration
Ingress is used to allow external access to applications that are deployed within a Kubernetes cluster. The HCL Commerce Helm Chart defines ingress, to allow access to the most commonly used services in HCL Commerce, such as Management Center for HCL Commerce, and the storefront. For each of these services, you can configure the domain, ingressClass and tlsSecret for both authoring and live environments. You can use the ingress settings defined by the HCL Commerce Helm Chart, or use them as reference and define your own customized ingress based on your requirements.
Parameter | Description |
---|---|
![]() |
Enable ingress creation. Accepted values are true, to enable ingress, and false to disable ingress. |
![]() |
The ingress controller
type. Accepted values are:
Note:
|
![]() |
The Ambassador ID list for the Emissary listener that is listening on HTTP and HTTPS ports. Leave this value empty if you are only using the default Ambassador ID. If you are using different Ambassador IDs that are defined in the ingress configuration for different components, then you must add them here to create listeners for different Emissaries. |
![]() |
The API version to use for Ingress.
|
![]() |
The parameter to specify whether ingress for the Marketplace Approval service is enabled or disabled. |
![]() |
In an OpenShift Container deployment, the
routes resources will be created directly instead of ingress.
Specify the CA certificate to allow the HAProxy proxy to trust the certificate of HCL Commerce servers. The CA certificate is the one that you specified in Vault deployment. |
ingressSecret.autoCreate | The parameter specifies if the Helm
per-install is used to generate an ingress certification
secret. This is a convenient way to generate the self-signed certificate for a testing environment. |
ingressSecret.replaceExist | The parameter to specify if the existing ingress certification secret needs to be replaced when deployed. |
![]() |
The parameter to specify whether
ingress is enabled for the Manage Approval page
used for the Marketplace approval service. Accepted values
are: This is disabled (false) by
default.
|

Persistent volume for the Assets Tool
The Assets Tool was reintroduced in HCL Commerce 9.1.8.0. A persistent volume
with ReadWriteMany
access can be created to store the assets that are added
and managed via this Management Center tool.
For more information on the Assets Tool, see Assets tool.
For more information on persistent volumes in Kubernetes, see Persistent Volumes in the Kubernetes documentation.
Parameter | Description |
---|---|
![]() |
Create a PersistentVolumeClaim (PVC) for the
Assets Tool.
|
![]() |
The storage class name that is used by
the PVC for the Assets Tool. This resource provider must support the
ReadWriteMany access mode. |
![]() |
The storage size that is assigned to the persistent volume. |
![]() |
The access mode of the PVC. This is
required to be |
![]() |
If there is already an existing PVC for the Assets Tool in the authoring environment, you can assign it with this parameter. |
![]() |
If there is already an existing PVC for the Assets Tool in the live environment, you can assign it with this parameter. |

Integration with HCL Digital Experience
auth
and
live
HCL Digital Experience (DX) environments that are deployed in the same cluster as HCL Commerce.- Nginx ingress must be used to deploy HCL Commerce. GKE ingress is not supported.
- With this configuration, DX is made to be accessible with the same domain name as HCL Commerce.
Parameter | Description |
---|---|
dx.enabled | The parameter to enable or disable DX configurations. The default for this parameter is false. This configuration is ignored if both dx.namespace.auth and dx.namespace.live do not have values. |
dx.namespace.auth | The DX auth environment namespace. This must be in the same cluster as
Commerce. |
dx.namespace.live | The DX live environment namespace. This must be in the same cluster as
Commerce. |
![]() |
The auth DX routing
(load balancer) service name. Accepted values are
haproxy or ambassador
based on the DX version. You can obtain the service name with
kubectl get service . |
![]() |
The live DX routing
(load balancer) service name. Accepted values are
haproxy or ambassador
based on the DX version. You can obtain the service name with
kubectl get service . |

Integration with LDAP
Beginning with HCL Commerce 9.1.9.0, HCL Commerce can be integrated with a number of popular Lightweight Directory Access Protocol (LDAP) services, or with a custom LDAP implementation.
The values here describe if LDAP integration is enabled, for which environment, and then how LDAP configuration details are provided to the deployment for each environment. The actual configuration details are provided separately depending on the configuration mode selected.
For more information, see Integrating HCL Commerce Kubernetes deployments with LDAP.
Parameter | Description |
---|---|
![]() |
Specifies if LDAP is enabled for the
authoring environment. Accepted values are:
Note: By default, Vault is the
default configuration method. There is no parameter required
to specify this method of LDAP
configuration. |
![]() |
You can use the
vmm.properties file to define LDAP
configuration for a Kubernetes deployment by including a copy of it
within a custom Transaction server Docker container. To use this configuration method, set this value to true, and then follow the instructions for Integrating HCL Commerce Kubernetes deployments with LDAP. Accepted values are:
|
![]() |
You can use the
ldap-vmm-auth.properties configuration file
to define LDAP configuration for a Kubernetes deployment. To use this configuration method, set this value to true, and then follow the instructions for Integrating HCL Commerce Kubernetes deployments with LDAP. Accepted values are:
|
![]() |
Specifies if LDAP is enabled for the live
environment. Accepted values are:
Note: By default, Vault is the
default configuration method. There is no parameter required
to specify this method of LDAP
configuration. |
![]() |
You can use the
vmm.properties file to define LDAP
configuration for a Kubernetes deployment by including a copy of it
within a custom Transaction server Docker container. To use this configuration method, set this value to true, and then follow the instructions for Integrating HCL Commerce Kubernetes deployments with LDAP. Accepted values are:
|
![]() |
You can use the
ldap-vmm-auth.properties configuration file
to define LDAP configuration for a Kubernetes deployment. To use this configuration method, set this value to true, and then follow the instructions for Integrating HCL Commerce Kubernetes deployments with LDAP. Accepted values are:
|

Deployment on Red Hat OpenShift
Deployment on Red Hat OpenShift is possible with the parameters specified in this section.
Red Hat Plinux OpenShift
Red Hat Xlinux OpenShift
By default, OpenshiftDeployment.enabled is set to false.
Parameter | Description |
---|---|
![]() |
Enable deployment on Red Hat OpenShift. Accepted values are true, and false. |
![]() |
The Security Context Constraints (SCC) that you want to be granted access for the deployment. |
![]() |
In an OpenShift Container deployment, the
routes resources will be created directly instead of ingress.
Specify the CA certificate to allow the HAProxy proxy to trust the certificate of HCL Commerce servers. The CA certificate is the one that you specified in Vault deployment. |

Deployment with Google Anthos
Deployment with Google Anthos is possible with the parameters specified in this section. You can still use HCL Commerce with Google Anthos by manually updating the Helm Chart.
By default, AnthosDeployment.enabled is set to false.
Parameter | Description |
---|---|
![]() |
Introduced in HCL Commerce9.1.11.0, Google Anthos is supported by the
HCL Commerce Helm Chart. Enable this feature for
deployment when Google Anthos is used. This disables the istio
sidecar injection for pre-install,
pre-delete,
create-index,
nifi, and ingest to
avoid failures. Note: You can still use older
versions of HCL Commerce with Google Anthos by
manually updating the HCL Commerce Helm
Chart. |

Deployment with Approvals in the Marketplace
Deployment with Approvals in the Marketplace is possible with the parameters specified in this section.
Parameter | Description |
---|---|
![]() |
Introduced in HCL Commerce
9.1.12.0, the Approval service is used for approvals within a
Marketplace. The Approval service application requires a
separately deployed PostgresSQL that must be running before the
service is started. The PostgreSQL database URL is passed to the
Approval service using the Helm Chart where there is a
bootConfig section under
approvalApp . |


Deployment with the Nextjs Ruby store
Deployment with Ruby is possible with the parameters specified in this section.
Parameter | Description |
---|---|
![]() |
![]() |
Docker image configuration
Under each application definition (that is, definitions for tsApp
,
tsWeb
, etc.), the image path is the path to the image relative to
the common.imageRepo, and the tag defines the image tag. Ensure that each
application has the correct image path and tag based on the actual images stored in your Docker
Registry.
Kubernetes resource allocation
Under each application definition (that is, definitions for tsApp
,
tsWeb
, etc.), the replica value is set to
1 by default. This means that only one Pod is deployed per application
defined. To increase the performance and processing power of your deployment, you can
increase the replica value for some application such as tsApp
. You can
also customize the resource allocation by modifying the resources definition for each
application.
Persisting search data
It is strongly recommended to mount persistent storage volumes within your search containers to allow HCL Commerce applications to persist data. If you do not set up persistent storage, the search index that is stored inside of the Docker container will be destroyed if the container is terminated for any reason.
- Solr-based search solution:
searchAppMaster
searchAppRepeater
- Elasticsearch-based search solution:
nifiApp
elasticsearch
To mount a storage volume, create a persistent volume claim in Kubernetes and match it to the corresponding application. Repeat this creation process for each application that requires persistent storage.
- Create a yaml file with the following definitions.
For the purpose of this example, this file will be called pvc.yaml.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc name, e.g demoqa-nifi-pvc> namespace: <namespace, e.g commerce> spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: <storage class name, e.g standard for gke>
- Create the persistent volume claim based on your yaml file definition.
Run the following command to load the file:
kubectl apply -f pvc.yaml
.The persistent volume claim is created.
- Match the application with its persistent volume claim.
Configure the deployment persistentVolumeClaim parameter value for the application and persistent volume claim pairing.
Upgrading HCL Commerce from 9.0.x to 9.1+
- app (WCSV9)
- chart ({{ .Chart.Name }}, For example, ibm-websphere-commerce)
- release ({{ .Release.Name }}, For example, demo-qa-auth)
- heritage ({{ .Release.Service }}, For example, Helm)
- component ({{ .Values.common.tenant }}{{ .Values.common.environmentName}}{{ .Values.common.environmentType }}{{.Values.xxApp.name}}, For example, demoqaauthcrs-app)
- group ({{ .Values.common.tenant }}{{ .Values.common.environmentName}}{{ .Values.common.environmentType }}, For example, demoqaauth)
In this Helm Chart example, the application and chart values are updated. This would cause Helm upgrade to fail as the LabelSelector is immutable. To upgrade a Version 9.0.x.x deployment to a Version 9.1.x.x using this Chart without downtime, specify the backwardCompatibility.selector to match the existing deployment.
backwardCompatibility:
selector:
## In the Version 9.0.x.x Helm Chart, app is specified as WCSV9 by default
app: WCSV9
## In the Version 9.0.x.x Helm Chart, chart is specified as ibm-websphere-commerce by default
chart: ibm-websphere-commerce
backwardCompatibility:
selector: {}