Skip to main content

Upgrade Guide CX4.7 to CX4.8

Before upgrading, ensure that the system is idle, i.e; all agents are logged out from the AgentDesk.
Make sure the system is idle for 30 minutes, to sync the reporting data.

  1. Clone the CX repository on the target server

    CODE
    # Create CX-4.8 directory from root
    mkdir CX-4.8
    # Navigate to CX-4.8
    cd CX-4.8
    # Clone the CX-4.8 branch of cim-solution repository
    git clone -b CX-4.8 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git $HOME/CX-4.8
    # Navigate to root(previous) directory
    cd ..
    
  2. Update helm repo

    CODE
    helm repo update expertflow

Before script execution , ensure that the system is idle.

Make sure to backup Mongodb Data and change the timestamp(start date and end date) as per your data in script (conversation-manager-conversation-data_config.yaml)

  1. Store Form-data data as an activity/conversation data

    1. If Transflux is not deployed, please refer to Expertflow ETL Deployment

    2. If already deployed, place this in transflux/config data_migration_config.yaml

      CODE
      #change the directory to transflux
      cd transflux 
      
      #Delete configuration ConfigMaps for CX-Transflux pipelines.
      kubectl -n expertflow delete configmap ef-transflux-config-cm 
      
      #Create configuration ConfigMaps for CX-Transflux pipelines.
      kubectl -n expertflow create configmap ef-transflux-config-cm --from-file=config
      
      #Change transflux tag 
      vi helm-values/cx-transflux-custom-values.yaml
      tag: 4.8
      #Re-deploy CX-Transflux
       helm upgrade --install --namespace expertflow   --set global.efCxReleaseName="ef-cx"  cx-transflux --debug --values helm-values/cx-transflux-custom-values.yaml  expertflow/transflux --version 4.8.0
      
    3. Data Migration Guide: Migration Activity ( CX-4.7 to CX-4.8 )

  2. Change the directory to the current deployment of CX

    CODE
    change directory to following path in current deployment
    cd 4.7/kubernetes
  3. Update the ActiveMQ helm chart

    CODE
    #Update ActiveMQ helm chart
    Edit/update the values file helm-values/ef-activemq-custom-values.yaml with
    ActiveMQ Tag : 6.0.0-alpine-zulu-K8s--4.8
    
    helm upgrade --install=true  --namespace=ef-external --values=helm-values/ef-activemq-custom-values.yaml activemq expertflow/activemq --version 4.8.0
  4. Update the ConfigMaps

    CODE
    #copy the unified agent translation directory to current release 
    1) Copy From CX-4.8/kubernetes/pre-deployment/app-translations/unified-agent/i18n To 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=pre-deployment/app-translations/unified-agent/i18n/
    
    #copy the  customer widget translation directory to current release 
    1) copy CX-4.8/kubernetes/pre-deployment/app-translations/customer-widget/i18n/ to pre-deployment/app-translations/customer-widget/i18n/     
    2) kubectl -n expertflow  create configmap ef-widget-translations-cm --from-file=pre-deployment/app-translations/customer-widget/i18n/
     
  5. Update the CX helm chart

    CODE
    #Update Core Component helm chart
    Edit/update the values file helm-values/ef-cx-custom-values.yaml with
    
    
    Add in global section of 
    efCommonVars_MEMORY_THRESHOLD_MBS: "1000"
    
    Add the following variable in unified admin under extraEnvVars  
          - name: CX_ACTIVITY
            value: 'https://{{ .Values.global.ingressRouter  }}/conversation-manager'      
          - name: QM_API_URL
            value: 'https://{{ .Values.global.ingressRouter  }}/qm-backend'
          - name: KEYCLOAK_URL
            value: 'https://{{ .Values.global.ingressRouter  }}/auth/realms'
          - name: KEYCLOAK_URL_ADMIN
            value: 'https://{{ .Values.global.ingressRouter  }}/auth/admin/realms'
          - name: ADMIN_USERNAME
            value: 'admin'
          - name: ADMIN_PASSWORD
            value: 'admin'
          - name: CLIENT_ID
            value: 'cim'
          - name: CLIENT_SECRET
            value: 'ef61df80-061c-4c29-b9ac-387e6bf67052'
          - name: GRANT_TYPE
            value: 'password'
          - name: REALM
            value: 'expertflow'
          - name: WRAPUP_FORM_ID
            value: '62d07f4f0980a50a91210bef'
          - name: REVIEWING_AGENT_CHAT
            value: 'false'
            
    Add the following variable in cim-customer ,agent-manager and web-channel-manager under extraEnvVar
          - name: MEMORY_THRESHOLD_MBS
            value: '{{ .Values.global.efCommonVars_MEMORY_THRESHOLD_MBS }}'
    Add the following variable in conversation-manager under extraEnvVars        
          - name: CCM_URL
            value: "http://{{ .Release.Name }}-ccm-svc.{{ .Release.Namespace }}.svc:8081"
          - name: CIM_CUSTOMER_URL
            value: "http://{{ .Release.Name }}-cim-customer-svc.{{ .Release.Namespace }}.svc:8080"
    
    Add the following variable in customer-widget under extraEnvVars       
          - name: AUTHENTICATOR_URL
            value: "https://{{ .Values.global.ingressRouter  }}/secure-link"
          - name: BUSINESSCALENDAR_URL
            value: "https://{{ .Values.global.ingressRouter  }}/business-calendar"
    Add the following volume mount in customer-widget
       extraVolumes:
          - name: ef-widget-translation
            configMap:
               name: ef-widget-translations-cm
       extraVolumeMounts:
          - name: ef-widget-translation
            mountPath: /usr/share/nginx/html/widget-assets/i18n/
            
    #add the new component business-calendar
    
    business-calendar:
       enabled: true
       replicaCount: 1
       image:
          repository: cim/business-calendar
          tag: 4.8
       efConnectionVars: true
       efEnvironmentVars: false
       containerPorts:
          - name: "http-bu-ca-8443"
            containerPort: 8443
       extraEnvVars:
          - name: MAX_EVENT_LIMIT_RECURRING_INSTANCES
            value: "365"
          - name: MONGODB_DATABASE
            value: business_calendars_db
          - name: LOG_LEVEL
            value: DEBUG
          - name: LOGGING_CONFIG
            value: '{{ .Values.global.efCommonVars_LOGGING_CONFIG  }}'
          - name: MASKING_LAYOUT_CLASS
            value: "com.ef.calendar.utils.MaskingPatternLayout"
       service:
          enabled: true
          port: 8443
          portName: "http-bu-ca-8443"
          targetPort: "http-bu-ca-8443"
       ingress:
          enabled: true
          annotations:
            nginx.ingress.kubernetes.io/rewrite-target: /$2
            nginx.ingress.kubernetes.io/use-regex: "true"
          path: /business-calendar(/|$)(.*)
          pathType: ImplementationSpecific
       extraVolumes:
          - name: mongo-mongodb-ca
            secret:
              secretName: mongo-mongodb-ca
          - name: ef-logback
            configMap:
                name: ef-logback-cm
       extraVolumeMounts:
          - name: mongo-mongodb-ca
            mountPath: /mongo
          - name: ef-logback
            mountPath: /logback
    
    
    
    Agent-Manager Tag : 4.8
    Bot-Framework Tag : 4.8
    Customer-Channel-Manager Tag : 4.8
    Cim-Backend Tag : 4.8
    Conversation-Monitor Tag : 4.8 
    Conversation-Manager  Tag : 4.8
    Customer-Widget Tag : 4.8
    Historical-Reports-Manager Tag : 4.8
    Realtime-Reports-Manager  Tag : 4.8
    Routing-Engine Tag : 4.8
    State-Events-Logger Tag : 4.8
    Unified-Admin Tag : 4.8
    Web-Channel-Manager Tag : 4.8
    Business-Calendar Tag : 4.8
    
    helm upgrade --install --namespace expertflow --create-namespace   ef-cx  --debug --values helm-values/ef-cx-custom-values.yaml expertflow/cx --version 4.8.0
  6. Update the Channel helm chart

    CODE
    #Update Channel helm chart
    Edit/update the values file helm-values/cx-channels-custom-values.yaml with
    
    Add in global section of 
    efCommonVars_MEMORY_THRESHOLD_MBS: "1000"
    
    360-Connector Tag : 4.8 
    Facebook-connector Tag : 4.8 
    Instagram-connector  Tag : 4.8  
    Hc-SMPP-Connector  Tag : 4.8  
    Telegram-Connector Tag : 4.8   
    Twilio-Connector Tag : 4.8   
    Twitter-Connector Tag : 4.8   
    Viber-Connector Tag : 4.8   
    
    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.8.0 
  7. Update the Agent-Desk helm chart

    CODE
    #Update Agent Desk helm chart
    Edit/update the values file helm-values/cx-agent-desk-custom-values.yaml with
    
    Add in global section of 
    efCommonVars_MEMORY_THRESHOLD_MBS: "1000"
    
    Add the following variable in agent Desk under extraEnvVars
          - name: SIP_EXTERNAL_DN
            value: "99887765"
    
    Unified-Agent Tag : 4.8
    
    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.8.0
  8. Update the Campaigns helm chart

    CODE
    #Update Campaigns helm chart
    Edit/update the values file helm-values/cx-campaigns-custom-values.yaml with
    
    Add in global section of 
    efCommonVars_MEMORY_THRESHOLD_MBS: "1000"
    
    Campaign-Scheduler Tag : 4.8
    
    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.8.0
  9. Deploy Middleware and MiddlewareCron job

    CODE
    helm show values expertflow/eleveo-middleware --version 4.8.0  > helm-values/cx-middleware-custom-values.yaml
    
    #Edit/update the values file helm-values/cx-middleware-custom-values.yaml with
    global:
      ingressRouter: <DEFAULT-FQDN>
      
    helm upgrade --install --namespace expertflow  --set global.efCxReleaseName="ef-cx"  eleveo-middleware  --values helm-values/cx-middleware-custom-values.yaml expertflow/eleveo-middleware --version 4.8.0
    
    #Middleware-cronjob installation commnad
    
    helm show values expertflow/middleware-cronjob --version 4.8.0  > helm-values/cx-middleware-cronjob-custom-values.yaml
    #Edit/update the values file helm-values/cx-middleware-cronjob-custom-values.yaml with
    global:
      ingressRouter: <DEFAULT-FQDN>
    
    helm upgrade --install --namespace expertflow  --set global.efCxReleaseName="ef-cx"  middleware-cronjob --debug --values helm-values/cx-middleware-cronjob-custom-values.yaml   expertflow/middleware-cronjob  --version 4.8.0
  10. Update Rasa-X

    CODE
    update the image tag external/rasa-x/values-small.yaml
    tag: 4.8
    helm  upgrade --install=true --wait=true --timeout=10m0s --debug   rasa-x    --namespace rasa-x     --values external/rasa-x/values-small.yaml  external/rasa-x
  11. Update Reporting Connector

    CODE
    update the image tag kubernetes/helm/Reporting/values.yaml
    tag: 4.8
    helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx"   cx-reporting --debug --values helm-values/cx-reporting-scheduler-custom-values.yaml  expertflow/reporting --version 4.8.0
  12. QM Deployment

QM-Connector is disabled by default, you can enable this in the following file cx-qm-custom-values.yaml

qm-connector:

enabled: true

CODE
helm show values expertflow/qm --version 4.8.0  > helm-values/cx-qm-custom-values.yaml 

#Edit/update the values file helm-values/cx-qm-custom-values.yaml with
global:
  ingressRouter: <DEFAULT-FQDN>


helm upgrade --install --namespace expertflow   --set global.efCxReleaseName="ef-cx"  qm  --debug --values helm-values/cx-qm-custom-values.yaml  expertflow/qm --version 4.8.0

QM Deployment and Configuration Guide

JavaScript errors detected

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

If this problem persists, please contact our support.