Document toolboxDocument toolbox

(4.4) Kubernetes GC Connector Deployment Guide

Introduction

This document illustrates the procedure and steps to deploy Expertflow Generic Connector on any Kubernetes distribution (K3s or RKE2).


Step 1: Clone the Experflow Generic Connector Repository

1. Start with cloning the repository from GitLab.

git clone https://efcx:RecRpsuH34yqp56YRFUb@gitlab.expertflow.com/cti/gc_k3s_deployment.git


2. Change to the directory.

cd gc_k3s_deployment/cti-voice

Step 2: Create Namespace

 Run the following command on the master node. Create the namespace using the command.

kubectl create namespace ef-cti-voice

ActiveMQ

1. If you want to use ActiveMQ then Run the following command for ActiveMQ implementation.

kubectl apply -f StatefulSet/


2. Update Communication_Format from REST to JMS in the configmap file.



3. Update ActiveMQ Url in the confgimap file with your ActiveMQ service name and port number.



<service-name>:Port Number // e.g- ef-cti-amq-svc:61616


ConfigMaps

apply  the configmap in ConfigMaps folder using

kubectl apply -f Configmap/

Services

Create service for  deployment of generic components

kubectl apply -f Services/

Deployments

apply the Deployment manifests 

kubectl apply -f Deployment/


Step 3: Update the FQDN

1. Decide the FQDN to be used in your solution and change the <FQDN> to your actual FQDN as given in the following command:

sed -i 's/devops[0-9]*.ef.com/<FQDN>/g' Ingress/nginx/* Ingress/traefik/*

Ingress

Run this command for RKE

kubectl apply -f Ingress/nginx

Run this command for Traefik

kubectl apply -f Ingress/traefik

Connector Configuration Parameters (Environment Variables)

Parameter

Default Value

Description

NUMBER_OF_LICENSES1000
CUSTOMER_NAMEHaseeb

KEY

ASDFGHJKLZXCVBNM234RFGHUIOKJMNBFEWSDFGHNJMNBV

License key. Must be obtained from EF Team

Finesse_1

https://Finesse-X-DN/finesse/api/

Primary Finesse URL for Site A 

Finesse_2

https://Finesse-X-DN/finesse/api/

Primary Finesse URL for Site B 

ACCESS_TOKEN_URLhttps://192.168.1.104:1126/getaccesstoken

FINESSE_REQUEST_TIMEOUT

3000

Finesse requested a timeout (in mili-seconds)

FINESSE_HEARTBEAT_SLEEP

5

Delay in ping to finesse servers (seconds) 

ByPass_SSL

ture

Bypass SSL Certificate if finesse url is https and self signed certificate is used, in case of false Import SSL certificate to JVM if needed

ACTIVEMQ1

localhost:61616

ActiveMQ Primary URL

ACTIVEMQ1

localhost:61616

ActiveMQ Secondary URL

ACTIVEMQ_TIMEOUT

30000

ActiveMQ connection timeout (in milliseconds)

GRC_CONSUMER_PRIORITY127Connector1 Queue consumer priority (Used for primary, secondary deployment of GC)(0-127)
PRIORITY_BACKUPtrueTo connect with its primary GC
RANDOMIZEfalsefor failover url
PREFETCH_SIZE20000Prefect Size of the messages
AGENT_STATES_PUBLISHER_DURATION5000Time after which, states of all agents would be published on topic (In Milliseconds)
GC_HEARTBEAT_TIMEOUT10000GC heartbeat timeout

AGENT_INACTIVITY_DURATION

30

Agent inactivity time (in seconds)

GC_HEARTBEAT_SLEEP10000gc heartbeat thread sleep time
AGENT_INACTIVITY_TIME_SWITCHfalseAgent inactivity switch

DEFAULT_NOT_READY_REASON

19

default reason code for not ready (Must be defined in finesse)

DEFAULT_LOGOUT_REASON

70

Default reason code for force logout

AGENT_XMPP_SUBS_TIME10000Agent XMPP Subscription Time
USE_ENCRYPTED_PASSWORDSfalseUse encrypted password
CHANGE_STATE_ON_WRAPUPtrueAutomatically change the state when wrap-up occurs

LOGLEVEL

TRACE

Log Level 

GC_HEARTBEAT_TIMEOUT

10000 

GC heartbeat timeout

USE_ENCRYPTED_PASSWORDS

true

Use password encryption (3Des). (Must be same as in client.)

CHANGE_STATE_ON_WRAPUP

true

Caller’s state change automatically on wrap-up

MESSAGE_FORMATJSONMessage Format for communication. Expected formats DEFAULT, JSON, XML

AGENT_LOGS_PATH

/app/logs/agents/

Agent Logs Storage path

AGENT_LOGS_LEVEL

TRACE

Agent Logs Level

AGENT_LOGS_MAX_FILES

10

Max No of Files per agent for logs

AGENT_LOGS_FILE_SIZE

10MB

Max file size for agent logs

XMPP_PING_INTERVAL3Interval in seconds between XMPP server pings
ADMIN_IDAdministratorThe username of the administrator account the would be used for phonebook and contact APIs
ADMIN_PASSWORDExpertflow464The password of the administrator account would be used for phonebook and contact APIs
SUPERVISOR_INITIATED_NOTRAADYREASONCODE19Reason code for supervisor state change to Not_Ready

SUPERVISOR_INITIATED_LOGOUTREASONCODE

20Reason code for supervisor state change to Log_Out
UCCX_SERVER_IP192.168.1.29For queue stats in case of UCCX
UCCX_SERVER_USERNAMEAdministrator
UCCX_SERVER_PASSWORDExpertflow464
UCCX_DB_USERNAMEuccxhruser
UCCX_DB_PASSWORD12345
UCCX_DB_RETRY_ATTEMPTS2
UCCX_DB_TIMEOUT_CONNECTION1800
COMMUNICATION_FORMATREST | JMS
SPRING_PORT8112
REDIS_URLredis-master.ef-cti.svc
REDIS_PORT6379
REDIS_PASSWORDExpertflow123
SQL_SERVER192.168.1.89For Skill groups and supervisor list
DATABASEuc12_awdb
DATABASE_TABLESkill_Group
DATABASE_USER_NAMEsa
DATABASE_USER_PASSWORDExpertflow464
KEY_STORE_TYPEPKCS12
KEY_STORED:\\EF_Project\\GC4.4\\Generic Connector\\certs\\store\\clientkeystore.p12
TRUST_STORED:\\EF_Project\\GC4.4\\Generic Connector\\certs\\store\\client.truststore
KEY_STORE_PASSWORDchangeit
TRUST_STORE_PASSWORDchangeit
PRIVATE_KEY_STRINGkey_value
ISSUERef-chat
EXPIRY300
PEP_BASE_PATHhttp://192.168.50.31:8113
AOP_CALLBACK/ef-voice/fnb-cme/submit-gc-event/v1
AXL_URLhttps://192.168.1.26:8443/axl/
AXL_USERadministrator
AXL_PASSWORDExpertflow464
LD_LIBRARY_PATH/app
TZAsia/Karachi