Purpose
This deployment guide provides detailed instructions for installing, configuring, and using the Expertflow Generic Connector, which can be used to integrate with multiple CRMs.
Intended Audience
This document is intended for customers who want to deploy a EFCX Generic Connector Library.
Deployment Guide Structure
This deployment guide is divided into two main parts:
-
Deploying the Generic EFCX Connector Library.
Deploying the Generic EFCX Connector Library
Before you begin, verify that on the server, you have:
-
Installed Kubernetes. If not, see Deployment Planning
-
Setup storage. If not yet, see Storage Solution - Getting Started
Pulling The EFCX Generic Connector from Git
-
Create a directory with name as
mkdir efcx-generic-connector. or according to your ease. -
Navigate to newly created directory by
cd efcx-generic-connector. -
Pull the the code from the:
git clone --branch yaml-1.0.0 --depth 1 https://gitlab.expertflow.com/cti/efcx-generic-connector
-
Run
cd efcx-generic-connector/kuberenetesto change directories . This is where all the YAML files are stored.
Setting Up Environment
We use Kubernetes for our server deployment, on which the static files for the connector will be served, and where the EFCX Generic Connector will be running.
Namespace
Create a namespace “expertflow” if it doesn’t exist.
kubectl create namespace expertflow
Configure Ingress.yaml
EFCX Generic Connector should be accessible by a fully qualified domain name. Assign the FQDN.
Replace <FQDN> with your FQDN for EFCX Generic Connector (e.g. projectsdemo.expertflow.com) and run this command.
sed -i 's/devops[0-9]*.ef.com/<FQDN>/g' efcx-ingress.yaml
Create Self-Signed SSL/TLS Ingress Certificates (optional if already present)
Please modify the <FQDN> with your current FQDN before applying the following command.
-
Create IngressCerts directory (optional)
mkdir ingress-certs -
cd ingress-certs
-
set the Variable name to your FQDN (e.g.
projectsdemo.expertflow.com).
The${FQDN}variable in following commands will be replaced with the value you provided in this stepexport FQDN=<enter FQDN here> -
Now generate a secret with the following commands.
openssl req -x509 \ -newkey rsa:4096 \ -sha256 \ -days 3650 \ -nodes \ -keyout ${FQDN}.key \ -out ${FQDN}.crt \ -subj "/CN=${FQDN}" \ -addext "subjectAltName=DNS:www.${FQDN},DNS:${FQDN}" -
Create a Kubernetes secret in your required namespace. In our case it’s
expertflowkubectl -n expertflow create secret tls hs-ef-ingress-tls-secret --key ${FQDN}.key --cert ${FQDN}.crt
Configure efcx-deployment.yaml
-
Open the
efcx-deployment.yamlfile. -
Replace the image with the updated build tag.
-
Updated build tag is
gitimages.expertflow.com/cti/efcx-generic-connector:1.0.0
Applying Kubernetes YAMLs
-
Apply the service with
kubectl apply -f efcx-service.yaml -
Apply the image-pull secret with
kubectl apply -f efcx-imagePullSecret-expertflow.yaml -
Apply the Ingress with
kubectl apply -f efcx-ingress.yaml. (For RKE2-based Ingresses using Ingress-Nginx Controller) -
Apply the deployment with
kubectl apply -f efcx-deployment.yaml
Access EFCX Generic Connector URL
You can access the EFCX generic connector using below URL:
https://projectsdemo.expertflow.com/generic-connector/efcx-wrapper.js