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.
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 ..
Update helm repo
CODEhelm 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
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
Data Migration Guide: Migration Activity ( CX-4.7 to CX-4.8 )
Change the directory to the current deployment of CX
CODEchange directory to following path in current deployment cd 4.7/kubernetes
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
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/
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
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
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
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
Deploy Middleware and MiddlewareCron job
CODEhelm 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
CODEupdate 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
CODEupdate 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
QM Deployment and Configuration Guide