Connecting Service Portal to IBM Control Desk in Scaled Environment

This topic describe how to connect Service Portal to IBM Control Desk in a scaled Environment.

Service Portal is available as an optional user interface for IBM Control Desk. UsingService Portal you can manage service tickets while leveraging the standard IBM Control Desk infrastructure. Service Portal connects to IBM Control Desk as a backend and communicated with it using HTTP requests and responses.

In containerized environment, there are different workloads for icd-ui (IBM Control Desk user interface) and icd-sp (Service Portal). The icd-sp workload connects to icd-ui workload via icd-ui service for HTTP request-response communication. The problem arises when there are multiple instances (replicas) of icd-ui deployment, the HTTP request-response is load balanced by icd-ui service and connection between IBM Control Desk and Service Portal does not work properly. To fix this problem, make the session sticky by using sessionAffinity. It maintains session affinity and every request from Service Portal to IBM Control Desk goes to the same Pod. Below configuration under spec of icd-ui service is a way of doing it:
sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:h
      timeoutSeconds: 30
Update the icd-ui service with above changes and apply the changes using below command:
Kubectl apply -f <ui-service>

Service Portal and IBM Control Desk are now connected in scaled environment. If we scale down to one instance of icd-ui deployment, these configurations must be removed and icd-ui service changes must be re-applied.