Installing Link Cloud Native Helm Chart with Unica-Specific Images
About this task
The following procedure explains how to install the HCL Link Cloud Native Helm chart using Unica-specific images for integration with the Unica chart.
Procedure
-
Access the Chart Repository
You need access to download the chart from the Harbor registry at hclcr.io/link
-
Pull the Chart
Once you have access, pull the chart using the Helm command:
helm pull oci://hclcr.io/link/<chart-name> --version <version> -
Understand the Chart Dependencies
The key components on which the chart depends are described in the following table:
Chart components Description charts/mongodb These are bundled with the Link chart. However, if preferred, customers can opt to use externally deployed versions or cloud-managed services for MongoDB and Redis. charts/redis templates/ Directory Folder that contains all the Kubernetes manifests like Deployments, ConfigMaps, Services, Secrets, etc., that make up the core of the Helm release. Warning: Do not edit these files manually. They are managed by the charts and may change without notice.Chart.yaml Defines metadata about the Helm chart, including: - Chart name and version
- Application version
- Dependencies (subcharts)
values.yaml This file is your main override mechanism. It allows you to customize the chart by overriding default values used in the templates. README.md Includes installation instructions, usage details, and a changelog.
It is recommended to review this file before installing or upgrading the chart.
-
Overrides for standalone chart
helm install <releaseName> <path/to/chart> \ --set global.hclImageRegistry="hclcr.io" \ --set global.hclImagePullSecret="hclcr-secret" \ --set global.storageClass="link-storage-class" \ --set client.image.tag="1.3.0.1-fix-20250310112959" \ --set client.inbound.protocol="https" \ --set client.outbound.server.protocol="https" \ --set client.headers.crossOriginAllowedUrls="" \ --set server.image.tag="1.3.0.1-fix-20250310112959" \ --set server.persistence.data.shareWithRest=true \ --set server.inbound.http.enabled=false \ --set server.inbound.https.enabled=true \ --set rest.image.tag="1.3.0.1-fix-20250310112959" \ --set rest.inbound.http.enabled=true \ --set rest.inbound.https.enabled=true \ --set executor.image.tag="1.3.0.1-fix-20250310112959" -
Install Link Chart with Unica-Specific Images
If Unica does not use a dynamic secret, create a secret manually:
kubectl create secret generic hcl-unicaui-login-secret --from-literal=password=passwordPrimary user can be asm_admin or any user.
Connect the Link Helm chart with Unica-specific images to the primary Unica chart when both are deployed in the same cluster/namespace but with different release names.helm install <releaseName> <path/to/chart> \ --set global.hclImageRegistry="gcr.io/blackjack-209019" \ --set global.hclImagePullSecret="gcr-secret" \ --set global.storageClass="" \ --set client.image.tag="1.3.0.1-unica-fix-20250310112959" \ --set client.inbound.protocol="https" \ --set client.outbound.server.protocol="https" \ --set client.headers.crossOriginAllowedUrls="http://njmyclddl313111.nonprod.hclpnp.com" \ --set server.image.tag="1.3.0.1-unica-fix-20250310112959" \ --set server.persistence.data.shareWithRest=true \ --set server.inbound.http.enabled=false \ --set server.inbound.https.enabled=true \ --set rest.image.tag="1.3.0.1-unica-fix-20250310112959" \ --set rest.inbound.http.enabled=true \ --set rest.inbound.https.enabled=true \ --set executor.image.tag="1.3.0.1-unica-fix-20250310112959" \ --set kafkaLink.deploy=true \ --set kafkaLink.image.tag="1.3.0.1-unica-fix-20250310112959" \ --set kafkaLink.kafkaBroker.externalName="10.134.69.243:9092" \ --set customConnectors.enabled=true \ --set unicaIntegration.enabled=true \ --set unicaIntegration.unicapvc="hcl-unica" \ --set unicaIntegration.releaseName="hcl" \ --set unicaIntegration.initialUnicaLogin.secret="hcl-unicaui-login-secret" -
Access the Link Application
Access the Link using any of the following :
Port Forwarding:Forward a local port to the port of the application running in the pod. For examplke, using kubectl port-forward.
kubectl port-forward service/<service/name/for/link/pod> hostport:serviceport kubectl port-forward service/lnkdemo-lnk-product-client 4443:443Ingress:Configure an Ingress resource to expose your service using a domain name and route traffic via an Ingress Controller.
#working ingress yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: link-ingress annotations: nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: ingressClassName: nginx rules: - host: mynode.local http: paths: - path: /restdemo/(.*) pathType: ImplementationSpecific backend: service: name: link-lnk-product-rest port: number: 8080 - path: /serverdemo/(.*) pathType: ImplementationSpecific backend: service: name: link-lnk-product-server port: number: 8080 - path: /(.*) pathType: ImplementationSpecific backend: service: name: link-lnk-product-client port: number: 80