Breadcrumbs

Upgrade Guide CX4.10.3.1 to CX4.10.5

Before upgrading, ensure that the system is idle, i.e, all agents are logged out from the AgentDesk.

Custom Configuration Strategy

For detailed guidelines on applying environment-specific configurations using custom values.yaml layering,

Refer to the CX Helm Chart Custom Configuration Strategy guide.

  1. Update Helm repo

    helm repo update expertflow
    
  2. Clone the CX repository on the target server

    # Create CX-4.10.5 directory from root
      mkdir CX-4.10.5
      
    # Navigate to CX-4.10.5
      cd CX-4.10.5
      
    # Clone the CX-4.10.5 branch of the cim-solution repository
      git clone -b CX-4.10.5 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git $HOME/CX-4.10.5
      
    # Navigate to root(previous) directory
    
  3. Vault Configuration

    # Create secrets related to vault
      kubectl get secret tls-ca -n vault -o yaml | sed 's/namespace: vault/namespace: ef-external/' | kubectl create -f -
      kubectl get secret tls-server-client -n vault -o yaml | sed 's/namespace: vault/namespace: ef-external/' | kubectl create -f -
      kubectl get secret tls-server-vault -n vault -o yaml | sed 's/namespace: vault/namespace: ef-external/' | kubectl create -f -
      kubectl get secret expertflow-reg-cred -n ef-external  -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f -
      kubectl get secret mongo-mongodb-ca -n ef-external  -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f -
      kubectl get secret redis-crt -n ef-external  -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f -
      kubectl get secret ef-postgresql-crt -n ef-external  -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f -
      kubectl get secret activemq-tls -n ef-external  -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f -
      
    # Copy activemq-vault directory 
      Copy From CX-4.10.5/kubernetes/pre-deployment/activemq-vault To ./kubernetes/pre-deployment
      
    # Copy service-based-accounts directory 
      Copy From CX-4.10.5/kubernetes/pre-deployment/service-based-accounts To ./kubernetes/pre-deployment
      
    # Copy keycloak-spc.yaml
      Copy From CX-4.10.5/kubernetes/pre-deployment/keycloak/keycloak-spc.yaml To ./kubernetes/pre-deployment/keycloak
    
  1. Deploy Redis Helm Chart

Update the password in the command below if using other than the default password

kubectl -n ef-external create secret generic ef-redis-acl-secret --from-literal=superuser=Expertflow464
helm show values expertflow/redis --version 4.10.5 > helm-values/ef-redis-custom-values.yaml

Update the following values helm-values/ef-redis-custom-values.yaml as mentioned below

  acl:
    users:
         password: "Expertflow464" # Change this to match the requirements  
helm upgrade --install=true  --namespace=ef-external --values=helm-values/ef-redis-custom-values.yaml  redis expertflow/redis --version 4.10.5
  1. Deploy Vault Helm Chart

helm uninstall -n vault vault
helm show values expertflow/vault --version 4.10.5 > helm-values/ef-vault-custom-values.yaml
helm upgrade --install --namespace vault --create-namespace vault --debug --values helm-values/ef-vault-custom-values.yaml expertflow/vault --version 4.10.5

Follow only the unsealing steps from initializing and unsealing the vault guide

Follow the below mentioned guides to configure Service based Accounts and Vault in different external components:
For MongoDB: Configure Vault for MongoDB Dynamic Database Credentials
For Redis: Configure Vault for Redis Dynamic Database Credentials (non-mtt)
For ActiveMQ: Configure Vault for ActiveMQ
For PostgreSql: Configure Vault for PostgreSQL Dynamic Database Credentials
For Service Based Accounts: Configure Service Based Accounts using Vault

  1. Deploy the ActiveMQ helm chart

helm show values expertflow/activemq --version 4.10.5 > helm-values/ef-activemq-custom-values.yaml
helm upgrade --install=true  --namespace=ef-external --values=helm-values/ef-activemq-custom-values.yaml activemq expertflow/activemq --version 4.10.5
  1. Deploy the Keycloak helm chart

helm show values expertflow/keycloak --version 4.10.5 > helm-values/ef-keycloak-custom-values.yaml

Edit helm-values/ef-keycloak-custom-values.yaml

global:
  ingressRouter: <DEFAULT-FQDN>

Now, deploy Keycloak by running the following command

helm upgrade --install=true  --debug --namespace=ef-external  --values=helm-values/ef-keycloak-custom-values.yaml keycloak expertflow/keycloak --version 4.10.5
  1. Deploy the AgentDesk helm chart

