Configure Genesys Web Services and Applications

From Genesys Documentation
Jump to: navigation, search

Learn how to configure Genesys Web Services and Applications.

Early Adopter Program
Genesys Engage cloud private edition is being released to pre-approved customers as part of the Early Adopter Program. Please note that the documentation and the product are subject to change. For more details about the program, please contact your Genesys representative.


Prerequisites

Deploy Genesys Authentication

The common Authentication Service must be deployed first.

Secret Configuration for Pulling Image

You might already have you secret created.

One of the way to do it is by using the following command:

oc create secret docker-registry <credential-name> --docker-server=<docker repo> --docker-username=<username> --docker-password=<password> --docker-email=<emailid>

You have to execute the following command to map the secret to the default service account:

oc secrets link default <credential-name> --for=pull

Prepare your environment

Check the Cluster

Run the following command to get the version of the cluster:

oc get clusterversion

Create a New Project

Use the following command to create a new project:

oc new -project gws 

Enable Security Context

Use the following command to enable the security context to the default service account:

oc adm policy add-scc-to-user genesys-restricted -z default -n gws

Download GWS Helm Charts

Download the GWS helm charts from JFrog using your credentials.

Create Two API Clients

Create two API clients on Genesys Authentication using the following procedure:

curl --location --request POST '<gauth-url>/auth/v3/ops/clients' \
--header 'Content-Type: application/json' \
--user ops:ops \ ---------------------------- Cloud ops credentials (<username:password>) from values_gauth.yaml. The default value is ops:ops
--data-raw '{"data": {
 "name": "external_api_client", ----------------- <Client Name>
 "clientType": "CONFIDENTIAL",
 "refreshTokenExpirationTimeout": 43200,
 "client_id": "external_api_client", ----------------- <Client ID>
 "client_secret": "", --------------------------<Client Password>
 "authorities": ["ROLE_INTERNAL_CLIENT"],
 "scope": ["*"],
 "authorizedGrantTypes": ["client_credentials", "authorization_code", "refresh_token", "password"],
 "redirectURIs": ["https://gauth.<yourcluster.com>","https://wwe.<yourcluster.com>","https://gws.<yourcluster.com>","https://prov.<yourcluster.com>"], -----> should add gws/prov external URLS here
  "accessTokenExpirationTimeout": 43200,
  "contactCenterIds": [
  "*" ------------------ <CCID or *>
 ]     
 }
}' 
Result:
"status": {
  "code": 0
 },
 "data": {
  "clientType": "CONFIDENTIAL",
  "scope": [
   "*"
  ],
 "internalClient": false,
  "authorizedGrantTypes": [
   "refresh_token",
   "client_credentials",
   "password",
   "authorization_code",
   "urn:ietf:params:oauth:grant-type:token-exchange",
   "urn:ietf:params:oauth:grant-type:jwt-bearer"
  ],
  "authorities": [
   "ROLE_INTERNAL_CLIENT"
  ], 
  "redirectURIs": [
   "https://gauth.<yourcluster.com>",
   "https://gws.<yourcluster.com>",
   "https://prov.<yourcluster.com>",         
   ],
  "contactCenterIds": [
   "9350e2fc-a1dd-4c65-8d40-1f75a2e080dd"
  ],
  "accessTokenExpirationTimeout": 43200,
  "refreshTokenExpirationTimeout": 43200,
  "createdAt": 1619796576236,
  "name": "external_api_client",
  "client_id": "external_api_client",
  "client_secret": "secret",
  "encrypted_client_secret": "A34BOmXDedZwbTKrwmd4eA=="
 }
}  

1. API Client for gws

  • name: gws-app-workspace (Note: Name should not be changed)
  • client_Id: gws-app-workspace (Note: Client ID should not be changed)
  • client_secret: <Your password> - default password is 'secret'

Record the 'encrypted_client_secret' as it is used to create your secret.

2. API Client for provisioning (Agent-setup)

  • name: gws-app-provisioning (Note: Name should not be changed)
  • client_Id: gws-app-provisioning (Note: Client ID should not be changed)
  • client_secret: <secret>

Record the 'encrypted_client_secret' as it is used to create your secret.

Create Secrets

Add the following lines to the value override file to have Helm create secrets during deployment:

