CX Upgrade Guide CX-4.4.9 to CX-4.4.10
This guide does not contain steps to change from Standalone MongoDB to MongoDB Replicaset.
Make sure to take the backup of MongoDB by using the following guide:
Mongo, PostgreSQL Backup/Restore Procedure for CX on Kubernetes ( manual procedure )
Please change the value of MONGO_HOST environment variable in initContainers of ef-conversation-manager-deployment.yaml, ef-routing-engine-deployment.yaml to that of the primary replica as mentioned in point 2.c
Changes in ef-connection-env-configmap.yaml file
A new variable is added in
ef-connection-env-configmap.yamlfile.CODEMONGODB_REPLICASET: "<REPLICASET_NAME>"MONGODB_HOSTconfiguration value format is changed for core components and specified inef-connection-env-configmap.yaml. New format is: <HOST:PORT>Host is composed of pod-name.service-name, specify the connection string accordingly. For HA, add comma separated values as shown below.CODE"mongo-mongodb-0.mongo-mongodb-headless.ef-external.svc.cluster.local:27017,mongo-mongodb-1.mongo-mongodb-headless.ef-external.svc.cluster.local:27017,mongo-mongodb-2.mongo-mongodb-headless.ef-external.svc.cluster.local:27017"MONGODB_PORT: "27017"variable is removed from theef-connection-env-configmap.yamlfile.For Reporting connector the connection string is specified in the file cim-solution/kubernetes/pre-deployment/reportingConnector that is explained later in the guide.
Changes in Deployment files:
Add the following lines in following mentioned deployment files under
containers -> envpath along with other variables. Those Deployment files includes:ef-cim-customer-deployment.yaml,ef-unified-admin-deployment.yaml,ef-ccm-deployment.yaml,ef-bot-framework-deployment.yaml,ef-routing-engine-deployment.yaml,ef-state-events-logger-deployment.yaml,ef-historical-reports-deployment.yaml.CODE- name: MONGODB_REPLICASET valueFrom: configMapKeyRef: key: MONGODB_REPLICASET name: ef-connection-env-cmRemove
MONGODB_PORTvariable from the following mentioned deployment files undercontainers -> envpath along with other variables. Those Deployment files includes:ef-cim-customer-deployment.yaml,ef-unified-admin-deployment.yaml,ef-ccm-deployment.yaml,ef-bot-framework-deployment.yaml,ef-routing-engine-deployment.yaml,ef-state-events-logger-deployment.yaml,ef-historical-reports-deployment.yaml,ef-agent-manager-deployment.yaml,ef-licence-manager-deployment.yaml,ef-realtime-reports-manager-deployment.yaml.CODE- name: MONGODB_PORT valueFrom: configMapKeyRef: key: MONGODB_PORT name: ef-connection-env-cmChange the value of
MONGO_HOSTenvironment variable ininitContainersofef-conversation-manager-deployment.yaml,ef-routing-engine-deployment.yaml.
It needs to be changed to the primary node of the replica-set as shown below:CODE- name: MONGO_HOST value: "mongo-mongodb-2.mongo-mongodb-headless.ef-external.svc.cluster.local:27017"
Update the
imagekey of following components in their respective deployment files.CODECim-Customer: ef-cim-customer-deployment.yaml image: gitimages.expertflow.com/cim/cim-backend:4.4.10 Unified-Admin: ef-unified-admin-deployment.yaml image: gitimages.expertflow.com/cim/unified-admin:4.4.10 Customer-Channel-Manager: ef-ccm-deployment.yaml image: gitimages.expertflow.com/cim/customer-channel-manager:4.4.10 Bot-Framework: ef-bot-framework-deployment.yaml image: gitimages.expertflow.com/cim/bot-framework:4.4.10 Conversation-Manager: ef-conversation-manager-deployment.yaml image: gitimages.expertflow.com/cim/conversation-manager:4.4.10 Routing-Engine: ef-routing-engine-deployment.yaml image: gitimages.expertflow.com/cim/media-routing-engine:4.4.10 State-Events-Logger: ef-state-events-logger-deployment.yaml image: gitimages.expertflow.com/cim/state-events-logger:4.4.10 Historical-Reports-Manager: ef-historical-reports-deployment.yaml image: gitimages.expertflow.com/cim/historical-reports-manager:4.4.10Restart all above deployments and configmap
CODE# Navigate to the cim directory cd cim-solution/kubernetes/cim # Delete and Apply Config Map kubectl delete -f ConfigMaps/ef-connection-env-configmap.yaml kubectl apply -f ConfigMaps/ef-connection-env-configmap.yaml # Delete and Apply Deployments kubectl delete -f Deployments/ef-cim-customer-deployment.yaml -f Deployments/ef-unified-admin-deployment.yaml -f Deployments/ef-ccm-deployment.yaml -f Deployments/ef-bot-framework-deployment.yaml -f Deployments/ef-conversation-manager-deployment.yaml -f Deployments/ef-routing-engine-deployment.yaml -f Deployments/ef-state-events-logger-deployment.yaml -f Deployments/ef-historical-reports-deployment.yaml kubectl apply -f Deployments/ef-cim-customer-deployment.yaml -f Deployments/ef-unified-admin-deployment.yaml -f Deployments/ef-ccm-deployment.yaml -f Deployments/ef-bot-framework-deployment.yaml -f Deployments/ef-conversation-manager-deployment.yaml -f Deployments/ef-routing-engine-deployment.yaml -f Deployments/ef-state-events-logger-deployment.yaml -f Deployments/ef-historical-reports-deployment.yamlUpdate deployment of reporting connector
CODE# Navigate to the reporting connector directory cd cim-solution/kubernetes/pre-deployment/reportingConnector # Delete existing deployment of reporting connector kubectl delete -f ef-reporting-connector-cron.yaml # Delete existing configmap of reporting connector kubectl delete configmap ef-reporting-connector-conf -n expertflow # Update reporting-connector.conf file # MongoDB cluster configs should be updated as below: mongo_host1=mongo-mongodb-0.mongo-mongodb-headless.ef-external.svc.cluster.local mongo_port1=27017 mongo_host2=mongo-mongodb-1.mongo-mongodb-headless.ef-external.svc.cluster.local mongo_port2=27017 mongo_host3=mongo-mongodb-2.mongo-mongodb-headless.ef-external.svc.cluster.local mongo_port3=27017 mongo_host4=mongo-mongodb-0.mongo-mongodb-headless.ef-external.svc.cluster.local mongo_port4=27017 mongo_host5=mongo-mongodb-0.mongo-mongodb-headless.ef-external.svc.cluster.local mongo_port5=27017 mongo_host6=mongo-mongodb-0.mongo-mongodb-headless.ef-external.svc.cluster.local mongo_port6=27017 # Save the changes and recreate the configmap kubectl -n expertflow create configmap ef-reporting-connector-conf --from-file=reporting-connector.conf # Apply reporting connector cron job kubectl apply -f ef-reporting-connector-cron.yaml