Jump to: navigation, search
(Ready to publish for 9.0.000.80 release on Dec 21, 2020)
 
Line 11: Line 11:
 
If internet access is not available, manually load the following public container images to the Docker registry:
 
If internet access is not available, manually load the following public container images to the Docker registry:
 
* {{#Widget:ExtLink|link=https://hub.docker.com/_/consul|displaytext=Consul 1.7.2}}
 
* {{#Widget:ExtLink|link=https://hub.docker.com/_/consul|displaytext=Consul 1.7.2}}
* {{Editgrn_open}}<strike>Elasticsearch 6.x</strike>{{Editgrn_close}} {{#Widget:ExtLink|link=https://hub.docker.com/_/elasticsearch|displaytext=Elasticsearch 7.8}}
+
* {{#Widget:ExtLink|link=https://hub.docker.com/_/elasticsearch|displaytext=Elasticsearch 7.8}}
 
* {{#Widget:ExtLink|link=https://hub.docker.com/_/postgres|displaytext=Postgres 11}}
 
* {{#Widget:ExtLink|link=https://hub.docker.com/_/postgres|displaytext=Postgres 11}}
 
* {{#Widget:ExtLink|link=https://hub.docker.com/_/redis|displaytext=Redis 5}}  
 
* {{#Widget:ExtLink|link=https://hub.docker.com/_/redis|displaytext=Redis 5}}  
Line 170: Line 170:
 
| valign="top" |
 
| valign="top" |
 
Address of the PostgreSQL installation. <br>
 
Address of the PostgreSQL installation. <br>
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, <strike>the default value is used</strike> {{Editgrn_open}}do not change the default value{{Editgrn_close}}.
+
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, do not change the default value.
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
Line 178: Line 178:
 
| valign="top" |
 
| valign="top" |
 
PostgreSQL database name. <br>
 
PostgreSQL database name. <br>
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, <strike>the default value is used</strike> {{Editgrn_open}}do not change the default value{{Editgrn_close}}.
+
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, do not change the default value.
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
{{Editgrn_open}}POSTGRES_IMAGE{{Editgrn_close}}
+
POSTGRES_IMAGE
 
| valign="top" |
 
| valign="top" |
 
postgres:11-alpine
 
postgres:11-alpine
Line 194: Line 194:
 
| valign="top" |
 
| valign="top" |
 
PostgreSQL user, which can be used to connect to database. <br>
 
PostgreSQL user, which can be used to connect to database. <br>
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, <strike>the default value is used</strike> {{Editgrn_open}}do not change the default value{{Editgrn_close}}.
+
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, do not change the default value.
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
Line 202: Line 202:
 
| valign="top" |
 
| valign="top" |
 
PostgreSQL user password. <br>
 
PostgreSQL user password. <br>
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, <strike>the default value is used</strike> {{Editgrn_open}}do not change the default value{{Editgrn_close}}.
+
'''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, do not change the default value.
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
Line 218: Line 218:
 
| valign="top" |
 
| valign="top" |
 
Address of the Redis cluster installation. <br>
 
Address of the Redis cluster installation. <br>
'''Note''': If DEPLOY_REDIS is set to <tt>true</tt>, <strike>the default value is used</strike> {{Editgrn_open}}do not change the default value{{Editgrn_close}}.
+
'''Note''': If DEPLOY_REDIS is set to <tt>true</tt>, do not change the default value.
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
{{Editgrn_open}}REDIS_IMAGE{{Editgrn_close}}
+
REDIS_IMAGE
 
| valign="top" |
 
| valign="top" |
 
redis:5-stretch
 
redis:5-stretch
Line 244: Line 244:
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
<strike>ELASTICSEARCH</strike> {{Editgrn_open}}ELASTICSEARCH_ADDR{{Editgrn_close}}
+
ELASTICSEARCH_ADDR
 
| valign="top" |
 
| valign="top" |
 
elasticsearch
 
elasticsearch
 
| valign="top" |
 
| valign="top" |
 
Address of the Elasticsearch cluster installation.<br>
 
Address of the Elasticsearch cluster installation.<br>
'''Note''': If DEPLOY_ELASTICSEARCH is set to <tt>true</tt>, <strike>the default value is used</strike> {{Editgrn_open}}do not change the default value{{Editgrn_close}}.
+
'''Note''': If DEPLOY_ELASTICSEARCH is set to <tt>true</tt>, do not change the default value.
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
{{Editgrn_open}}ELASTICSEARCH_IMAGE{{Editgrn_close}}
+
ELASTICSEARCH_IMAGE
 
| valign="top" |
 
| valign="top" |
 
elasticsearch:7.8.1
 
elasticsearch:7.8.1
Line 267: Line 267:
 
|-
 
|-
 
| valign="top" |
 
| valign="top" |
{{Editgrn_open}}CONSUL_IMAGE{{Editgrn_close}}
+
CONSUL_IMAGE
 
| valign="top" |
 
| valign="top" |
 
consul:1.7.2
 
consul:1.7.2
Line 273: Line 273:
 
Address of the Consul container image, such as <tt><customers_private_docker_registry_address>/consul:1.7.2</tt>
 
Address of the Consul container image, such as <tt><customers_private_docker_registry_address>/consul:1.7.2</tt>
 
|-
 
|-
| {{Editgrn_open}}nodeSelector{{Editgrn_close}}
+
| nodeSelector
 
|<nowiki>{}</nowiki>
 
|<nowiki>{}</nowiki>
 
| Enables to configure Kubernetes [https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector nodeSelector] to target specific nodes.
 
| Enables to configure Kubernetes [https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector nodeSelector] to target specific nodes.

Latest revision as of 17:27, December 18, 2020

Deployment of Web Services and Applications in Kubernetes

Warning
  • Only a Helm v3 deployment method is supported.
  • High Availability (HA) is provided through N+1 architecture.
  • Disaster Recovery (DR) – Contact your Genesys representative and the Architecture team for guidance about recommended DR designs.

Prerequisites

For hardware, software, Workspace Web Edition, and Gplus Adapter for Salesforce requirements, refer to Prerequisites. Also, ensure your environment has access to docker.io/library. If internet access is not available, manually load the following public container images to the Docker registry:

Configuring Web Services and Applications

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

Configuring Security

Transport Layer Security (TLS) is available only in Kubernetes-based deployment. For more details, refer to Configuring Security.

Deploying GWS

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

    Variable

    Default Value

    Description

    DEPLOYMENT_TYPE

    ALL

    Controls the microservices that will be deployed.
    ALL - All microservices from the package.
    CXCONLY - All requirements for CXC.

    REGISTRY

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

    GWS_DOMAIN

    onpremiselab.com

    Contact center domain information. Used during post deployment provisioning when POST_DEPLOY_UPDATE is set to true.
    Note: Contact center domain information must be provided during each Web Services and Applications login in the "Tenant" field.

    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, such as 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_USER

    default

    Username to connect to Configuration Server.

    CS_PASS

    password

    Password to connect to Configuration Server.

    CS_APP_NAME

    Cloud

    Application name to connect to Configuration Server.

    CS_ADDRESS

    127.0.0.1

    Address of the primary Configuration Server.

    CS_PORT

    8888

    Port of the primary Configuration Server.

    CS_BACKUP_ADDRESS

    127.0.0.1

    Address of the backup Configuration Server.

    CS_BACKUP_PORT

    8888

    Port of the 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 a comma to separate values with no white space in between. Used as part of OAuth authentication flow.

    POSTGRES_PORT

    5432

    Port of PostgreSQL installation.

    POST_DEPLOY_UPDATE

    false

    Enables the post deployment procedure that creates the default Genesys environment, contact center, and OAuth client.

    DEPLOY_POSTGRES

    false

    Enables the PostgreSQL deployment procedure in the same namespace as Web Services and Applications.
    Note: For lab deployments only.

    POSTGRES_ADDR

    postgres

    Address of the PostgreSQL installation.
    Note: If DEPLOY_POSTGRES is set to true, do not change the default value.

    POSTGRES_DB

    gws_environment

    PostgreSQL database name.
    Note: If DEPLOY_POSTGRES is set to true, do not change the default value.

    POSTGRES_IMAGE

    postgres:11-alpine

    Address of the PostreSQL container image, such as <customers_private_docker_registry_address>/postgres:11-alpine
    Note: For lab deployments only.

    POSTGRES_USER

    gws_env_master

    PostgreSQL user, which can be used to connect to database.
    Note: If DEPLOY_POSTGRES is set to true, do not change the default value.

    POSTGRES_PASS

    gws_env_password

    PostgreSQL user password.
    Note: If DEPLOY_POSTGRES is set to true, do not change the default value.

    DEPLOY_REDIS

    false

    Enables the Redis cluster deployment procedure in the same namespace as Web Services and Applications.
    Note: For lab deployments only.

    REDIS_ADDR

    redis-cluster

    Address of the Redis cluster installation.
    Note: If DEPLOY_REDIS is set to true, do not change the default value.

    REDIS_IMAGE

    redis:5-stretch

    Address of the Redis container image, such as <customers_private_docker_registry_address>/redis:5-stretch
    Note: For lab deployments only.

    REDIS_PORT

    6379

    Port of the Redis cluster installation.

    DEPLOY_ELASTICSEARCH

    false

    Enables ElasticSearch cluster deployment procedure in the same namespace as Web Services and Applications.
    Note: For lab deployments only.

    ELASTICSEARCH_ADDR

    elasticsearch

    Address of the Elasticsearch cluster installation.
    Note: If DEPLOY_ELASTICSEARCH is set to true, do not change the default value.

    ELASTICSEARCH_IMAGE

    elasticsearch:7.8.1

    Address of the Elasticsearch container image, such as <customers_private_docker_registry_address>/elasticsearch:7.8.1
    Note: For lab deployments only.

    ELASTICSEARCH_PORT

    9200

    Port of the Elasticsearch cluster installation.

    CONSUL_IMAGE

    consul:1.7.2

    Address of the Consul container image, such as <customers_private_docker_registry_address>/consul:1.7.2

    nodeSelector {} Enables to configure Kubernetes nodeSelector to target specific nodes.

    entryPoint.internal.service.type

    LoadBalancer

    Internal endpoint configuration service type for Web Services and Applications.

    entryPoint.internal.service.annotations

    {}

    Optional internal service endpoint configuration for Web Services and Applications.

    entryPoint.internal.ingress.annotations

    {}

    Optional internal ingress endpoint configuration annotations for Web Services and Applications.

    entryPoint.internal.ingress.tlsEnable

    false

    Enables ingress-secured internal endpoint configuration for Web Service and Applications.

    entryPoint.internal.ingress.secretName

    gws-secret-int

    Internal ingress endpoint configuration secret name for Web Services and Applications.

    entryPoint.internal.ingress.hostName

    gws-int.test.com

    The hostname, which will be used for internal ingress configuration.

    entryPoint.external.service.type

    ClusterIP

    External endpoint configuration service type for Web Services and Applications.

    entryPoint.external.service.annotations

    {}

    Optional external service endpoint configuration for Web Services and Applications.

    entryPoint.external.ingress.annotations

    {}

    Optional external ingress endpoint configuration annotations for Web Services and Applications.

    entryPoint.external.ingress.tlsEnable

    false

    Enables ingress secured external endpoint configuration for Web Service and Applications.

    entryPoint.external.ingress.secretName

    gws-secret-ext

    External ingress endpoint configuration secret name for Web Services and Applications.

    entryPoint.external.ingress.hostName

    http://onpremiselab.com

    The hostname that will be used for external ingress configuration.
    Note: If entryPoint.external.ingress.tlsEnable is true, the deployment will be accessible through https://entryPoint.external.ingress.hostName/ui/wwe/, else the deployment will be accessible through http://entryPoint.external.ingress.hostName/ui/wwe/.

  5. Navigate to /opt/genesys/gws/kubernetes.
  6. Invoke Helm:
    helm install gws gws/ -n gws-service -f gws-versions.yaml -f parameters.yaml

    Where:

    • gws is the name of deployment.
    • gws/ is the helm chart directory.
    • -n gws-service is the Kubernetes namespace name to deploy to.
    • -f gws-versions.yaml is the config file where versions of containers are defined.
    • -f parameters.yaml is the config file where deployment parameters are defined.
  7. Wait until the Helm-deployed Web Services and Applications and Kubernetes cluster start all the requested containers.

Verification

Use the following URLs to get the expected versions of the Web Services and Applications components and verify they are correct:

Service

Verification URLs

Authentication Service

http://entryPoint.internal.ingress.hostName/auth/v3/version

Configuration Service

http://entryPoint.internal.ingress.hostName/configuration/v3/version

Environment Service

http://entryPoint.internal.ingress.hostName/environment/v3/version

Data Collector Service

http://entryPoint.internal.ingress.hostName/datacollector/v3/version

Workspace Web Edition

http://entryPoint.external.ingress.hostName/ui/wwe/index.html

This page was last edited on December 18, 2020, at 17:27.
Comments or questions about this documentation? Contact us for support!