secrets:
 gws-consul-token: <token-from consul>
 gws-postgres-username: <gws postgres DB username>
 gws-postgres-password: <gws postgres DB password>
 ops-user: <ops user>
 ops-pass-encr: <ops password>
 agentsetup-postgres-username: <prov postgres username>
 agentsetup-postgres-password: <prov postgres password>
 gws-app-workspace-encrypted: <secret(encrypted) for gws-app-workspace client>
 gws-app-provisioning-encrypted: <secret(encrypted) for gws-app-provisioning client>

Update Parameters in values.yaml

In the values.yaml file provided by Genesys, update following parameters:

Image repo details:
 REGISTRY: <docker-repo>
Postgres:
 POSTGRES_ADDR: Postgres service DB URL
 POSTGRES_DB: Postgres DB name for gws service
 POSTGRES_USER: Postgres user to access gws DB
 POSTGRES_PASS: Postgres Password
Redis:
 REDIS_ADDR: Address of the Redis cluster
 REDIS_PORT: Redis Port
elastic:
 ELASTICSEARCH_ADDR: Elastic search service master address
 ELASTICSEARCH_PORT: Port of ES service
Authentication service configurations:
 Add/update below variables in env section of all services under 'gwsServices'
  GWS_SERVICE_AUTH_URL: http://gauth-auth.gauth.svc.cluster.local.:80 // Genesys Authentication variable - pointes to internal auth service URL from gauth namesapce, Example: http://gauth-auth.gauth.svc.cluster.local.:80
  GWS_SERVICE_ENV_URL: http://gauth-environment.gauth.svc.cluster.local.:80 // Environment variable pointes to internal environment service URL from gauth namesapce, Example: http://gauth-environment.gauth.svc.cluster.local.:80
  GWS_WORKSPACE_SERVICES_ENV: http://gauth-environment.gauth.svc.cluster.local.:80 // Environment variable - pointes to internal environment service URL from gauth namesapce, Example: http://gauth-environment.gauth.svc.cluster.local.:80
  GWS_WORKSPACE_SERVICES_AUTH: http://gauth-auth.gauth.svc.cluster.local.:80 // Genesys Authentication variable - should be pointed to internal auth service URL from gauth namesapce, Example: http://gauth-auth.gauth.svc.cluster.local.:80
  GWS_WORKSPACE_SERVICES_AUTH_FOR_REDIRECT: https://gauth.<yourclusterdomain>.com //Genesys Authentication redirect variable - pointes to external https ingress URL from gauth namesapce, Example: https://gauth.apps.<yourclusterdomain>.com

Update the Value Overrides for Agent Setup

Agent Setup is part of the GWS deployment. It needs to be configured before the GWS deployment.

From the gws-services helm charts, update the following lines in the value overrides under the gwsServices > appProvisioning > context > env section before installing GWS:

  • GWS_SERVICE_AUTH_URL: Auth internal service URI from gauth namespace (for example, http://gauth-auth.gauth.svc.cluster.local.:80)
  • GWS_SERVICE_ENV_URL: Environment internal service URI from gauth namespace (for example, http://gauth-environment.gauth.svc.cluster.local.:80)
  • GWS_SERVICE_CONF_URL: gws internal service URI from gws namespace (for example, http://gws-service-proxy.gws.svc.cluster.local:80)
  • GWS_PROVISIONING_SERVICES_AUTH_FOR_REDIRECT : External https ingress URLS from gauth service(ex: https://gauth.<yourclusterdomain.com>)
  • GWS_PROVISIONING_OBJECTCACHE_POSTGRES_USER: <Postgres DB user for provisioning service>
  • GWS_PROVISIONING_OBJECTCACHE_POSTGRES_PASSWORD:  <Postgres DB password for provisioning service>
  • GWS_PROVISIONING_OBJECTCACHE_POSTGRES_HOST:  <Postgres DB host for provisioning>
  • GWS_PROVISIONING_OBJECTCACHE_POSTGRES_PORT:  <Postgres DB Port for provisioning >

Create or Update versions.yaml

Create/update the versions.yaml file with the latest docker versions. See Updated Helm Charts and Containers.

Retrieved from "https://all.docs.genesys.com/GWS/Current/GWSPEGuide/Configure (2021-09-19 08:38:35)"