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

  1. Access the Chart Repository

    You need access to download the chart from the Harbor registry at hclcr.io/link

  2. Pull the Chart

    Once you have access, pull the chart using the Helm command:

    helm pull oci://hclcr.io/link/<chart-name> --version <version>
  3. 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.

  4. 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"
  5. 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=password

    Primary 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"
  6. 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:443
    Ingress:

    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