Upgrade Guide CX4.9.4 to CX4.9.5
Before upgrading, ensure that the system is idle, i.e; all agents are logged out from the AgentDesk.
Clone the CX repository on the target server
CODE# Create CX-4.9.5 directory from root mkdir CX-4.9.5 # Navigate to CX-4.9.5 cd CX-4.9.5 # Clone the 4.9.5 branch of cim-solution repository git clone -b CX-4.9.5 https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cim/cim-solution.git $HOME/CX-4.9.5 # Navigate to root(previous) directory cd ..
Update helm repo
CODEhelm repo update expertflow
Change the directory to the current deployment of CX
CODEchange directory to following path in current deployment cd CX-4.9.4/kubernetes
Update the Agent-Desk helm chart
CODE#Update Agent Desk helm chart Edit/update the values file helm-values/cx-agent-desk-custom-values.yaml with unified-agent Tag: 4.9.5 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.9.5
Update the Channel helm chart
CODE# Update Channel helm chart Edit/update the values file helm-values/cx-channels-custom-values.yaml with following #Add the following environment variables for linkedinconnector under extraEnvVars - name: LINKEDIN_CIM_FILE_ENGINE_URL value: "http://{{ .Values.global.efCxReleaseName }}-file-engine-svc.{{ .Release.Namespace }}.svc:8080" - name: FILE_ENGINE_BASE_FQDN value: "https://{{ .Values.global.ingressRouter }}" - name: AUTO_SCHEDULER_STARTUP value: "true" #update the following environment variables for linkedinconnector under extraEnvVars - name: linkedin.scheduler.fixed-rate value: "150" linkedinconnector Tag : 4.9.5 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.9.5
Update the Core helm chart
CODE#Update Core Component helm chart Edit/update the values file helm-values/ef-cx-custom-values.yaml with replace the apisix route with following changes in unified-admin # Route 1: UNSECURED GET (API) - Highest priority for the specific unsecured API call. # Previously nameSuffix was get-form-by-id-unsecured but shortened due to APISIX issue. 401. - nameSuffix: "get-form-unsecured" enabled: true priority: 150 paths: ["/unified-admin/forms/*"] methods: ["GET"] exprs: - subject: scope: Path op: RegexMatch value: "^/unified-admin/forms/[a-fA-F0-9]{24}$" backendServicePort: 3000 plugins: enableAuth: false enableRewrite: true rewriteStripPrefix: false rewriteRegexUriFrom: "^/unified-admin/forms/([a-fA-F0-9]{24})$" rewriteRegexUriTo: "/forms/$1" # Route 2: SECURED APIs - High priority to secure all required backend API endpoints. - nameSuffix: "backend-apis-secured" enabled: true priority: 25 paths: - "/unified-admin/users" - "/unified-admin/users/*" - "/unified-admin/health" - "/unified-admin/health/*" - "/unified-admin/team" - "/unified-admin/team/*" - "/unified-admin/forms" - "/unified-admin/forms/*" - "/unified-admin/metrics" - "/unified-admin/metrics/*" - "/unified-admin/reasons" - "/unified-admin/reasons/*" - "/unified-admin/pull-mode-list" - "/unified-admin/pull-mode-list/*" backendServicePort: 3000 plugins: enableAuth: false enableRewrite: true rewriteStripPrefix: false rewriteRegexUriFrom: "^/unified-admin/(.*)" rewriteRegexUriTo: "/$1" # Route 3: UNSECURED SPA Handler - Handles the initial page load for the app. - nameSuffix: "frontend-spa-routes" enabled: true priority: 0 paths: - "/unified-admin" - "/unified-admin/*" backendServicePort: 3000 plugins: enableAuth: false enableRewrite: true rewriteStripPrefix: false rewriteRegexUriFrom: "^/unified-admin/?(.*)" rewriteRegexUriTo: "/$1" enableCors: true customPlugins: - name: client-control enable: true config: max_body_size: 6291456 # Route 4: GLOBAL CATCH-ALL - Based on the original working config. # This handles the FQDN root and ALL static assets (.js, .css, etc.) without a rewrite. - nameSuffix: "global-catchall" enabled: true priority: -10 paths: ["/*"] backendServicePort: 3000 plugins: enableAuth: false enableRewrite: false - nameSuffix: "default-404-handler" enabled: false priority: -200 # Very low priority paths: ["/*"] # Catches all paths not matched by higher priority routes # No backend is needed as the mocking plugin will generate the response backendServicePort: 80 # Dummy, but APISIX schema might require it. backendServiceName: "dummy-service" # Dummy plugins: enableAuth: false # Typically, 404 pages don't require auth enableRewrite: false enableCors: false # Or configure as needed for your 404 page customPlugins: - name: "mocking" enable: false config: response_status: 404 response_headers: Content-Type: "text/html; charset=utf-8" X-Custom-Error-Page: "true" response_example: | <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Page Not Found</title> <style> body { font-family: Arial, sans-serif; text-align: center; padding: 50px; color: #333; } h1 { font-size: 48px; color: #555; } p { font-size: 18px; } a { color: #007bff; text-decoration: none; } </style> </head> <body> <h1>404 - Page Not Found</h1> <p>Sorry, the page you are looking for does not exist or has been moved.</p> <p><a href="/">Return to Homepage</a></p> <hr> <p><small>Request ID: $request_id</small></p> </body> </html> agent-manager Tag: 4.9.5 bot-framework Tag: 4.9.5 cim-backend Tag: 4.9.5 conversation-manager Tag: 4.9.5 conversation-monitor Tag: 4.9.5 file-engine Tag: 4.9.5 media-routing-engine Tag: 4.9.5 team-announcement tag: 4.9.5 web-channel-manager tag: 4.9.5 customer-channel-manager tag : 4.9.5 customer-widget Tag: 4.9.5 realtime-reports-manager Tag: 4.9.5 helm upgrade --install --namespace expertflow --create-namespace ef-cx --debug --values helm-values/ef-cx-custom-values.yaml expertflow/cx --version 4.9.5
Update the Campaigns helm chart
CODE#Update Campaigns helm chart Edit/update the values file helm-values/cx-campaigns-custom-values.yaml with conversation-studio Tag: 4.9.5 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.9.5
Update the survey helm chart
CODE#Update Surveys helm chart Edit/update the values file helm-values/cx-surveys-custom-values.yaml with survey-backend Tag : 4.9.5 survey-nodes Tag : 4.9.5 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.9.5
Update the Expertflow ETL helm chart
CODE#Edit/update the values file helm-values/cx-transflux-custom-values.yaml with cx-data-platform Tag: 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-transflux --debug --values helm-values/cx-transflux-custom-values.yaml expertflow/transflux --version 4.9.5
Update the Reporting helm chart
CODE#Edit/update the values file helm-values/cx-reporting-scheduler-custom-values.yaml with Reporting connector Tag: 4.9.5 helm upgrade --install --namespace expertflow --set global.efCxReleaseName="ef-cx" cx-reporting --debug --values helm-values/cx-reporting-scheduler-custom-values.yaml expertflow/reporting --version 4.9.5