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.
-
Clone the CX repository on the target server
# 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 .. -
Update helm repo
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)
-
Store Form-data data as an activity/conversation data
-
If Transflux is not deployed, please refer to Expertflow ETL Deployment
-
If already deployed, place this in transflux/config data_migration_config.yaml
#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 -
Data Migration Guide: Migration Activity ( CX-4.7 to CX-4.8 )
-
-
Change the directory to the current deployment of CX
change directory to following path in current deployment cd 4.7/kubernetes -
Update the ActiveMQ helm chart
#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 -
Update the ConfigMaps
#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/ -
Update the CX helm chart
#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 -
Update the Channel helm chart
#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 -
Update the Agent-Desk helm chart
#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 -
Update the Campaigns helm chart
#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 -
Deploy Middleware and MiddlewareCron job
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 -
Update Rasa-X
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 -
Update Reporting Connector
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 -
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
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