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.yaml
file.CODEMONGODB_REPLICASET: "<REPLICASET_NAME>"
MONGODB_HOST
configuration 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.yaml
file.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 -> env
path 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-cm
Remove
MONGODB_PORT
variable from the following mentioned deployment files undercontainers -> env
path 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-cm
Change the value of
MONGO_HOST
environment variable ininitContainers
ofef-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
image
key 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.10
Restart 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.yaml
Update 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