Deploy GWS Services
Contents
Learn how to deploy GWS Services into a private edition environment.
Assumptions
- The instructions on this page assume you are deploying the service in a service-specific namespace, named in accordance with the requirements on Creating namespaces. If you are using a single namespace for all private edition services, replace the namespace element in the commands on this page with the name of your single namespace or project.
- Similarly, the configuration and environment setup instructions assume you need to create namespace-specific (in other words, service-specific) secrets. If you are using a single namespace for all private edition services, you might not need to create separate secrets for each service, depending on your credentials management requirements. However, if you do create service-specific secrets in a single namespace, be sure to avoid naming conflicts.
Prepare your environment
To prepare your environment for the deployment, complete the steps in this section for Google Kubernetes Engine (GKE) or Azure Kubernetes Service (AKS).
GKE
Log in to the GKE cluster from the host where you will run the deployment:
gcloud container clusters get-credentials <cluster-name>Create a new namespace for Genesys Web Services and Applications with a JSON file that specifies the namespace metadata. For example, create-gws-namespace.json:
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "gws",
"labels": {
"name": "gws"
}
}
}
Execute the following command to create the namespace:
kubectl apply -f create-gws-namespace.json
Confirm the namespace was created:
kubectl describe namespace gws
AKS
Log in to the AKS cluster from the host where you will run the deployment:az aks get-credentials --resource-group <resource-group> --name <cluster-name> --admin
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "gws",
"labels": {
"name": "gws"
}
}
}
Execute the following command to create the namespace:
kubectl apply -f create-gws-namespace.json
Confirm the namespace was created:
kubectl describe namespace gws
Deploy
To deploy GWS Services, you'll need the Helm package and your override files. Copy values.yaml, versions.yaml and the Helm package (gws-services-<version>.tgz) to the installation location. For debugging purposes, use the following command to render templates without installing so you can check that resources are created properly:
helm template --debug /gws-services-<version>.tgz -f values.yaml -f versions.yaml
The result shows Kubernetes descriptors. The values you see are generated from Helm templates, and based on settings from values.yaml and versions.yaml. Ensure that no errors are displayed; you will later apply this configuration to your Kubernetes cluster.
Now you're ready to deploy GWS Services:helm upgrade
command.helm upgrade --install gws-services <helm_directory>/gws-services --version=<version> -n gws -f ./override.gws-services.values.yaml -f ./versions.yaml
Validate the deployment
First check the installed Helm release:
helm list –n gws
The result should show the gws-services deployment details. For example:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION gws-services gws 1 2021-05-19 11:49:49.2243107 +0530 +0530 deployed gws-services-1.0.18 1.0
Check the gws-services status:
helm status gws-services
The result should show the namespace details with a status of deployed:
NAME: gws-services LAST DEPLOYED: Wed May 19 11:49:49 2021 NAMESPACE: gws STATUS: deployed REVISION: 1 TEST SUITE: None
Check the GWS Kubernetes objects created by Helm:
kubectl get all -n gws
The result should show all the created pods, services, ConfigMaps, and so on.
Finally, confirm Agent Setup is accessible by navigating to gws.<domain>/ui/provisioning in a web browser.