Commerce+ Helm chart reference

The following complete reference details the provided hcl-commerce-helmchart Helm chart, and the various configuration options that are available for deploying Commerce+ 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.

The hcl-commerce-helmchart Helm chart parameters and their default values

The following sections break down the list of Helm Chart parameters into sections for organizational purposes only. For a more detailed breakdown and description of the Commerce+ features that they correspond or overlap with, see Required Helm Chart configuration for Commerce+.

Base deployment configuration
Parameter Description Default value
license The Commerce+ license.

You must accept the license before you can deploy Commerce+. To view the license, browse all of the files under the LICENSES directory.

To accept the license, set  license  to  accept.

not_accepted
common.timezone

The timezone is in IANA TZ format. For example, America/Toronto.

This parameter can also be set in all Commerce+ containers as an environment variable, TZ.

If this value is not set, or empty, GMT will be used in all containers by default.

Warning: Changing the time zone will have impacts on 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.
nil
common.tenant The tenant name.

The common.tenant value can be your organization name. You can have multiple environments under the same tenant.

demo
common.environmentName The environment name.

The common.environmentName is the name of the environment. Some examples of environment name are dev, qa or production. Each Commerce+ environment can be used to partition logical groups of different hosted applications.

qa
common.environmentType The environment type.

Accepted values are:

  • auth
  • live
  • share
The common.environmentType is the specific environment type. For each environment, an environment type must be specified:
  • auth holds the Commerce+ staging applications used by administration and business users.
  • live holds the production applications to serve live traffic to end users of your storefront.
  • share holds the applications that can be consumed by both auth and live environment types. For example, the new Search solution and new tooling are deployed in the share group.

To deploy all Commerce+ instances using a single Helm chart, multiple environment types can be specified as comma-separated-values such as auth, live, share.

auth
common.vaultTokenSecret The Kubernetes secret object for vault token. vault-token-secret
common.dbType The database type.
Accepted values are:
  • db2 for IBM db2
  • oracle for Oracle
  • postgres for PostgreSQL
postgres
common.imageRepo The Docker image Registry. my-docker-registry.io:5000/
common.spiUserName The spiuser user name.

For more information, see Configuring the spiuser password for Commerce+ Kubernetes Deployment.

spiuser
common.spiUserPwdAes The spiuser user password, encrypted with AES by the wcs_encrypt utility.
The default plain text password is :
  • TxV9uCk6URiwvSVaa4odD94jaKi2za8ssjneSWdu7vgKHd, which when encrypted corresponds with the default key, opsKG7t6iFVptA+z7JUKe+JQJgOXfDkZUUpiUMS1hJZL9hYK3ymSQ2ssVDoz+SToaC/H3g+g+9RGcLejkI/KpPLI5Q+=.
You can use the default key to match the sample postgres database Docker container.

For more information, see Configuring the spiuser password for Commerce+ Kubernetes Deployment.

nil
common.spiUserPwdBase64 The Base64 encoded value for  spiuser:password.
The default plain text password is:
  • FyxsV9uCk6URiwvPVaa9wdD66jaHi2za5ssjnfJMdu3vIqi, or  c6BpdYNlcjpReFY3dUNrNlJSaXd2UFhhYTR+3ZEQ3OGphHTkyemE6c7NqbmVOTWR+1M3ZncjK= in Base64.

This value can be obtained by piping the values through the Base64 system utility: echo -n spiuser:password | base64

nil
common.vaultUrl The Vault v1 API URL. http://vault-.vault.svc.cluster.local:8200/v1
Note: This value assumes that hcl-commerce-vault-helmchart was used to deploy Vault into the vault namespace.
common.externalDomain The external domain use to specify the service external domain name. .mycompany.com
common.bindingConfigMap The name of the ConfigMap that is to be mounted into each container to expose environment variables. Leave this value blank if you are not using a ConfigMap to pass configuration to each application. nil
common.configureMode The default container configuration mode.
Accepted values are:
  • Vault
Vault
common.imagePullSecrets

Secret to pull an image from a docker registry or repository.

Secret is also known as an authorization token, that stores Docker credentials that are used for accessing a registry.

For example:

kubectl create secret docker-registry myregistrykey --docker-server=cluster_CA_domain:8500 --docker-username=user_name --docker-password=user_password --docker-email=user_email

nil
common.imagePullPolicy The image pull policy.

Accepted values are:

  • IfNotPresent
  • Always
IfNotPresent
common.ipv6Enabled

The parameter to enable IPV6.

When disabled, Commerce+ applications adds the java.net.preferIPv4Stack=true JVM parameter, and use IPv4.

Accepted values are true, to enable IPv6, and false to use IPv4.

