Skip to main content
Skip table of contents

Upgrade Guide CX-4.5 to CX-4.5.1

  • For MSSQL, an upgrade from 4.5 to 4.5.1 is not required. You can skip the upgrade steps of reporting connector.

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

  1. Clone the CX repository on the target server

    CODE
    # Create CX-4.5.1 directory from root
    mkdir CX-4.5.1
    
    # Navigate to CX-4.5.1
    cd CX-4.5.1
    
    # Clone the CX-4.5.1 branch of cim-solution repository
    git clone -b CX-4.5.1 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git
    
    # Navigate to root(previous) directory
    cd ..
  2. Stop all core components.

    CODE
    # Navigate to the following folder of the existing release i.e. CX-4.5
    cd cim-solution/kubernetes
    
    kubectl delete -f cim/Deployments
    kubectl delete -f cim/StatefulSet/ef-amq-statefulset.yaml
    
    # Stop reporting connector
    kubectl delete -f pre-deployment/reportingConnector/ef-reporting-connector-cron.yaml -n expertflow
    
    # delete configmap for reporting connector 
    kubectl -n expertflow delete configmap ef-reporting-connector-conf
    
    # Navigate to root directory 
    cd ../../
  3. Replace the following files from the 4.5.1 directory to the current deployment directory

    CODE
    # Copy Historical Reporting Manager deployment files
    cp CX-4.5.1/cim-solution/kubernetes/cim/ConfigMaps/ef-historical-reporting-configmap.yaml cim-solution/kubernetes/cim/ConfigMaps
    cp CX-4.5.1/cim-solution/kubernetes/cim/Deployments/ef-historical-reports-deployment.yaml cim-solution/kubernetes/cim/Deployments
    cp CX-4.5.1/cim-solution/kubernetes/cim/Services/ef-historical-reports-service.yaml cim-solution/kubernetes/cim/Services
    cp CX-4.5.1/cim-solution/kubernetes/cim/Ingresses/nginx/ef-historical-reports-Ingress.yaml cim-solution/kubernetes/cim/Ingresses/nginx
    
    # Update Reporting connector conf file with following new configurations, cim-solution/kubernetes/pre-deployment/reportingConnector/reporting-connector.conf
      1) # URL of the API endpoint which directs to the historical reports service
          svc_name=http://ef-historical-reports-svc.expertflow.svc.cluster.local:8081
      2) # The current batch limit is set to 1000 by default
          batch_limit=1000
      3) # This represents the maximum boundary for looped ETL jobs and is strongly recommended not to be altered.
          upper_limit=300
    
    # Update State events logger configMap
      1) kubectl delete -f cim-solution/kubernetes/cim/ConfigMaps/ef-state-events-logger-configmap.yaml
      2) Open cim-solution/kubernetes/cim/ConfigMaps/ef-state-events-logger-configmap.yaml
      Replace following configuration `TOPIC_NAME: VirtualTopic.STATE_CHANNEL`
    
    # Copy Unified agent deployment files 
    cp CX-4.5.1/cim-solution/kubernetes/cim/ConfigMaps/ef-unified-agent-configmap.yaml cim-solution/kubernetes/cim/ConfigMaps
    cp CX-4.5.1/cim-solution/kubernetes/cim/Deployments/ef-unified-agent-deployment.yaml cim-solution/kubernetes/cim/Deployments
    
    # Copy Finesse gadget file
    cp CX-4.5.1/cim-solution/kubernetes/post-deployment/3rdPartyResources/Finesse-gadget/AgentGadget.js cim-solution/kubernetes/post-deployment/3rdPartyResources/Finesse-gadget
    
    # Copy Agent desk translation files 
    1) cp -r CX-4.5.1/cim-solution/kubernetes/pre-deployment/app-translations/unified-agent/i18n cim-solution/kubernetes/pre-deployment/app-translations/unified-agent
    2) Delete and Create the ConfigMap
       kubectl delete  cm  ef-app-translations-cm -n expertflow
       kubectl -n expertflow  create configmap ef-app-translations-cm --from-file=cim-solution/kubernetes/pre-deployment/app-translations/unified-agent/i18n/
    
    # Update ef-conversation-controller-configmap.yaml
      1) kubectl delete -f cim-solution/kubernetes/cim/ConfigMaps/ef-conversation-controller-configmap.yaml
      # Copy ef-conversation-controller-configmap.yaml from CX-4.5.1 to current release's ConfigMaps 
      2) cp CX-4.5.1/cim-solution/kubernetes/cim/ConfigMaps/ef-conversation-controller-configmap.yaml cim-solution/kubernetes/cim/ConfigMaps
    
    
    # Update ef-conversation-manager-configmap.yaml
      1) kubectl delete -f cim-solution/kubernetes/cim/ConfigMaps/ef-conversation-manager-configmap.yaml
      # Copy ef-conversation-manager-configmap.yaml from CX-4.5.1 to current release's ConfigMaps 
      2) cp CX-4.5.1/cim-solution/kubernetes/cim/ConfigMaps/ef-conversation-manager-configmap.yaml cim-solution/kubernetes/cim/ConfigMaps
    
    # Delete conversation-controller-deployment.yaml file, since it's added as sidecar container of conversation-manager
    rm cim-solution/kubernetes/cim/Deployments/ef-conversation-controller-deployment.yaml
    
  4. Update the AMQ deployment.

    YAML
    1) Open cim-solution/kubernetes/cim/StatefulSet/ef-amq-statefulset.yaml file.
    2) Update AMQ Tag 
    gitimages.expertflow.com/general/activemq-k8s:5.17.1-alpine-zulu-K8s-4.5.1-4.5.1
    3) Add following parameters under evn section.
    
      - name : ACTIVEMQ_OPTS_MEMORY
        value : "-Xms512M -Xmx4G"
      - name: MAX_CONNECTIONS
        value: "50000"
    
    # Navigate to cim-solution/kubernetes directory
    cd cim-solution/kubernetes
    
    4) kubectl apply -f cim/StatefulSet/ef-amq-statefulset.yaml
  5. Update following core deployments.

    YAML
    # A new configuration for TimeZone has been added in all the deployments in cim-solution/kubernetes/cim/Deployments
    you can follow one of the following ways to upgrade the Deployments
    # Approach 1, this will update new configuration and any update in image tag as well.
      Copy the Deployments directory from CX-4.5.1/cim-solution/kubernetes/cim/Deployments and replace it with the current release's Deployments
    
    # Approach 2, manually add the TimeZone configuration in all deployments and update the below mentioned tags in relevant components   
      # add TimeZone configuration in - env section of containers tab in all deployments in cim-solution/kubernetes/cim/Deployments
      E.g. 
          containers:
            - env:
                - name: TZ
                  valueFrom:
                    configMapKeyRef:
                      key: TZ
                      name: variables-common-env-cm
      
      # Update the tags in below components  
      # Update Conversation Manager Deployment
      # Copy ef-conversation-manager-deployment.yaml from CX-4.5.1 to current release's Deployments
        1) cp ../../CX-4.5.1/cim-solution/kubernetes/cim/Deployments/ef-conversation-manager-deployment.yaml cim/Deployments
        # Following tags are updated in conversation-manager deployment
          # gitimages.expertflow.com/cim/conversation-controller:4.5.1
          # gitimages.expertflow.com/cim/conversation-manager:4.5.1
      
      # Update agent-manager tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-agent-manager-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/agent-manager:4.5.1
      
      # Update unified-agent tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-unified-agent-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/unified-agent:4.5.1
      3) Create a new directory named 'canned-messages' under cim-solution/kubernetes/pre-deployment/app-translations/unified-agent and copy the canned-messages.json file 
          from CX4.5.1/cim-solution/kubernetes/pre-deployment/app-translations/unified-agent/canned-messages/canned-messages.json 
          to your current release cim-solution/kubernetes/pre-deployment/app-translations/unified-agent/canned-messages/
      4) Add following mount path in cim-solution/kubernetes/cim/Deployments/ef-unified-agent-deployment.yaml file.    
          - name: ef-canned-messages
            mountPath: /usr/share/nginx/html/assets/canned-messages/
      5) Add following volume in cim-solution/kubernetes/cim/Deployments/ef-unified-agent-deployment.yaml file.
          - name: ef-canned-messages
            configMap:
              name: ef-canned-messages-cm
      6) create following ConfigMap
          kubectl -n expertflow  create configmap ef-canned-messages-cm --from-file=pre-deployment/app-translations/unified-agent/canned-messages        
        
      
      # Update routing-engine tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-routing-engine-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/media-routing-engine:4.5.1
      
      # Update channel-manager tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-ccm-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/customer-channel-manager:4.5.1
      
      # Update Bot-framework tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-bot-framework-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/bot-framework:4.5.1
      
      # Update Facebook-Connector tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-facebook-connector-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/facebook-connector:4.5.1
      
      # Update Telegram-Connector tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-telegram-connector-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/telegram-connector:4.5.1
      
      # Update StateEvents-Logger tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-state-events-logger-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/state-events-logger:4.5.1
      
      # Update Realtime Reports tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-realtime-reports-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/realtime-reports-manager:4.5.1
      
      # Update Historical Reports Manager tag
      1) Open cim-solution/kubernetes/cim/Deployments/ef-historical-reports-deployment.yaml file.
      2) Update tag gitimages.expertflow.com/cim/historical-reports-manager:4.5.1
      
      # Update reporting-connector tag
      1) Open cim-solution/kubernetes/pre-deployment/reportingConnector/ef-reporting-connector-cron.yaml file.
      2) Update tag gitimages.expertflow.com/cim/reporting-connector:4.5.1
  6. Update following pre-deployments

    CODE
    # Add the TimeZone configuration in ef-reporting-connector-cron.yaml  
      under following directory cim-solution/kubernetes/pre-deployment/reportingConnector
    
    # Add the env under containers: section as given below
      E.g. 
                  imagePullPolicy: IfNotPresent
                  env:
                    - name: TZ
                      valueFrom:
                        configMapKeyRef:
                          key: TZ
                          name: variables-common-env-cm
  7. Run the following command to deploy the historical-reporting-manager component.

    CODE
    # Update the FQDN in following files:
    cim/Ingresses/nginx/ef-historical-reports-Ingress.yaml
    
    # Create ConfigMap of historical-reports-manager
    kubectl -n expertflow create configmap ef-historical-reports-cm --from-file=cim/ConfigMaps/ef-historical-reporting-configmap.yaml   
    
    # Apply the changes in folllwing files: 
    kubectl apply -f cim/Services/ef-historical-reports-service.yaml
    kubectl apply -f cim/Ingresses/nginx/ef-historical-reports-Ingress.yaml
  8. Run the MySQL update script on top of the current historical database from CX-4.5.1/cim-solution/kubernetes/pre-deployment/reportingConnector/dbScripts/dbupdate/historical_reports_db_update_script_MYSQL.sql.sql

Make sure that you have already executed the MySQL update script for 4.5 before executing the update script for 4.5.1.

  1. Run the following command to create configMap for reporting-connector.

    CODE
    # Create configmap
    kubectl -n expertflow create configmap ef-reporting-connector-conf --from-file=pre-deployment/reportingConnector/reporting-connector.conf
  2. Start all core components.

    YAML
    # Replace <FQDN> in Unified-agent ConfigMap
    sed -i 's/devops[0-9]*.ef.com/<FQDN>/g' cim/ConfigMaps/ef-unified-agent-configmap.yaml
    # Apply all ConfigMaps
    kubectl apply -f cim/ConfigMaps
    # Apply all deployments
    kubectl apply -f cim/Deployments
    
    # Run reporting-connector cron job
    kubectl apply -f pre-deployment/reportingConnector/ef-reporting-connector-cron.yaml -n expertflow
  3. Upgrade guide for Grafana

  4. Upgrade Permissions on Keycloak by following this guide

  5. Voice Connector Upgrade guide

  6. Upgrade guide for Reports

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.