Upgrade Guide CX-4.5 to CX-4.5.1
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_f-CIM-14085-4.5.1_f-CIM-14085 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 # 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_f-CIM-14086 # 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_f-CIM-14085 # 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_f-CIM-14085 # 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_f-CIM-14085 # 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-SR1 # 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/build:4.5.1_b-CIM-15144-15_07_2024-16_17_34 # 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/build:4.5.1_b-CIM-15144-82d8cf35759585eee519edaa6b4373134e5dea5f # 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_f-CIM-14085 # 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-SR2
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