Expertflow CX Upgrade Guide 4.2 to 4.3
The upgrade must be done while the system is inactive. Active state of the system is removed as the application's Object model is changed.
Remove any active state of the system.
BASH# Open the redis shell kubectl exec -n ef-external -it redis-master-0 -- redis-cli -a Expertflow123 # Inside the redis shell flushall # ctrl + c (to get out of the shell)
Remove the current solution deployment
BASH# Navigate to the following folder of the existing release i.e. CX-4.2 cd cim-solution/kubernetes kubectl delete -f cim/StatefulSet/ kubectl delete -f cim/ConfigMaps/ kubectl delete -f cim/Deployments/ kubectl delete -f cim/Services/ #if you are using nginx kubectl delete -f cim/Ingresses/nginx #if you are using traefik kubectl delete -f cim/Ingresses/traefik
Make backup of the current cim-solution folder.
BASH# Navigate to the parent directory where the cim-solution folder is placed and run: mv cim-solution cim-solution-old
Clone the CX-4.3 release from gitlab and place it on target server.
BASHgit clone -b CX-4.3 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git
Navigate to the
cim-solution/kubernetes
directory in the newly cloned release.BASHcd cim-solution/kubernetes
Update the FQDN.
BASH# Change the <FQDN> in the below given commands to your actual FQDN. sed -i 's/devops[0-9]*.ef.com/<FQDN>/g' cim/ConfigMaps/* pre-deployment/grafana/* pre-deployment/keycloak/* cim/Ingresses/traefik/* cim/Ingresses/nginx/* sed -i -e 's@value: http://devops.ef.com/bot-framework@value: https://<FQDN>/bot-framework@' external/rasa-x/values-small.yaml sed -i -e 's@value: https://devops.ef.com@value: https://<FQDN>@' external/rasa-x/values-small.yaml
Update Grafana
Before proceeding, copy the post-deployment/config/grafana/supervisor-dashboards/datasource.yml
from the old (backup) cim-solution to the new cim-solutionBASH# Navigate to the parent directory of cim-solution and cim-solution-old cd ../.. # Copy the datasource.yml file from cim-solution-old to cim-solution cp cim-solution-old/kubernetes/post-deployment/config/grafana/supervisor-dashboards/datasource.yml cim-solution/kubernetes/post-deployment/config/grafana/supervisor-dashboards/datasource.yml # After it is done, Navigate back to the following directory before continuing cd cim-solution/kubernetes
Update the Grafana deployment.
BASH#Delete Grafana Dashboard Config Map kubectl -n ef-external delete configmap ef-grafana-supervisor-dashboard-mysql ef-grafana-supervisor-dashboard-mssql # NB: For Grafana dashboard config, run only the commands as per your reporting database type (MSSQL/MYSQL) # Create Grafana Dashboard Config Map. ------------------------------------------------- MYSQL DEPLOYMENT ONLY. ---------------------------------------------------- kubectl create configmap ef-grafana-supervisor-dashboard-mysql -n ef-external --from-file=post-deployment/config/grafana/supervisor-dashboards/Supervisor_Dashboard_CIM-mysql.json sed -i -e 's@configMapName: <configmap-map-name>@configMapName: ef-grafana-supervisor-dashboard-mysql@' external/bitnami/grafana/values.yaml sed -i -e 's@fileName: <file-name>@fileName: Supervisor_Dashboard_CIM-mysql.json@' external/bitnami/grafana/values.yaml ----------------------------------------------------------------------------------------------------------------------- ------------------------------------------------- MSSQL DEPLOYMENT ONLY----------------------------------------------------- kubectl create configmap ef-grafana-supervisor-dashboard-mssql -n ef-external --from-file=post-deployment/config/grafana/supervisor-dashboards/Supervisor_Dashboard_CIM-mssql.json sed -i -e 's@configMapName: <configmap-map-name>@configMapName: ef-grafana-supervisor-dashboard-mssql@' external/bitnami/grafana/values.yaml sed -i -e 's@fileName: <file-name>@fileName: Supervisor_Dashboard_CIM-mssql.json@' external/bitnami/grafana/values.yaml ----------------------------------------------------------------------------------------------------------------------- # Update Grafana Helm helm uninstall grafana -n ef-external helm upgrade --install=true --wait=true --timeout=10m0s --debug --namespace=ef-external --values=external/bitnami/grafana/values.yaml grafana external/bitnami/grafana
Update the Icons for new Channel Types
BASHkubectl apply -f scripts/minio-helper.yaml kubectl -n ef-external --timeout=90s wait --for=condition=ready pod minio-helper kubectl -n ef-external cp post-deployment/data/minio/bucket/default minio-helper:/tmp/ kubectl -n ef-external cp scripts/icon-helper.sh minio-helper:/tmp/ kubectl -n ef-external exec -it minio-helper -- /bin/sh /tmp/icon-helper.sh kubectl delete -f scripts/minio-helper.yaml
Update Rasa-X
Upgrade the rasa-x using helm commandBASHhelm 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
Please update the "fqdn, browser_language, connection_type and Database server connection parameters" in the filepre-deployment/reportingConnector/reporting-connector.conf
and then deploy.BASHkubectl -n expertflow delete configmap ef-reporting-connector-conf kubectl -n expertflow create configmap ef-reporting-connector-conf --from-file=pre-deployment/reportingConnector/reporting-connector.conf
Update Team Announcement
Remove and then update Team Announcement CronjobBASHkubectl delete -f pre-deployment/team-announcement kubectl apply -f pre-deployment/team-announcement
Update Translations for Unified Agent
BASHkubectl -n expertflow delete configmap ef-app-translations-cm kubectl -n expertflow create configmap ef-app-translations-cm --from-file=pre-deployment/app-translations/unified-agent/i18n
Update the solution deployment
BASHkubectl apply -f cim/ConfigMaps/ kubectl apply -f cim/StatefulSet/ kubectl apply -f cim/Services/ kubectl apply -f cim/Deployments/ #if you are using nginx kubectl apply -f cim/Ingresses/nginx #if you are using traefik kubectl apply -f cim/Ingresses/traefik
Note
In case any of the deployment is giving exception related to MONGO DB URL or PORT, then please try to update the "ImagePullPolicy" value of that deployment from "IfNotPresent" to "Always".
If every thing worked fine until this point, you may remove the cim-solution-old directory
# Navigate to the parent directory and run
rm -rf cim-solution-old
Configurations
- To configure Instagram Connector
Instagram Connector Configuration & Deployment Guide - To configure SMPP Connector
SMPP Configuration Guide