false
vaultCA.enabled The parameter to enable Vault Certificate Authority (CA) configuration mode. true
hclCache.configMap The ConfigMap that is used for HCL Cache definition. See the values.yaml file for the default configuration.
commercenfs Non-production usage only to support RWX storage. Recommend to deploy separately in order to persist data when uninstalling the Commerce+ PBC Helm Chart. For more details, see nfs-server-provisioner.
metrics.enabled The parameter to enable metrics for Commerce+. true
metrics.serviceMonitor.enabled The parameter to enable service monitor for Commerce+. false
metrics.serviceMonitor.interval The interval, in seconds, to allow Prometheus to query Commerce+ for service monitoring. 15s
metrics.serviceMonitor.selector.prometheus The labels for Prometheus to match for service monitoring. kube-prometheus
tsPostgres The details of the configuration for the tsPostgres deployment. See the values.yaml file for the default configuration.
tsApp The details of the configuration for the tsApp deployment. See the values.yaml file for the default configuration.
tsWeb The details of the configuration for the tsWeb deployment. See the values.yaml file for the default configuration.
toolingWeb The details of the configuration for the toolingWeb deployment. See the values.yaml file for the default configuration.
storeWeb The details of the configuration for the storeWeb deployment. See the values.yaml file for the default configuration.
nextjsApp The details of the configuration for the nextjsApp deployment. The Ruby storefront is a starter store based on the Next.js framework that enables React-based web applications with server-side rendering and generation of static websites. For more information, see Ruby storefronts. See the values.yaml file for the default configuration.
xcApp The details of the configuration for the xcApp deployment. See the values.yaml file for the default configuration.
nifiApp The details of the configuration for the nifiApp deployment. See the values.yaml file for the default configuration.
registryApp The details of the configuration for the registryApp deployment. See the values.yaml file for the default configuration.
ingestApp The details of the configuration for the ingestApp deployment. See the values.yaml file for the default configuration.
queryApp The details of the configuration for the queryApp deployment. See the values.yaml file for the default configuration.
cacheApp Configuration details for cache application deployment. See the values.yaml file for the default configuration.
tsUtils The details of the configuration for the tsUtils deployment. See the values.yaml file for the default configuration.
supportC.image The Support container Docker image to be used as the Helm initContainer, to control pre-install and post-delete processes. commerce/supportcontainer
supportC.tag The Support container Docker image tag. 24.12.17.0
test.image The Test Docker image for Helm test. docker.io/centos:latest
searchAppMaster The details of the configuration for the search-app-master deployment. See the values.yaml file for the default configuration.
searchAppSlave The details of the configuration for the search-app-slave deployment. See the values.yaml file for the default configuration.
searchAppRepeater The details of the configuration for the search-app-repeater deployment. See the values.yaml file for the default configuration.
orchestrationApp The details of the configuration for the orchestration-app deployment. See the values.yaml file for the default configuration.
mustgatherAppMaster The details of the configuration for the mustgather-app deployment. See the values.yaml file for the default configuration.
Gateway Configuration
Parameter Description Default value
gateway.enabled Enables the creation of Kubernetes Gateway API resources. Accepted values are true to enable the gateway and false to disable it. true
gateway.type Specifies the gateway type. Supported value: istio. istio
gateway.serviceAnnotations Specifies the annotations to add to the Gateway resource. For the default configuration, see the values.yaml file. See the values.yaml file for the default configuration.
gateway.gatewayClass.name Specifies the gatewayClassName for the Gateway resource. Template expressions are supported. istio-{{ $.Values.common.tenant }}{{ $.Values.common.environmentName }}
gateway.gatewayClass.create Specifies whether to create the GatewayClass resource as part of the Helm release. Accepted values are true and false. true
gateway.gatewayClass.controllerName Specifies the controller name for the GatewayClass resource. istio.io/gateway-controller
gateway.backendTLSCAConfigMap Specifies the Kubernetes ConfigMap that contains the backend CA certificate for the BackendTLSPolicy. If not specified, the default ConfigMap vault-backend-ca-cm-{envType} is used. nil
gateway.backendTLSCASecret Specifies the Kubernetes Secret that contains the backend CA certificate for the BackendTLSPolicy. If not specified, the default secret vault-backend-ca-secret-{envType} is used. nil
gateway.enableToolingForReactStore Specifies whether the gateway allows the Sapphire store to launch B2B tooling. Accepted values are true to enable and false to disable. true
gateway.gatewaySecret.autoCreate Specifies whether Helm automatically creates the gateway TLS certificate secret during the pre-install phase. Accepted values are true and false. true
gateway.gatewaySecret.replaceExist Specifies whether an existing gateway TLS certificate secret is replaced during deployment. Accepted values are true and false. true
gateway.gatewaySecret.tlsSecret Specifies a shared TLS secret for all gateway listeners. If not specified, component-specific TLS secrets or automatically generated secrets are used. nil
Search configuration

