Using HCL Compass RESTful service in Kubernetes without search features

You can create a RESTful service for HCL Compass running on Kubernetes.

Before you begin

Before you can start setting up HCL Compass RESTful and Search features in the same Kubernetes service, you must first complete steps 1 and 2 as outlined in Deploying HCL Compass on Google Kubernetes Engine.

Procedure

  1. Create new .yaml files to update the default Helm chart values for the database connection and to disable search.
    1. Create a .yaml file named compass_without_search.yaml. Set values for the following:
      • The Secret name that you created in Deploying HCL Compass on Google Kubernetes Engine.
      • The FlexNet License URL and License ID.
      • The database connection-1 parameters in the db.connectionSet. If you need to add more than one database connection setting, use the ("connection-1" "connection-3" ..... "connection-n") format to add connection 2 through connection N.
      ######################## The secret name ####################
      ## global.hclImagePullSecret:            Your own secret-name with your credentials to HCL's docker repository.
      #############################################################
      global:
        hclImagePullSecret: <secret-name>
      
      ################ HCL FlexNet license setting ################
      ## hclFlexnetURL:                       Your HCL FlexNet license server URL.
      ## hclFlexnetID:                        Your HCL FlexNet license ID.
      #############################################################
      hclFlexnetURL: <license_url>
      hclFlexnetID: <license_id> 
      
      hcl-compass:
        ############# Database connection settings ################
        ## This example shows one database connection for connection-1.
        ## For additional connection setting use must follow this format: 
        ##    ("connection-1" "connection-2" ..... "connection-n")
        ###########################################################
      db:
          connectionSet: ("-v <db_vendor> -d <db_name> -s <db_server> -u <user> -p <password> -dbset <dbset_name>")
      
        ## Disabled Search feature configuration.
        ########## Disabled Search feature configuration ###########
        ## search.withCompass:                Set false when the HCL Compass search feature is not configure in HCL Compass RESTful pod's container.
        ############################################################
        search:
          withCompass: false
      
        ########### Disabled the search app1 service  #############
        ## searchapp1.service:                  Set false to disable the internal oracle service
        ###########################################################
        searchapp1:
          service: false
      
        ########### Disabled the search app2 service  #############
        ## searchapp2.service:                  Set false to disable the internal oracle service
        ###########################################################
        searchapp2:
          service: false
      
        ######### Disabled search service and oracle Service ######
        ## service.enabled.oracle               Set false to disable the internal oracle service and create and connection to you own database.
        ## service.enabled.search               Set false to disable search service.
        ###########################################################
        service:
          enabled:
            oracle: false
            search: false
    2. Optionally, if you plan to install SSL certificates, follow the instructions in Managing the search features service.
  2. Install the solution and start HCL Compass.
    1. Run the helm install command using - f compass_without_search.yaml -f ssl.yaml.
      $ helm install [release-name] [file-name] \
          -f compass_without_search.yaml -f ssl.yaml \
          --namespace [solution namespace]
      release-name
      The release name that you select.
      file-name
      The HCL Compass Solution Chart .tgz file.
      namespace
      The solution namespace that you created.
    2. Run kubectl get pods to make sure that all pods are in the Running state and READY set to 1/1.
      $ kubectl get pods --namespace [namespace_name]
      For example:
      user@cloudshell:~/dev (hcl-gcp-l2com-sofy)$ kubectl  get pods --namespace dev
      NAME                                                  READY   STATUS      RESTARTS   AGE
      acs-kc-compass1-0                                     1/1     Running     0          22m
      compass1-access-control-service-58f9fbb4-j2vbr        1/1     Running     0          22m
      compass1-acs-kc-postgresql-0                          1/1     Running     0          22m
      compass1-ambassador-58d87d8cbc-2ww89                  1/1     Running     0          22m
      compass1-ambassador-58d87d8cbc-hs6kg                  1/1     Running     0          22m
      compass1-ambassador-58d87d8cbc-jbpc7                  1/1     Running     0          22m
      compass1-anchor-55d485b6dd-xzvvb                      1/1     Running     0          22m
      compass1-grafana-58f9f86998-4p5nk                     2/2     Running     0          22m
      compass1-hcl-compass-bb6b98c76-vfmsw                  1/1     Running     0          22m
      compass1-ksmetrics-576b9bc495-4rp7c                   1/1     Running     0          22m
      compass1-openldap-75dbb976f4-dkh2g                    1/1     Running     0          22m
      compass1-prometheus-server-6564dd994f-tz4xk           2/2     Running     0          22m
      compass1-sofy-console-fb6dd56db-q4db4                 1/1     Running     0          22m
      compass1-solution-controller-df475689d-6h4fk          1/1     Running     0          22m

      The HCL Compass pod names appear in the following format: -hcl-compass-<unique_number>: compass1-hcl-compass-bb6b98c76-vfmsw

    3. Run kubectl get services to get the EXTERNAL-IP address from the LoadBalances Service type:
      $ kubectl get services --namespace [namespace_name]
      For example:
      user@cloudshell:~/dev (hcl-gcp-l2com-sofy)$ kubectl  get services  -n dev                                 
      NAME                                  TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                   AGE
      acs-kc-compass1-headless              ClusterIP      None            <none>           80/TCP                    28m
      acs-kc-compass1-http                  ClusterIP      10.212.31.181   <none>           80/TCP,8443/TCP,9990/TCP  28m
      compass1-access-control-service       ClusterIP      10.212.16.40    <none>           80/TCP                    28m
      compass1-acs-kc-postgresql            ClusterIP      10.212.31.90    <none>           5432/TCP                  28m
      compass1-acs-kc-postgresql-headless   ClusterIP      None            <none>           5432/TCP                  28m
      compass1-ambassador                   LoadBalancer   10.212.24.222   35.230.166.196   80:31449/TCP,443:30586    28m
      compass1-ambassador-admin             ClusterIP      10.212.22.72    <none>           8877/TCP                  28m
      compass1-anchor                       ClusterIP      10.212.24.78    <none>           80/TCP                    28m
      compass1-grafana                      ClusterIP      10.212.18.86    <none>           80/TCP                    28m
      compass1-hcl-compass                  ClusterIP      10.212.29.160   <none>           8191/TCP                  28m
      compass1-hcl-compass-oracle           ClusterIP      10.212.17.115   <none>           1521/TCP,5500/TCP         28m
      compass1-ksmetrics                    ClusterIP      10.212.19.172   <none>           80/TCP                    28m
      compass1-openldap                     ClusterIP      10.212.23.231   <none>           389/TCP,636/TCP           28m
      compass1-prometheus-server            ClusterIP      10.212.19.104   <none>           80/TCP                    28m
      compass1-sofy-console                 ClusterIP      10.212.24.96    <none>           80/TCP                    28m
      compass1-sofy-service                 ClusterIP      10.212.28.139   <none>           80/TCP            

      The EXTERNAL-IP is seen from the compass1-ambassador service and is 35.230.166.196.

    4. Optionally, you can view the container logs by using the following command:
      $ kubectl logs <pod_name> –namespace [namespace_name]
    5. 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 pass. 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.
    6. Click the General Information page from the Solution Console Dashboard to see the Solution Content page. You can get and start the HCL Compass URL from the HCL Compass Solution Content page.
    7. When you are finished with your solution, you can uninstall it with the following command:
      $ helm delete {release-name} --namespace [namespace_name]