Revision as of 06:10, February 5, 2020 by Jaba (talk | contribs)
Jump to: navigation, search

Deployment of Web Services and Applications in Kuberbetes

Important: This content is restricted and not viewable without a login supplied by Genesys. The information contained in this documentation is not considered final and is managed under the terms and conditions found in the Pre-release Agreement. This documentation provides the most up-to-date reference information available for this pre-release version and is restricted for use by those who have signed the Pre-release Agreement with Genesys to acquire an early version of the software.

Prerequisites

Hardware Requirements

The solution can be deployed at a Kubernetes cluster with a minimal size of 3 nodes with an overall amount of 64 GB RAM. Recommended hardware requirements for each Kubernetes node:

  • Nodes: 3 nodes (Virtual Machines)
  • RAM: Approximately 22 GB for each node (64 GB in total)
  • CPU: 15 cores for each node (45 cores in total)
  • HDD: 100 GB for each node

Software Requirements

  • OS: CentOS-7

Kubernetes cluster:

  • Rancher Kubernetes Deployment
  • Client-side utilities installed at deployment host:

Workspace Web Requirements

  • Browser:
    • Google Chrome 75+
    • Mozilla Firefox 68+
    • Firefox ESR 60.9
    • Microsoft Internet Explorer 11
    • Microsoft Edge

Configuring Web Services Applications

To configure Web services and applications, refer to Configuring Web Services and Applications.

Deploying GWS

Implementation Steps

  1. Unpack installation package (Example: IP_HTCCDev_9000197b1_ENU_dockerlinux.zip file) and navigate to "ip" folder which should contain following files:
    • gws-microservices.tgz
    • exported microservices in tar.gz format (Example: gws-platform-configuration_9.0.000.42.tar.gz)
  2. Unpack gws-microservices.tgz archive to /opt/genesys/gws directory.
    mkdir -p /opt/genesys/gws
    tar xvf gws-microservices.tgz -C /opt/genesys/gws
  3. Populate the Docker images (presented in *.tar.gz format) from installation package to your corporate docker registry.
    for i in *.tar.gz; do /opt/genesys/gws/kubernetes/bin/push-containers-to-local-registry.sh $i %corporate_registry_address% --push; done
    Important
    This script must be run with Docker capable privileges and you must login to your registry before pushing.
  4. Edit the following values in the /opt/genesys/gws/kubernetes/parameters.yaml file:

    Variable

    Value

    Description

    REGISTRY

    NA

    Corporate docker registry, which is accessible from all Kubernetes nodes.

    GWS_DOMAIN

    "onpremiselab.com"

    Domain associated with this contact center.

    LOCATION

    /USW2

    Location of Configuration Server
    Note: The GWS Cluster Application object (typically named CloudCluster) in the Configuration Database must be configured with a specified location for each connection to Genesys servers, like Configuration Server, Stat Server, T-Server, and so on. This setting defines which server instance is visible by the GWS node based on its position in the GWS Cluster.

    CS_USERNAME

    default

    Username to connect to Configuration Server.

    CS_PASSWORD

    password

    Password to connect to Configuration Server.

    CS_APPNAME

    Cloud

    Application name to connect to Configuration Server.

    CS_ADDRESS

    127.0.0.1

    Address of primary Configuration Server.

    CS_PORT

    8888

    Port of primary Configuration Server.

    CS_BACKUP_ADDRESS

    127.0.0.1

    Address of backup Configuration Server.

    CS_BACKUP_PORT

    8888

    Port of backup Configuration Server.

    CS_TENANT

    Environment

    Configuration Server's tenant name.

    GWS_REDIRECT_URI

    http://onpremiselab.com

    Specifies an array by using double quotes and comma to separate values with no whitespace between. Used as part of OAuth authentication flow.

    ingressTlsEnable

    false

    Enables Ingress secured endpoint configuration for Web Service and Applications.

    POST_DEPLOY_UPDATE

    true

    Enable post deploy procedure, which creates default Genesys environment, contact center and OAuth client.

    DEPLOY_POSTGRES

    false

    Enable PostgreSQL deployment procedure in same namespace as Web Services and Applications.
    Note: For Lab deployments only.

    POSTGRES_ADDR

    postgres

    Address of PostgreSQL installation
    Note : If DEPLOY_POSTGRES set to true, default value should be kept.

    POSTGRES_DB

    gws_environment

    PostgreSQL database name
    Note : If DEPLOY_POSTGRES set to true, default value should be kept.

    POSTGRES_USER

    gws_env_master

    PostgreSQL user, which can be used to connect to database
    Note : If DEPLOY_POSTGRES set to true, default value should be kept.

    POSTGRES_PASS

    gws_env_password

    PostgreSQL user password
    Note : If DEPLOY_POSTGRES set to true, default value should be kept.

    DEPLOY_REDIS

    false

    Enable Redis cluster deployment procedure in same namespace as Web Services and Applications.
    Note: For Lab deployments only.

    REDIS_ADDR

    redis-cluster:6379

    Address of Redis cluster installation
    Note : If DEPLOY_REDIS set to true, default value should be kept.

    DEPLOY_ELASTICSEARCH

    false

    Enable ElasticSearch cluster deployment procedure in same namespace as Web Services and Applications.
    Note: For Lab deployments only.

    ELASTICSEARCH

    elasticsearch:9200

    Address of ElasticSearch cluster installation
    Note : If DEPLOY_ELASTICSEARCH set to true, default value should be kept.

  5. Invoke Helm:
    helm install gws/ -n gws-service -f gws-versions.yaml -f parameters.yaml

    Where:

    • gws/ is helm chart directory;
    • -n gws-service is kubernetes namespace name to deploy to;
    • -f gws-versions.yaml is config file where containers version defined;
    • -f parameters.yaml is config file where deployment parameters defined.
  6. Wait until helm deploy Web Service and Applications and Kubernetes cluster will start all requested containers. It may take up to 10 minutes.
Comments or questions about this documentation? Contact us for support!