The following are all search-related configurations, excluding search server and ingress configurations.

Parameter Description Default value
common.searchEngine The Search solution.
Accepted values are:
  • solr for the Commerce+ Solr-based search solution.
  • elastic for the Commerce+ Elasticsearch-based search solution.
elastic
searchIndexCreation.enabled The parameter to enable an Elastic-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.

See the values.yaml file for the default configuration.
searchIndexCreation.pushToLiveEnabled 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.

See the values.yaml file for the default configuration.
searchIndexCreation.overalMaxDuration 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.

See the values.yaml file for the default configuration.
searchIndexCreation.indexMaxDuration The maximum duration, in seconds, for each individual index run to be canceled before timeout. See the values.yaml file for the default configuration.
searchIndexCreation.interval The interval, in seconds, for the index build job to wait in between each readiness check for each required search component. See the values.yaml file for the default configuration.
searchIndexCreation.maxRetry The maximum number of retries for each index build run, in the event that the index build job fails. See the values.yaml file for the default configuration.
searchIndexCreation.txnMaxDuration The maximum time, in seconds, to wait for the Transaction server to be ready. See the values.yaml file for the default configuration.
searchIndexCreation.nifiMaxDuration The maximum time, in seconds, to wait for the NiFi application to be ready. See the values.yaml file for the default configuration.
searchIndexCreation.ingestMaxDuration The maximum time, in seconds, to wait for the ingest application to be ready. See the values.yaml file for the default configuration.
searchIndexCreation.storeIds A list of store IDs, separated by commas, to run the index builds against. See the values.yaml file for the default configuration.
searchIndexCreation.calculatePriceEnabled The parameter to enable price calculation for B2B stores.

Accepted values are true to enable price calculation, and false to disable price calculation.

See the values.yaml file for the default configuration.
searchIndexCreation.calculatePriceStoreIds A list of store IDs, separated by commas, to run price calculation against. See the values.yaml file for the default configuration.
Persistent volume for the Assets Tool
Parameter Description Default value
assetsPVC.enabled Create a PersistentVolumeClaim (PVC) for the Assets Tool.
  • If set to true, a PVC with ReadWriteMany access mode is created.
  • If set to false, no PVC is created.
false
assetsPVC.storageClass The storage class name that is used by the PVC for the Assets Tool. This resource provider must support the ReadWriteMany access mode. This defaults to the default storage class for the cluster.
assetsPVC.storage The storage size that is assigned to the persistent volume. 5Gi
assetsPVC.accessMode The access mode of the PVC.

This is required to be ReadWriteMany for the Assets Tool PVC.

ReadWriteMany
assetsPVC.existingClaim.auth If there is already an existing PVC for the Assets Tool in the authoring environment, you can assign it with this parameter. nil
assetsPVC.existingClaim.live If there is already an existing PVC for the Assets Tool in the live environment, you can assign it with this parameter. nil

For more details and keycloak configuration options see the values.yaml file.

Open Telemetry configuration:
Parameter Description Default value
openTelemetry.javaAgentEnabled Enable Open Telemetry Java Agent true
openTelemetry.javaAgentJarVersion Open Telemetry Java Agent version, the current version is 2.7.0. If you want to use a different version, use this configuration to specify the version. nil
openTelemetry.javaAgentJarDownloadUrl The url to be used to download OpenTelemetry Java Agent JAR. This configuration is required when use the specified openTelemetry.javaAgentJarVersion
openTelemetry.exporterOtlpEndpointEnabled

When there is no OTLP exporter endpoint, or when you do not want to configure or enable exporters,

Set the value to false to disable exporters for telemetry data, and /SETUP/otel/otel_noexporters.properties will be used for the configuration.

false
openTelemetry.configMap

ConfigMap for OpenTelemetry java agent configure file.

Configuration file name will be otel_config.properties and mounted to /SETUP/otel/config

Leave any properties with variable substitutions untouched, and those will be set automatically.

Some other optional environment variables that are already defined in the templates including
 ${OTEL_K8S_NAMESPACE}, ${OTEL_K8S_POD_UID}, ${OTEL_K8S_POD_NAME}
, and you can add those based on your requirements.
openTelemetry.nextjsOtelEnabled

Opentelemetry enablement for nextjs server. Nextjs server is not using Java, and therefore Java related configration under openTelemetry will be ignored. Properties defined under Opentelemetry.configMap will be configured as environment variables in Nextjs server.

True