Before upgrading, ensure that the system is idle, i.e, all agents are logged out from the AgentDesk.
Custom Configuration Strategy
For detailed guidelines on applying environment-specific configurations using custom values.yaml layering,
Refer to the CX Helm Chart Custom Configuration Strategy guide.
-
Update Helm repo
helm repo update expertflow -
Clone the CX repository on the target server
# Create CX-4.10.5 directory from root mkdir CX-4.10.5 # Navigate to CX-4.10.5 cd CX-4.10.5 # Clone the CX-4.10.5 branch of the cim-solution repository git clone -b CX-4.10.5 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git $HOME/CX-4.10.5 # Navigate to root(previous) directory -
Vault Configuration
# Create secrets related to vault kubectl get secret tls-ca -n vault -o yaml | sed 's/namespace: vault/namespace: ef-external/' | kubectl create -f - kubectl get secret tls-server-client -n vault -o yaml | sed 's/namespace: vault/namespace: ef-external/' | kubectl create -f - kubectl get secret tls-server-vault -n vault -o yaml | sed 's/namespace: vault/namespace: ef-external/' | kubectl create -f - kubectl get secret expertflow-reg-cred -n ef-external -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f - kubectl get secret mongo-mongodb-ca -n ef-external -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f - kubectl get secret redis-crt -n ef-external -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f - kubectl get secret ef-postgresql-crt -n ef-external -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f - kubectl get secret activemq-tls -n ef-external -o yaml | sed 's/namespace: ef-external/namespace: vault/' | kubectl create -f - # Copy activemq-vault directory Copy From CX-4.10.5/kubernetes/pre-deployment/activemq-vault To ./kubernetes/pre-deployment # Copy service-based-accounts directory Copy From CX-4.10.5/kubernetes/pre-deployment/service-based-accounts To ./kubernetes/pre-deployment # Copy keycloak-spc.yaml Copy From CX-4.10.5/kubernetes/pre-deployment/keycloak/keycloak-spc.yaml To ./kubernetes/pre-deployment/keycloak
-
Deploy Redis Helm Chart
Update the password in the command below if using other than the default password
kubectl -n ef-external create secret generic ef-redis-acl-secret --from-literal=superuser=Expertflow464
helm show values expertflow/redis --version 4.10.5 > helm-values/ef-redis-custom-values.yaml
Update the following values helm-values/ef-redis-custom-values.yaml as mentioned below
acl:
users:
password: "Expertflow464" # Change this to match the requirements
helm upgrade --install=true --namespace=ef-external --values=helm-values/ef-redis-custom-values.yaml redis expertflow/redis --version 4.10.5
-
Deploy Vault Helm Chart
helm uninstall -n vault vault
helm show values expertflow/vault --version 4.10.5 > helm-values/ef-vault-custom-values.yaml
helm upgrade --install --namespace vault --create-namespace vault --debug --values helm-values/ef-vault-custom-values.yaml expertflow/vault --version 4.10.5
Follow only the unsealing steps from initializing and unsealing the vault guide
Follow the below mentioned guides to configure Service based Accounts and Vault in different external components:
For MongoDB: Configure Vault for MongoDB Dynamic Database Credentials
For Redis: Configure Vault for Redis Dynamic Database Credentials (non-mtt)
For ActiveMQ: Configure Vault for ActiveMQ
For PostgreSql: Configure Vault for PostgreSQL Dynamic Database Credentials
For Service Based Accounts: Configure Service Based Accounts using Vault
-
Deploy the ActiveMQ helm chart
helm show values expertflow/activemq --version 4.10.5 > helm-values/ef-activemq-custom-values.yaml
helm upgrade --install=true --namespace=ef-external --values=helm-values/ef-activemq-custom-values.yaml activemq expertflow/activemq --version 4.10.5
-
Deploy the Keycloak helm chart
helm show values expertflow/keycloak --version 4.10.5 > helm-values/ef-keycloak-custom-values.yaml
Edit helm-values/ef-keycloak-custom-values.yaml
global:
ingressRouter: <DEFAULT-FQDN>
Now, deploy Keycloak by running the following command
helm upgrade --install=true --debug --namespace=ef-external --values=helm-values/ef-keycloak-custom-values.yaml keycloak expertflow/keycloak --version 4.10.5
-
Deploy the AgentDesk helm chart
# Copy the unified agent translation directory to the current release
Copy From CX-4.10.5/kubernetes/pre-deployment/app-translations/unified-agent/i18n/ To pre-deployment/app-translations/unified-agent
# Delete and Create the ConfigMap of Unified Agent based translations
kubectl delete cm ef-app-translations-cm -n expertflow
kubectl -n expertflow create configmap ef-app-translations-cm --from-file=pre-deployment/app-translations/unified-agent/i18n/
# Copy the customer-widget translation directory to the current release
Copy From CX-4.10.5/kubernetes/pre-deployment/app-translations/customer-widget/i18n/ To pre-deployment/app-translations/customer-widget
# Delete and Create the ConfigMap of Customer Widget based translations
kubectl delete cm ef-widget-translations-cm -n expertflow
kubectl -n expertflow create configmap ef-widget-translations-cm --from-file=pre-deployment/app-translations/customer-widget/i18n/
# Deploy the new chart version using the helm-values/cx-agent-desk-custom-values.yaml
helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-agent-desk --debug --values helm-values/cx-agent-desk-custom-values.yaml expertflow/agent-desk --version 4.10.5
AGENT_STATE_CHANGED Flow Added in Conversation Studio
Note:Please take backup/export of your existing flow from conversation studio before any change
A new flow for Agent State Change has been added as part of the Conversation Re-Routing on Agent State Change - Not Ready (Callback) feature.
If you are using custom flows for Conversation Studio:
Please add the flow changes manually. After deploying the Core helm chart, refer to the Conversation Studio default flows documentation (see the 'Agent State Changed' section—17th heading) and update your customized flow accordingly.
If you are using default flows for Conversation Studio (This will remove all existing flows, please only follow the below in case you are using default flows):
Execute the below commands before deploying the Core Helm chart.
a. Delete the Conversation Studio StatefulSet:
kubectl delete -n expertflow statefulset ef-cx-conversation-studio
b. Delete the existing Persistent Volume Claim (PVC) for Conversation Studio:
kubectl delete -n expertflow pvc conversation-studio-flow-vol-ef-cx-conversation-studio-0
-
Deploy the Core helm chart
# Copy the conversation manager graphql schemas and mongodb rules to the current release directory
Copy From CX-4.10.5/kubernetes/pre-deployment/conversation-manager/graphql/ To pre-deployment/conversation-manager
# Delete and Create the Config Maps related to Conversation Manager Graphql schemas and mongodb rules
kubectl delete configmap -n expertflow conversation-manager-graphql-schemas
kubectl create configmap -n expertflow conversation-manager-graphql-schemas --from-file=./pre-deployment/conversation-manager/graphql/schemas
kubectl delete configmap -n expertflow conversation-manager-graphql-mongodb-rules
kubectl create configmap -n expertflow conversation-manager-graphql-mongodb-rules --from-file=./pre-deployment/conversation-manager/graphql/graphql-mongodb-rules.json
# Deploy the new chart version using the helm-values/ef-cx-custom-values.yaml
helm upgrade --install --namespace expertflow --create-namespace ef-cx --debug --values helm-values/ef-cx-custom-values.yaml expertflow/cx --version 4.10.5
-
Deploy the Channels helm chart
# Deploy the new chart version using the helm-values/cx-channels-custom-values.yaml
helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" --debug cx-channels --values helm-values/cx-channels-custom-values.yaml expertflow/channels --version 4.10.5
-
Deploy the QM helm chart
# Deploy the new chart version using the helm-values/cx-qm-custom-values.yaml
helm upgrade --install --namespace=expertflow --set global.efCxReleaseName="ef-cx" qm --debug --values=helm-values/cx-qm-custom-values.yaml expertflow/qm --version 4.10.5
-
Deploy the Campaign helm chart
# Deploy the new chart version using the helm-values/cx-campaigns-custom-values.yaml
helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-campaigns --debug --values helm-values/cx-campaigns-custom-values.yaml expertflow/campaigns --version 4.10.5
-
Deploy the Survey helm chart
# Deploy the new chart version using the helm-values/cx-surveys-custom-values.yaml
helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-surveys --debug --values helm-values/cx-surveys-custom-values.yaml expertflow/surveys --version 4.10.5
Note: To setup voice connector, please follow this guide with Voice-Connector part only.
Configuration Guide(s):
1. https://expertflow-docs.atlassian.net/wiki/x/dAA5Y