(Update with the copy of version: 9.0.0DRAFT) |
|||
Line 1: | Line 1: | ||
− | = Deployment of Web Services and Applications = | + | =Deployment of Web Services and Applications in Kuberbetes= |
− | {{PrereleaseDisclaimer}} | + | <!-- {{PrereleaseDisclaimer}} --> |
− | + | ==Prerequisites== | |
− | == | + | For Hardware, Software, and Workspace Web requirements, refer to [[Prerequisites|Prerequisites]]. |
<!-- | <!-- | ||
− | === Hardware | + | ===Hardware Requirements=== |
+ | * '''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: | ||
+ | *[http://kubernetes.om/ Kubernetes 1.12+] | ||
+ | *[https://helm.sh/ Helm 2.11+ or Helm 3.0-beta3+] | ||
+ | *[https://www.postgresql.org/ PostgreSQL] | ||
+ | *[https://redis.io/ Redis 5+] | ||
− | * | + | *Rancher Kubernetes Deployment |
− | * | + | *Client-side utilities installed at deployment host: |
− | * | + | *:*[https://kubernetes.io/docs/tasks/tools/install-kubectl/ Kubectl] tool |
+ | *:*Helm | ||
− | == | + | === Workspace Web Requirements === |
+ | * Browser: | ||
+ | *:* Google Chrome 75+ | ||
+ | *:* Mozilla Firefox 68+ | ||
+ | *:* Firefox ESR 60.9 | ||
+ | *:* Microsoft Internet Explorer 11 | ||
+ | *:* Microsoft Edge | ||
+ | --> | ||
+ | ==Configuring Web Services and Applications== | ||
+ | To configure Web services and Applications, refer to [[Documentation:HTCC:Dep:ConfigurationPremise|Configuring Web Services and Applications]]. | ||
+ | ==Configuring Security== | ||
+ | Transport Layer Security (TLS) is available only in Kubernetes-based deployment. For more details, refer to [[Documentation:HTCC:Dep:Security|Configuring Security]]. | ||
− | + | == Deploying GWS == | |
− | + | <ol> | |
− | + | <li>Unpack the installation package (Example: IP_HTCCDev_9000197b1_ENU_dockerlinux.zip file) and navigate to the '''ip''' folder which contains the following files: | |
− | + | * '''gws-microservices.tgz''' | |
− | + | * exported microservices in tar.gz format (Example: '''gws-platform-configuration_9.0.000.42.tar.gz''') | |
− | + | </li> | |
− | + | <li>Unpack the '''gws-microservices.tgz''' archive to the '''/opt/genesys/gws''' directory. | |
− | + | <source lang="text"> | |
− | + | mkdir -p /opt/genesys/gws | |
− | + | tar xvf gws-microservices.tgz -C /opt/genesys/gws | |
− | + | </source> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | < | ||
− | <li> | ||
− | |||
− | < | ||
− | |||
− | |||
− | |||
</li> | </li> | ||
− | <li> | + | <li>Populate Docker images (presented in *.tar.gz format) from the installation package to your corporate docker registry. |
− | < | + | <source lang="text"> |
− | + | for i in *.tar.gz; do /opt/genesys/gws/kubernetes/bin/push-containers-to-local-registry.sh $i %corporate_registry_address% --push; done | |
− | + | </source> | |
− | + | {{NoteFormat|This script must be run with Docker-capable privileges and you must login to your registry before pushing.}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</li> | </li> | ||
− | <li> | + | <li>Edit the following values in the '''/opt/genesys/gws/kubernetes/parameters.yaml''' file: |
− | < | + | {| |
− | < | + | | valign="top" | |
− | < | + | '''Variable''' |
− | < | + | | valign="top" | |
− | < | + | '''Value''' |
+ | | valign="top" | | ||
+ | '''Description''' | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | REGISTRY | ||
+ | | valign="top" | | ||
+ | NA | ||
+ | | valign="top" | | ||
+ | Corporate docker registry, which is accessible from all Kubernetes nodes. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | GWS_DOMAIN | ||
+ | | valign="top" | | ||
+ | <nowiki>http://onpremiselab.com</nowiki> | ||
+ | | valign="top" | | ||
+ | The host name that will be used by Ingress for routing rules creation. | ||
+ | '''Note:''' If '''ingressTlsEnable''' is <tt>true</tt>, the deployment will be accessible though <nowiki>https://GWS_DOMAIN/ui/wwe/</nowiki>. If not, the deployment will be accessible through <nowiki>http://GWS_DOMAIN/ui/wwe/</nowiki>. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | LOCATION | ||
+ | | valign="top" | | ||
+ | /USW2 | ||
+ | | valign="top" | | ||
+ | Location of the Configuration Server <br> | ||
+ | '''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. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_USERNAME | ||
+ | | valign="top" | | ||
+ | default | ||
+ | | valign="top" | | ||
+ | Username to connect to the Configuration Server. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_PASSWORD | ||
+ | | valign="top" | | ||
+ | password | ||
+ | | valign="top" | | ||
+ | Password to connect to the Configuration Server. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_APPNAME | ||
+ | | valign="top" | | ||
+ | GWS_App | ||
+ | | valign="top" | | ||
+ | Application name to connect to the Configuration Server. For details, refer to [[ConfigurationPremise#gaxgwsclient| Creating GWS Client Application]]. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_ADDRESS | ||
+ | | valign="top" | | ||
+ | 127.0.0.1 | ||
+ | | valign="top" | | ||
+ | Address of the primary Configuration Server. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_PORT | ||
+ | | valign="top" | | ||
+ | 8888 | ||
+ | | valign="top" | | ||
+ | Port of the primary Configuration Server. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_BACKUP_ADDRESS | ||
+ | | valign="top" | | ||
+ | 127.0.0.1 | ||
+ | | valign="top" | | ||
+ | Address of the backup Configuration Server. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_BACKUP_PORT | ||
+ | | valign="top" | | ||
+ | 8888 | ||
+ | | valign="top" | | ||
+ | Port of the backup Configuration Server. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | CS_TENANT | ||
+ | | valign="top" | | ||
+ | Environment | ||
+ | | valign="top" | | ||
+ | The Configuration Server's tenant name. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | GWS_REDIRECT_URI | ||
+ | | valign="top" | | ||
+ | <nowiki>http://onpremiselab.com</nowiki> | ||
+ | | valign="top" | | ||
+ | Specifies an array by using double quotes and comma to separate values with no white space in between. Used as part of OAuth authentication flow. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | ingressTlsEnable | ||
+ | | valign="top" | | ||
+ | true | ||
+ | | valign="top" | | ||
+ | Enables Ingress secured endpoint configuration for Web Services and Applications.<br> | ||
+ | '''Note''': Refer to [[Documentation:HTCC:Dep:Security|Configuring Security]] for more details. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | POST_DEPLOY_UPDATE | ||
+ | | valign="top" | | ||
+ | false | ||
+ | | valign="top" | | ||
+ | Enables post deployment procedure, which creates default Genesys environment, contact center and OAuth client. <br> | ||
+ | '''Note:''' If '''POST_DEPLOY_UPDATE''' is set to <tt>true</tt>, '''GWS_DOMAIN''' will be used for contact center domain creation, and agents should provide domain information at login ('''GWS_DOMAIN\%CfgPerson's username%'''). | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | DEPLOY_POSTGRES | ||
+ | | valign="top" | | ||
+ | false | ||
+ | | valign="top" | | ||
+ | Enables PostgreSQL deployment procedure in the same namespace as Web Services and Applications.<br> | ||
+ | '''Note:''' For lab deployments only. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | POSTGRES_ADDR | ||
+ | | valign="top" | | ||
+ | postgres | ||
+ | | valign="top" | | ||
+ | Address of PostgreSQL installation <br>. | ||
+ | '''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, the default value should be retained. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | POSTGRES_DB | ||
+ | | valign="top" | | ||
+ | gws_environment | ||
+ | | valign="top" | | ||
+ | PostgreSQL database name <br>. | ||
+ | '''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, the default value should be retained. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | POSTGRES_USER | ||
+ | | valign="top" | | ||
+ | gws_env_master | ||
+ | | valign="top" | | ||
+ | PostgreSQL user, which can be used to connect to database <br>. | ||
+ | '''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, the default value should be retained. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | POSTGRES_PASS | ||
+ | | valign="top" | | ||
+ | gws_env_password | ||
+ | | valign="top" | | ||
+ | PostgreSQL user password <br>. | ||
+ | '''Note''': If DEPLOY_POSTGRES is set to <tt>true</tt>, the default value should be retained. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | DEPLOY_REDIS | ||
+ | | valign="top" | | ||
+ | false | ||
+ | | valign="top" | | ||
+ | Enables Redis cluster deployment procedure in same namespace as Web Services and Applications.<br> | ||
+ | '''Note:''' For lab deployments only. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | REDIS_ADDR | ||
+ | | valign="top" | | ||
+ | redis-cluster:6379 | ||
+ | | valign="top" | | ||
+ | Address of Redis cluster installation <br>. | ||
+ | '''Note''': If DEPLOY_REDIS is set to <tt>true</tt>, the default value should be retained. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | DEPLOY_ELASTICSEARCH | ||
+ | | valign="top" | | ||
+ | false | ||
+ | | valign="top" | | ||
+ | Enables ElasticSearch cluster deployment procedure in same namespace as Web Services and Applications.<br> | ||
+ | '''Note:''' For lab deployments only. | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | ELASTICSEARCH | ||
+ | | valign="top" | | ||
+ | elasticsearch:9200 | ||
+ | | valign="top" | | ||
+ | Address of ElasticSearch cluster installation<br>. | ||
+ | '''Note''': If DEPLOY_ELASTICSEARCH is set to <tt>true</tt>, the default value should be retained. | ||
+ | |} | ||
</li> | </li> | ||
− | <li> | + | <li>Invoke Helm: |
− | + | <source lang="text"> | |
− | + | helm install gws/ -n gws-service -f gws-versions.yaml -f parameters.yaml | |
− | + | </source> | |
− | + | Where: | |
− | + | * '''gws/''' is helm chart directory | |
− | + | * '''-n gws-service''' is Kubernetes namespace name to deploy to | |
− | + | * '''-f gws-versions.yaml''' is config file where versions of containers are defined | |
− | + | * '''-f parameters.yaml''' is config file where deployment parameters are defined | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</li> | </li> | ||
− | <li> | + | <li>Wait until Helm-deployed Web Service and Applications and Kubernetes cluster starts all the requested containers. It may take up to 10 minutes.</li> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | ==Verification == |
+ | Use the following links to get the expected versions of the Web Services and Applications components and verify they are correct: | ||
− | + | {| | |
− | + | | valign="top" | | |
− | + | '''Service''' | |
− | < | + | | valign="top" | |
− | + | '''Verification URLs''' | |
− | < | + | |- |
− | + | | valign="top" | | |
− | < | + | GWS Authentication Service |
− | < | + | | valign="top" | |
− | + | <nowiki> http://GWS_DOMAIN/auth/v3/version</nowiki> | |
− | < | + | |- |
+ | | valign="top" | | ||
+ | GWS Configuration Service | ||
+ | | valign="top" | | ||
+ | <nowiki>http://GWS_DOMAIN/configuration/v3/version</nowiki> | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | GWS Environment Service | ||
+ | | valign="top" | | ||
+ | <nowiki>http://GWS_DOMAIN/environment/v3/version</nowiki> | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | GWS Data Collector Service | ||
+ | | valign="top" | | ||
+ | <nowiki>http://GWS_DOMAIN/datacollector/v3/version</nowiki> | ||
+ | |- | ||
+ | | valign="top" | | ||
+ | Workspace Web Edition | ||
+ | | valign="top" | | ||
+ | <nowiki>http://GWS_DOMAIN/ui/wwe/index.html</nowiki> | ||
+ | |} | ||
− | |||
[[Category:V:HTCC:9.0.0]] | [[Category:V:HTCC:9.0.0]] |
Revision as of 16:50, February 19, 2020
Contents
Deployment of Web Services and Applications in Kuberbetes
Prerequisites
For Hardware, Software, and Workspace Web requirements, refer to Prerequisites.
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
- Unpack the installation package (Example: IP_HTCCDev_9000197b1_ENU_dockerlinux.zip file) and navigate to the ip folder which contains the following files:
- gws-microservices.tgz
- exported microservices in tar.gz format (Example: gws-platform-configuration_9.0.000.42.tar.gz)
- 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
- 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-containers-to-local-registry.sh $i %corporate_registry_address% --push; done
ImportantThis script must be run with Docker-capable privileges and you must login to your registry before pushing. - 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
http://onpremiselab.com
The host name that will be used by Ingress for routing rules creation. Note: If ingressTlsEnable is true, the deployment will be accessible though https://GWS_DOMAIN/ui/wwe/. If not, the deployment will be accessible through http://GWS_DOMAIN/ui/wwe/.
LOCATION
/USW2
Location of the 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_USERNAME
default
Username to connect to the Configuration Server.
CS_PASSWORD
password
Password to connect to the Configuration Server.
CS_APPNAME
GWS_App
Application name to connect to the Configuration Server. For details, refer to Creating GWS Client Application.
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
The 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 white space in between. Used as part of OAuth authentication flow.
ingressTlsEnable
true
Enables Ingress secured endpoint configuration for Web Services and Applications.
Note: Refer to Configuring Security for more details.POST_DEPLOY_UPDATE
false
Enables post deployment procedure, which creates default Genesys environment, contact center and OAuth client.
Note: If POST_DEPLOY_UPDATE is set to true, GWS_DOMAIN will be used for contact center domain creation, and agents should provide domain information at login (GWS_DOMAIN\%CfgPerson's username%).DEPLOY_POSTGRES
false
Enables PostgreSQL deployment procedure in the same namespace as Web Services and Applications.
Note: For lab deployments only.POSTGRES_ADDR
postgres
Address of PostgreSQL installation
. Note: If DEPLOY_POSTGRES is set to true, the default value should be retained.POSTGRES_DB
gws_environment
PostgreSQL database name
. Note: If DEPLOY_POSTGRES is set to true, the default value should be retained.POSTGRES_USER
gws_env_master
PostgreSQL user, which can be used to connect to database
. Note: If DEPLOY_POSTGRES is set to true, the default value should be retained.POSTGRES_PASS
gws_env_password
PostgreSQL user password
. Note: If DEPLOY_POSTGRES is set to true, the default value should be retained.DEPLOY_REDIS
false
Enables 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 is set to true, the default value should be retained.DEPLOY_ELASTICSEARCH
false
Enables 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 is set to true, the default value should be retained. - 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 versions of containers are defined
- -f parameters.yaml is config file where deployment parameters are defined
- Wait until Helm-deployed Web Service and Applications and Kubernetes cluster starts all the requested containers. It may take up to 10 minutes.
Verification
Use the following links to get the expected versions of the Web Services and Applications components and verify they are correct:
Service |
Verification URLs |
GWS Authentication Service |
http://GWS_DOMAIN/auth/v3/version |
GWS Configuration Service |
http://GWS_DOMAIN/configuration/v3/version |
GWS Environment Service |
http://GWS_DOMAIN/environment/v3/version |
GWS Data Collector Service |
http://GWS_DOMAIN/datacollector/v3/version |
Workspace Web Edition |
http://GWS_DOMAIN/ui/wwe/index.html |