Skip to main content
Skip table of contents

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.

  1. 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)
  2. 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


  3. 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


  4. Clone the CX-4.3 release from gitlab and place it on target server.

    BASH
    git clone -b CX-4.3 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git
  5. Navigate to the cim-solution/kubernetes directory in the newly cloned release.

    BASH
    cd cim-solution/kubernetes
  6. 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
  7. Update Grafana
    Before proceeding, copy the post-deployment/config/grafana/supervisor-dashboards/datasource.yml from the old (backup) cim-solution to the new cim-solution

    BASH
    # 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
  8. Update the Icons for new Channel Types

    BASH
    kubectl 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
  9. Update Rasa-X
    Upgrade the rasa-x using helm command

    BASH
    helm  upgrade --install=true --wait=true --timeout=10m0s --debug   rasa-x    --namespace rasa-x     --values external/rasa-x/values-small.yaml  external/rasa-x
  10. Update Reporting Connector
    Please update the "fqdn, browser_language, connection_type and Database server connection parameters"  in the file pre-deployment/reportingConnector/reporting-connector.conf and then deploy.

    BASH
    kubectl -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
  11. Update Team Announcement
    Remove and then update Team Announcement Cronjob

    BASH
    kubectl delete -f pre-deployment/team-announcement
    
    
    kubectl apply -f pre-deployment/team-announcement
  12. Update Translations for Unified Agent

    BASH
    kubectl -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
  13. Update the solution deployment

    BASH
    kubectl 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

BASH
# Navigate to the parent directory and run
rm -rf cim-solution-old


Configurations

  1. To configure Instagram Connector
    Instagram Connector Configuration & Deployment Guide

  2. To configure SMPP Connector
    SMPP Configuration Guide

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.