# Copy the unified agent translation directory to the current release 
  Copy From CX-4.10.5/kubernetes/pre-deployment/app-translations/unified-agent/i18n/ To pre-deployment/app-translations/unified-agent
  
# Delete and Create the ConfigMap of Unified Agent based translations
  kubectl delete cm ef-app-translations-cm -n expertflow
  kubectl -n expertflow create configmap ef-app-translations-cm --from-file=pre-deployment/app-translations/unified-agent/i18n/

# Copy the customer-widget translation directory to the current release 
  Copy From CX-4.10.5/kubernetes/pre-deployment/app-translations/customer-widget/i18n/ To pre-deployment/app-translations/customer-widget

# Delete and Create the ConfigMap of Customer Widget based translations
  kubectl delete cm ef-widget-translations-cm -n expertflow
  kubectl -n expertflow  create configmap ef-widget-translations-cm --from-file=pre-deployment/app-translations/customer-widget/i18n/
# Deploy the new chart version using the helm-values/cx-agent-desk-custom-values.yaml
  helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx"  cx-agent-desk  --debug --values helm-values/cx-agent-desk-custom-values.yaml expertflow/agent-desk --version 4.10.5

AGENT_STATE_CHANGED Flow Added in Conversation Studio
Note:Please take backup/export of your existing flow from conversation studio before any change

A new flow for Agent State Change has been added as part of the Conversation Re-Routing on Agent State Change - Not Ready (Callback) feature.

If you are using custom flows for Conversation Studio:

Please add the flow changes manually. After deploying the Core helm chart, refer to the Conversation Studio default flows documentation (see the 'Agent State Changed' section—17th heading) and update your customized flow accordingly.


If you are using default flows for Conversation Studio (This will remove all existing flows, please only follow the below in case you are using default flows):

Execute the below commands before deploying the Core Helm chart.

a. Delete the Conversation Studio StatefulSet:

kubectl delete -n expertflow statefulset ef-cx-conversation-studio

b. Delete the existing Persistent Volume Claim (PVC) for Conversation Studio:

kubectl delete -n expertflow pvc conversation-studio-flow-vol-ef-cx-conversation-studio-0
  1. Deploy the Core helm chart

# Copy the conversation manager graphql schemas and mongodb rules to the current release directory
  Copy From CX-4.10.5/kubernetes/pre-deployment/conversation-manager/graphql/ To pre-deployment/conversation-manager

# Delete and Create the Config Maps related to Conversation Manager Graphql schemas and mongodb rules
  kubectl delete configmap -n expertflow conversation-manager-graphql-schemas
  kubectl create configmap -n expertflow conversation-manager-graphql-schemas --from-file=./pre-deployment/conversation-manager/graphql/schemas
  
  kubectl delete configmap -n expertflow conversation-manager-graphql-mongodb-rules
  kubectl create configmap -n expertflow conversation-manager-graphql-mongodb-rules --from-file=./pre-deployment/conversation-manager/graphql/graphql-mongodb-rules.json

# Deploy the new chart version using the helm-values/ef-cx-custom-values.yaml 
  helm upgrade --install --namespace expertflow --create-namespace   ef-cx  --debug --values helm-values/ef-cx-custom-values.yaml expertflow/cx --version 4.10.5
  1. Deploy the Channels helm chart

# Deploy the new chart version using the helm-values/cx-channels-custom-values.yaml
  helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" --debug cx-channels --values helm-values/cx-channels-custom-values.yaml  expertflow/channels --version 4.10.5
  1. Deploy the QM helm chart

# Deploy the new chart version using the helm-values/cx-qm-custom-values.yaml
  helm upgrade --install --namespace=expertflow --set global.efCxReleaseName="ef-cx" qm  --debug --values=helm-values/cx-qm-custom-values.yaml expertflow/qm --version 4.10.5
  1. Deploy the Campaign helm chart

# Deploy the new chart version using the helm-values/cx-campaigns-custom-values.yaml
  helm upgrade --install --namespace expertflow   --set global.efCxReleaseName="ef-cx"  cx-campaigns --debug --values helm-values/cx-campaigns-custom-values.yaml expertflow/campaigns --version 4.10.5
  1. Deploy the Survey helm chart

# Deploy the new chart version using the helm-values/cx-surveys-custom-values.yaml
  helm upgrade --install --namespace expertflow  --set global.efCxReleaseName="ef-cx"  cx-surveys  --debug --values helm-values/cx-surveys-custom-values.yaml expertflow/surveys --version 4.10.5

Note: To setup voice connector, please follow this guide with Voice-Connector part only.

Configuration Guide(s):
1. https://expertflow-docs.atlassian.net/wiki/x/dAA5Y