Installing HCL Volt MX Foundry to integrate with HCL Digital Experience
This topic explains how to integrate HCL Volt MX Foundry with HCL Digital Experience (DX). To do so, you must deploy HCL Volt MX Foundry to an existing Kubernetes cluster using Helm. This is the recommended method for production-grade, containerized installations on-premise or in the cloud.
Prerequisites
Before you begin, ensure you have:
- An existing Kubernetes cluster running version 1.27.6 or higher. This solution does not create a Kubernetes cluster for you
- Helm version 3 installed. You can download Helm binaries from the Helm Releases page on GitHub
- Administrative access to your Kubernetes cluster through
kubectl - Downloaded the Foundry Helm chart
- Deployed HCL Digital Experience (DX). For more information, refer to Deploy Container Platforms Using Helm
Deploying and configuring Volt MX Foundry with Helm
Refer to the following steps to deploy and configure Volt MX Foundry to an existing Kubernetes cluster using Helm.
-
Prepare the Helm chart.
-
Create a directory for your Foundry deployment and navigate into it using the following commands:
$ mkdir ~/Foundry-9.5.n.n_GA $ cd ~/Foundry-9.5.n.n_GANote
Replace
9.5.n.nwith your specific Foundry version (for example,9.5.15.0). -
Unzip the downloaded Helm chart into this new directory using the following command:
$ unzip ~/Downloads/HelmChart-9.5.n.n_GA.zipYou should now see the
values.yamlfile and theappsanddbupdatesubdirectories.
-
-
Generate unique IDs for your Foundry installation to initialize account details.
-
For a new deployment:
Run the
init-guids.shscript with the--newoption. This will create anupgrade.propertiesfile. Save it for future upgrades.$ ./init-guids.sh --new # Expected output will show generated keys and update values.yaml -
For an upgrade from a prior Foundry version:
- Obtain the
upgrade.propertiesfile from your prior deployment and copy it into the same directory asvalues.yaml. -
Invoke the
init-guids.shscript specifying the file path of the prior deployment'supgrade.properties.$ ./init-guids.sh --upgrade . # Expected output will show keys updated from your prior deploymentBoth steps will update
values.yamlwith the necessary configuration changes.
- Obtain the
-
-
Customize your
values.yamlfile to configure your specific deployment details. Run the following command to open thevalues.yamlfile:$ vi values.yamlThis file contains parameters for:
installEnvName: A lowercase string for your environment (for example,dev,qa,prod). The values for this parameter must not contain numbers.-
hclImagePullSecret: The Kubernetes secret configured with your HCL Harbor login details.-
If you have not created this secret, run the following command to create it:
kubectl create secret docker-registry foundry-image-pull --docker-server=hclcr.io --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email> -
Set
hclImagePullSecrettofoundry-image-pull.
-
-
foundryInstallType: Must be"PRODUCTION"or"NON-PRODUCTION". - Install Components: Set
trueorfalseforidentityEnabled,consoleEnabled,apiPortalEnabled,integrationEnabled,engagementEnabled,dbUpdateEnabled. -
Application Server Details:
enableCaCertsOverride: Set totrueif you are using self-signed or non-JRE-trusted CA certificates. Add your certificate toapps/certs/cacerts.serverDomainName: The hostname of your LoadBalancer (for example,foundry.example.com). This hostname cannot be set to an IP address orlocalhost.
-
Ingress Details:
ingress.enabled: Set totrue. This parameter is required for proper function (unless temporarily disabled for specific conditions).ingress.protocol:httporhttps. Must behttpsifingress.tlsis enabled.ingress.port: Typically80or443. Must be443ifingress.tlsis enabled.ingress.class: Set if your cluster does not have a default Ingress controller or you want to override it (for example,nginx,traefik,openshift-default,azure-application-gateway).ingress.annotations: Add additional annotations (for example,nginx.ingress.kubernetes.io/proxy-body-size: "100m"). Indent 2 spaces per annotation.ingress.tls.enabled: Set totrueto use Cluster SSL Certificate or a custom one.ingress.tls.customCertSecretName: Provide the name of the secret containingtls.crtandtls.keyfor a custom certificate.ingress.sslTermination: Set totruefor OpenShift to terminate SSL at the route.
-
Database Details:
dbType:mysql,sqlserver, ororacle.dbHost: Database server hostname. Use a static IP if the value is set to an IP address.dbPort: Port number. This parameter can be empty for cloud-managed services.dbUser,dbPass: Database username and password.dbPrefix,dbSuffix: Optional database prefix and suffix. For upgrades, use the same values as the initial installation.useExistingDb: Set totrueif you are using existing databases.- For
oracledbType, also specifydbDataTS,dbIndexTS,dbLobTS,dbService. timeZone: Optional database time zone (for example,Etc/UTC).
-
Readiness and Liveness Probes Details: Default values are provided for
readinessInitDelay,livenessInitDelay,readinessPeriodSeconds,readinessTimeoutSeconds,livenessPeriodSeconds,livenessTimeoutSeconds. Customize these as necessary. - Minimum and Maximum RAM percentage Details:
minRamPercentage(default50),maxRamPercentage(default80). - Container resource limits for memory and CPU:
resourceRequestsCpu,resourceRequestsMemory,resourceMemoryLimitfor each application (Identity, Console, API Portal, Integration, Engagement). Refer to Kubernetes documentation for details. - Custom JAVA_OPTS Details: Customize JVM options for each application using
customJavaOpts. - Number of instances for each component: Set
replicasunder each application for the desired number of container instances (default is 1).
-
Ensure
kubectlis connected to your target Kubernetes cluster by running the following command.$ kubectl get nodes # You should see your cluster nodes listed with STATUS "Ready". -
(Optional) Create a dedicated Foundry namespace to help organize your deployment using the following command:
$ kubectl create namespace <namespace> namespace/foundry created -
Install Foundry applications with Helm using the following command:
$ helm install foundry apps -f values.yaml -n <namespace> --timeout 10m # You'll see output indicating the deployment status.The deployment will take time as container images are downloaded and applications initialize.
You have now successfully installed HCL Volt MX Foundry.
Tip
- Some values are empty by default in the MX
values.yamlfile. If you do not set these values, you may encounter the following error:Error: INSTALLATION FAILED: values don't meet the specifications of the schema(s) in the following chart(s)...followed by a list of unset (or incorrectly set) parameters. For guidance on setting the values according to your specific case, refer to the Steps to Install Volt MX Foundry Container Cluster Solution. - If you get the following error:
Error: INSTALLATION FAILED: failed pre-install: 1 error occurred: * timed out waiting for the condition, you may need to investigate further, such as runningkubectl describeon a failing pod orkubectl logson related pods, to determine the actual cause. - Ensure you create the
hclImagePullSecretbefore runninghelm install, otherwise the image pull will fail.