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.
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 ..
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 ../../
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
Update the AMQ deployment.
YAML1) 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
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
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
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
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.
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
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
Upgrade guide for Grafana
Upgrade Permissions on Keycloak by following this guide
Voice Connector Upgrade guide
Upgrade guide for Reports