Deploying HCL Compass on Google Kubernetes Engine

Now that you have created and downloaded your hcl-compass helm chart from HCL SoFy, this quick start guide shows you deploy HCL Compass on Google Kubernetes Engine (GKE).

About this task

This task will help you perform the following actions:
  • Use Google Kubernetes Engine (GKE) to create a Kubernetes cluster. GKE is part of the Google Cloud Platform (GCP).
  • Prepare the Kubernetes cluster to install the HCL Compass solution that you downloaded from HCL SoFy.
  • Install the HCL Compass helm, get an external IP address to access the Solution Console and link to the home page of the HCL Compass product.

Procedure

  1. Use the Google Cloud Platform to create a Kubernetes cluster in the Google Kubernetes Engine.
    1. Login to the GCP console using your account information. After you are logged in, you should be in the Kubernetes Engine > Cluster view. You will be prompted to create a project.
    2. Select Create Project to build your top level GCP project. No organization is required.
    3. Select Create to create a new cluster.
    4. On the Create Cluster pop-up interface, click on Standard CONFIGURE or Autopilot CONFIGURE.
    5. On the left side, click Cluster basics. Provide a name for your cluster. Use Zonal clusters with the static version of GKE.
      Note: It is recommended to initially use the static version, which requires manual updates, and not use the release channel version.
    6. On the left side, click Node Pools, then select default-pool. By default, the node pool has 3 nodes. It is recommended to reduce this to 2 nodes by setting size number of nodes to 2.
    7. Size your nodes according to your solution. Select Nodes within the default-pool. The HCL SoFy Solution Detail page includes estimated resource needs for the solution.
    8. Select Machine Type. For example, the HCL Compass solution requires a minimum of 8 vCPU and 32 GB of memory. You could select e2-standard-8, which provides 2 nodes of 8 vCPU and 32 GB of memory.
    9. On the left side, select Networking to see the Networking configuration. Ensure that the Network and Node subnet have been set. If you encounter an issue when setting the Node subset, repeat step 1e, selecting a different Zone until you see that both Network and Node subset have been set in the Networking Configuration UI.
    10. Click Create. Your cluster should be ready in 3-5 minutes.
  2. Install the HCL Compass solution from HCL SoFy.
    1. Using the cluster list, find the cluster that you created in step 1.
    2. On the right side of your cluster, click on the three dot icon (actions) and select Connect.
    3. On the Connect to the Cluster UI, click on RUN IN CLOUD SHELL link to start the cloud shell terminal.
    4. Go the Cloud Shell Terminal.
    5. Install a supported version of Helm 3.
      wget https://hclcr.io/files/sofy/scripts/get-helm3.sh && source get-helm3.sh
    6. Install Cert-Manager in your cluster.
            $ wget https://hclcr.io/files/sofy/scripts/cert-manager-setup.sh
            $ chmod +x cert-manager-setup.sh
            $ ./cert-manager-setup.sh
    7. Install Emissary Ingress Custom Resource Definitions (CRDs).
      The below commands install Emissary-ingress CRDs in the emissary-system namespace.
      kubectl apply -f https://app.getambassador.io/yaml/emissary/2.2.3/emissary-crds.yaml
      kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
    8. Optionally, create a namespace for your solution.
      kubectl create namespace [name]
    9. Create a pull secret in the solution namespace.
      kubectl create secret docker-registry [secret-name] --docker-server=hclcr.io --docker-username=[sofy userid] --docker-password=[CLI secret] --namespace=[solution namespace]

      To set your Harbor CLI secret, login to hclcr.io with your HCL/SoFy credentials, selecting LOGIN VIA OIDC PROVIDER. In the top right corner, click the dropdown for your username, open your User Profile and enter a secret string of your choice. Use this string as the CLI secret in the command in step 2h.

  3. Use Helm to install the HCL Compass helm chart.
    1. The HCL Compass solution chart can be downloaded from the SoFy Solution URL page to your local file system by clicking the drop down arrow icon at the top right corner of the catalog overview page..
    2. Upload the solution chart to your cloud shell by clicking the four dots icon in the top right of the cloud shell terminal window.
    3. Install the solution chart using the helm install command:
            $ helm install [release-name] [file-name] \
                      --namespace [solution namespace] \
                      --set global.hclImagePullSecret=[secret-name] \
                      --set hclFlexnetURL=[flexnet-url] \
                      --set hclFlexnetID=[flexnet-id] \                
      release-name
      A release name that you choose
      file-name
      The HCL Compass solution chart in .tgz file format.
      solution namespace
      The namespace that you created in step 2c.
      secret-name
      The secret name that you created in step 2d.
      flexnet-url
      Your HCL FlexNet license server URL.
      flexnet-id
      Your HCL FlexNet license ID.
    4. Installing the HCL Compass Helm Chart that is installed with this solution chart creates the following services:
      • hcl-compass service for RESTful applications with a four database connection set.
      • hcl-compass-analytics service for the HCL Compass Analytics feature.
      • hcl-compass-search-app1 service for the Search application for the first database connection set.
      • hcl-compass-search-app2 service for the Search application for the second database connection set.
      • hcl-compass-postgresql service for the internal PostgreSQL database.
    Note: Note that the hcl-compass Helm Chart sets the persistent volume by default. If your Kubernetes environment does not provide default StoreageClass, then you must create your own default StorageClass or disable the persistent volume. If you do not, the hcl-compass pods cannot start. For more information, see HCL Compass Persistent Volumes.
  4. Access the Solution Console and link to the HCL Compass home page.
    1. Run kubectl get pods to make sure that all pods are in the running state and READY set to 1/1. It may take 3-5 minutes for all of the pods to reach the running state and READY set to 1/1.
      $ kubectl get pods –-namespace [namespace_name]
    2. Run kubectl get services to get EXTERNAL-IP address from the LoadBalancer service type.
      $ kubectl get services –-namespace [namespace_name]
    3. Start the Solution Console app in your browser by using https://sofy-console.EXTERNAL-IP.nip.io/. You will see warnings about the certificate that is used in the solution; it is safe to accept these and proceed to the Solution Console application. Log in to the application with the default user ID and password. The default user ID is sol-admin and the default password is generated during installation. When deploying in your own environment, the command to display the generated password will be output by the Helm install command. The solution console provides information about all parts of the solution, as well as links to the homepage of the HCL Compass product.
      • Go to the General Information page to see the links to the HCL Compass home page, API Base URLs, and log files for all containers.
      • If you see any issue with pods and services, check the HCL Compass pod log files. The pod may need to be restarted. Deleting the pod will restart the pod.
      • To fix any issues, you can go to the Kubernetes Resources page, and click on Pods. Find the pod for hcl-compass and then delete it. The deleted pod will start again. If the same problem still exists, contact the HCL Compass support team.
    4. When you are finished with your solution, you can use the helm delete command to uninstall it.
      $ helm delete {release-name} --namespace [namespace_name]